]> git.lyx.org Git - lyx.git/blobdiff - src/support/Messages.h
Remove non-copyable idioms
[lyx.git] / src / support / Messages.h
index 4ba2737cef1518911c99923991a213b80c511b23..dd24e1c5fccc29b8fba98c90d9f43d9bc26ead6f 100644 (file)
@@ -21,9 +21,10 @@ 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);
        ///
        docstring const get(std::string const & msg) const;
        /// What is the language associated with this translation?
@@ -31,19 +32,20 @@ public:
        /// Is an (at least partial) translation of language with code \p c available?
        static bool available(std::string const & c);
        ///
-       static void init();
+       static void guiLanguage(std::string const & l) { gui_lang_ = l; }
+       ///
+       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.