//+----------------------------------------------------------------------------+ //| Description: Magic Set Editor - Program to make Magic (tm) cards | //| Copyright: (C) 2001 - 2007 Twan van Laarhoven | //| License: GNU General Public License 2 or later (see file COPYING) | //+----------------------------------------------------------------------------+ #ifndef HEADER_DATA_LOCALE #define HEADER_DATA_LOCALE // ----------------------------------------------------------------------------- : Includes #include #include #include #include DECLARE_POINTER_TYPE(Locale); DECLARE_POINTER_TYPE(SubLocale); DECLARE_POINTER_TYPE(SubLocaleValidator); // ----------------------------------------------------------------------------- : Locale class /// Translations of the texts of a game/stylesheet/symbolfont class SubLocale : public IntrusivePtrBase { public: map translations; /// Translate a key String tr(const String& key); /// Translate a key with a default value String tr(const String& key, const String& def); /// Is this a valid sublocale? Returns errors String validate(const String& name, const SubLocaleValidatorP&) const; DECLARE_REFLECTION(); }; /// A collection of translations of messages class Locale : public Packaged { public: /// Translations of UI strings in each category SubLocale translations[LOCALE_CAT_MAX]; /// Translations of Game specific texts, by game name map game_translations; /// Translations of StyleSheet specific texts, by stylesheet name map stylesheet_translations; /// Translations of SymbolFont specific texts, by symbol font name map symbol_font_translations; /// Open a locale with the given name static LocaleP byName(const String& name); /// Validate that the locale is valid for this MSE version virtual void validate(Version = app_version); protected: String typeName() const; DECLARE_REFLECTION(); }; /// The global locale object extern LocaleP the_locale; // ----------------------------------------------------------------------------- : EOF #endif