///
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;
- /// Is an (at least partial) translation of this language available?
- bool available() const;
+ /// What is the language associated with this translation?
+ std::string language() const;
+ /// 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 & defaultLanguage() { return main_lang_; }
+ static std::string const & guiLanguage() { return gui_lang_; }
private:
- ///
- static void setDefaultLanguage();
- ///
- static std::string main_lang_;
+ /// 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.