]> git.lyx.org Git - lyx.git/blobdiff - src/support/Messages.h
Remove support for gcc 4.6
[lyx.git] / src / support / Messages.h
index 35a3bea32083d2c8d6fd49e67190ff4e3e4d9c76..eb14aacac59df53c166c149e43303e46e6aa72e9 100644 (file)
@@ -21,29 +21,34 @@ namespace lyx {
 ///
 class Messages {
 public:
+       /// dummy instantiation: no translation is done
+       Messages() {}
        /// messages in the language \p l.
-       /// If \p l is empty, the language will be defined by the environment.
-       Messages(std::string const & l = std::string());
-       ///
+       Messages(std::string const & l);
+       /// Return the tranlation of message \c msg, or the original
+       /// string if no context was found. Context is always removed.
        docstring const get(std::string const & msg) const;
+       ///
+       docstring const getIfFound(std::string const & msg) const;
        /// What is the language associated with this translation?
        std::string language() const;
-       /// Is an (at least partial) translation of this language available?
-       bool available() const;
+       /// Is an (at least partial) translation of language with code \p c available?
+       static bool available(std::string const & c);
+       ///
+       static void guiLanguage(std::string const & l) { gui_lang_ = l; }
        ///
-       static void init();
+       static std::string const & guiLanguage() { return gui_lang_; }
 
 private:
+       /// Read the strings from the .mo file. Returns true on success.
+       bool readMoFile();
        ///
        std::string lang_;
-       /// Did we warn about unavailable locale already?
-       mutable bool warned_;
        ///
-       typedef std::map<std::string, docstring> TranslationCache;
-       /// Internal cache for gettext translated strings.
-       /// This is needed for performance reason within \c updateBuffer()
-       /// under Windows.
-       mutable TranslationCache cache_;
+       typedef std::map<std::string, docstring> TranslationMap;
+       TranslationMap trans_map_;
+       /// The language used by the Gui
+       static std::string gui_lang_;
 };
 
 /// Access to the unique Messages object for the passed \p language.