X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3acf8a8d9b31ca97d21627d6f6c82fd4a9ed04b5..c29c95fe24973b94fd724db767193171ca7c513d:/interface/wx/intl.h diff --git a/interface/wx/intl.h b/interface/wx/intl.h index 31255ff190..ee6efcc7d4 100644 --- a/interface/wx/intl.h +++ b/interface/wx/intl.h @@ -3,266 +3,9 @@ // Purpose: interface of wxLocale // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -// --- --- --- generated code begins here --- --- --- - -/** - The languages supported by wxLocale. - - This enum is generated by misc/languages/genlang.py - When making changes, please put them into misc/languages/langtabl.txt -*/ -enum wxLanguage -{ - /// User's default/preffered language as got from OS. - wxLANGUAGE_DEFAULT, - - /// Unknown language, returned if wxLocale::GetSystemLanguage fails. - wxLANGUAGE_UNKNOWN, - - wxLANGUAGE_ABKHAZIAN, - wxLANGUAGE_AFAR, - wxLANGUAGE_AFRIKAANS, - wxLANGUAGE_ALBANIAN, - wxLANGUAGE_AMHARIC, - wxLANGUAGE_ARABIC, - wxLANGUAGE_ARABIC_ALGERIA, - wxLANGUAGE_ARABIC_BAHRAIN, - wxLANGUAGE_ARABIC_EGYPT, - wxLANGUAGE_ARABIC_IRAQ, - wxLANGUAGE_ARABIC_JORDAN, - wxLANGUAGE_ARABIC_KUWAIT, - wxLANGUAGE_ARABIC_LEBANON, - wxLANGUAGE_ARABIC_LIBYA, - wxLANGUAGE_ARABIC_MOROCCO, - wxLANGUAGE_ARABIC_OMAN, - wxLANGUAGE_ARABIC_QATAR, - wxLANGUAGE_ARABIC_SAUDI_ARABIA, - wxLANGUAGE_ARABIC_SUDAN, - wxLANGUAGE_ARABIC_SYRIA, - wxLANGUAGE_ARABIC_TUNISIA, - wxLANGUAGE_ARABIC_UAE, - wxLANGUAGE_ARABIC_YEMEN, - wxLANGUAGE_ARMENIAN, - wxLANGUAGE_ASSAMESE, - wxLANGUAGE_ASTURIAN, - wxLANGUAGE_AYMARA, - wxLANGUAGE_AZERI, - wxLANGUAGE_AZERI_CYRILLIC, - wxLANGUAGE_AZERI_LATIN, - wxLANGUAGE_BASHKIR, - wxLANGUAGE_BASQUE, - wxLANGUAGE_BELARUSIAN, - wxLANGUAGE_BENGALI, - wxLANGUAGE_BHUTANI, - wxLANGUAGE_BIHARI, - wxLANGUAGE_BISLAMA, - wxLANGUAGE_BRETON, - wxLANGUAGE_BULGARIAN, - wxLANGUAGE_BURMESE, - wxLANGUAGE_CAMBODIAN, - wxLANGUAGE_CATALAN, - wxLANGUAGE_CHINESE, - wxLANGUAGE_CHINESE_SIMPLIFIED, - wxLANGUAGE_CHINESE_TRADITIONAL, - wxLANGUAGE_CHINESE_HONGKONG, - wxLANGUAGE_CHINESE_MACAU, - wxLANGUAGE_CHINESE_SINGAPORE, - wxLANGUAGE_CHINESE_TAIWAN, - wxLANGUAGE_CORSICAN, - wxLANGUAGE_CROATIAN, - wxLANGUAGE_CZECH, - wxLANGUAGE_DANISH, - wxLANGUAGE_DUTCH, - wxLANGUAGE_DUTCH_BELGIAN, - wxLANGUAGE_ENGLISH, - wxLANGUAGE_ENGLISH_UK, - wxLANGUAGE_ENGLISH_US, - wxLANGUAGE_ENGLISH_AUSTRALIA, - wxLANGUAGE_ENGLISH_BELIZE, - wxLANGUAGE_ENGLISH_BOTSWANA, - wxLANGUAGE_ENGLISH_CANADA, - wxLANGUAGE_ENGLISH_CARIBBEAN, - wxLANGUAGE_ENGLISH_DENMARK, - wxLANGUAGE_ENGLISH_EIRE, - wxLANGUAGE_ENGLISH_JAMAICA, - wxLANGUAGE_ENGLISH_NEW_ZEALAND, - wxLANGUAGE_ENGLISH_PHILIPPINES, - wxLANGUAGE_ENGLISH_SOUTH_AFRICA, - wxLANGUAGE_ENGLISH_TRINIDAD, - wxLANGUAGE_ENGLISH_ZIMBABWE, - wxLANGUAGE_ESPERANTO, - wxLANGUAGE_ESTONIAN, - wxLANGUAGE_FAEROESE, - wxLANGUAGE_FARSI, - wxLANGUAGE_FIJI, - wxLANGUAGE_FINNISH, - wxLANGUAGE_FRENCH, - wxLANGUAGE_FRENCH_BELGIAN, - wxLANGUAGE_FRENCH_CANADIAN, - wxLANGUAGE_FRENCH_LUXEMBOURG, - wxLANGUAGE_FRENCH_MONACO, - wxLANGUAGE_FRENCH_SWISS, - wxLANGUAGE_FRISIAN, - wxLANGUAGE_GALICIAN, - wxLANGUAGE_GEORGIAN, - wxLANGUAGE_GERMAN, - wxLANGUAGE_GERMAN_AUSTRIAN, - wxLANGUAGE_GERMAN_BELGIUM, - wxLANGUAGE_GERMAN_LIECHTENSTEIN, - wxLANGUAGE_GERMAN_LUXEMBOURG, - wxLANGUAGE_GERMAN_SWISS, - wxLANGUAGE_GREEK, - wxLANGUAGE_GREENLANDIC, - wxLANGUAGE_GUARANI, - wxLANGUAGE_GUJARATI, - wxLANGUAGE_HAUSA, - wxLANGUAGE_HEBREW, - wxLANGUAGE_HINDI, - wxLANGUAGE_HUNGARIAN, - wxLANGUAGE_ICELANDIC, - wxLANGUAGE_INDONESIAN, - wxLANGUAGE_INTERLINGUA, - wxLANGUAGE_INTERLINGUE, - wxLANGUAGE_INUKTITUT, - wxLANGUAGE_INUPIAK, - wxLANGUAGE_IRISH, - wxLANGUAGE_ITALIAN, - wxLANGUAGE_ITALIAN_SWISS, - wxLANGUAGE_JAPANESE, - wxLANGUAGE_JAVANESE, - wxLANGUAGE_KANNADA, - wxLANGUAGE_KASHMIRI, - wxLANGUAGE_KASHMIRI_INDIA, - wxLANGUAGE_KAZAKH, - wxLANGUAGE_KERNEWEK, - wxLANGUAGE_KINYARWANDA, - wxLANGUAGE_KIRGHIZ, - wxLANGUAGE_KIRUNDI, - wxLANGUAGE_KONKANI, - wxLANGUAGE_KOREAN, - wxLANGUAGE_KURDISH, - wxLANGUAGE_LAOTHIAN, - wxLANGUAGE_LATIN, - wxLANGUAGE_LATVIAN, - wxLANGUAGE_LINGALA, - wxLANGUAGE_LITHUANIAN, - wxLANGUAGE_MACEDONIAN, - wxLANGUAGE_MALAGASY, - wxLANGUAGE_MALAY, - wxLANGUAGE_MALAYALAM, - wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, - wxLANGUAGE_MALAY_MALAYSIA, - wxLANGUAGE_MALTESE, - wxLANGUAGE_MANIPURI, - wxLANGUAGE_MAORI, - wxLANGUAGE_MARATHI, - wxLANGUAGE_MOLDAVIAN, - wxLANGUAGE_MONGOLIAN, - wxLANGUAGE_NAURU, - wxLANGUAGE_NEPALI, - wxLANGUAGE_NEPALI_INDIA, - wxLANGUAGE_NORWEGIAN_BOKMAL, - wxLANGUAGE_NORWEGIAN_NYNORSK, - wxLANGUAGE_OCCITAN, - wxLANGUAGE_ORIYA, - wxLANGUAGE_OROMO, - wxLANGUAGE_PASHTO, - wxLANGUAGE_POLISH, - wxLANGUAGE_PORTUGUESE, - wxLANGUAGE_PORTUGUESE_BRAZILIAN, - wxLANGUAGE_PUNJABI, - wxLANGUAGE_QUECHUA, - wxLANGUAGE_RHAETO_ROMANCE, - wxLANGUAGE_ROMANIAN, - wxLANGUAGE_RUSSIAN, - wxLANGUAGE_RUSSIAN_UKRAINE, - wxLANGUAGE_SAMI, - wxLANGUAGE_SAMOAN, - wxLANGUAGE_SANGHO, - wxLANGUAGE_SANSKRIT, - wxLANGUAGE_SCOTS_GAELIC, - wxLANGUAGE_SERBIAN, - wxLANGUAGE_SERBIAN_CYRILLIC, - wxLANGUAGE_SERBIAN_LATIN, - wxLANGUAGE_SERBO_CROATIAN, - wxLANGUAGE_SESOTHO, - wxLANGUAGE_SETSWANA, - wxLANGUAGE_SHONA, - wxLANGUAGE_SINDHI, - wxLANGUAGE_SINHALESE, - wxLANGUAGE_SISWATI, - wxLANGUAGE_SLOVAK, - wxLANGUAGE_SLOVENIAN, - wxLANGUAGE_SOMALI, - wxLANGUAGE_SPANISH, - wxLANGUAGE_SPANISH_ARGENTINA, - wxLANGUAGE_SPANISH_BOLIVIA, - wxLANGUAGE_SPANISH_CHILE, - wxLANGUAGE_SPANISH_COLOMBIA, - wxLANGUAGE_SPANISH_COSTA_RICA, - wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, - wxLANGUAGE_SPANISH_ECUADOR, - wxLANGUAGE_SPANISH_EL_SALVADOR, - wxLANGUAGE_SPANISH_GUATEMALA, - wxLANGUAGE_SPANISH_HONDURAS, - wxLANGUAGE_SPANISH_MEXICAN, - wxLANGUAGE_SPANISH_MODERN, - wxLANGUAGE_SPANISH_NICARAGUA, - wxLANGUAGE_SPANISH_PANAMA, - wxLANGUAGE_SPANISH_PARAGUAY, - wxLANGUAGE_SPANISH_PERU, - wxLANGUAGE_SPANISH_PUERTO_RICO, - wxLANGUAGE_SPANISH_URUGUAY, - wxLANGUAGE_SPANISH_US, - wxLANGUAGE_SPANISH_VENEZUELA, - wxLANGUAGE_SUNDANESE, - wxLANGUAGE_SWAHILI, - wxLANGUAGE_SWEDISH, - wxLANGUAGE_SWEDISH_FINLAND, - wxLANGUAGE_TAGALOG, - wxLANGUAGE_TAJIK, - wxLANGUAGE_TAMIL, - wxLANGUAGE_TATAR, - wxLANGUAGE_TELUGU, - wxLANGUAGE_THAI, - wxLANGUAGE_TIBETAN, - wxLANGUAGE_TIGRINYA, - wxLANGUAGE_TONGA, - wxLANGUAGE_TSONGA, - wxLANGUAGE_TURKISH, - wxLANGUAGE_TURKMEN, - wxLANGUAGE_TWI, - wxLANGUAGE_UIGHUR, - wxLANGUAGE_UKRAINIAN, - wxLANGUAGE_URDU, - wxLANGUAGE_URDU_INDIA, - wxLANGUAGE_URDU_PAKISTAN, - wxLANGUAGE_UZBEK, - wxLANGUAGE_UZBEK_CYRILLIC, - wxLANGUAGE_UZBEK_LATIN, - wxLANGUAGE_VALENCIAN, - wxLANGUAGE_VIETNAMESE, - wxLANGUAGE_VOLAPUK, - wxLANGUAGE_WELSH, - wxLANGUAGE_WOLOF, - wxLANGUAGE_XHOSA, - wxLANGUAGE_YIDDISH, - wxLANGUAGE_YORUBA, - wxLANGUAGE_ZHUANG, - wxLANGUAGE_ZULU, - - /// For custom, user-defined languages. - wxLANGUAGE_USER_DEFINED -}; - -// --- --- --- generated code ends here --- --- --- - - - /** This is the layout direction stored in wxLanguageInfo and returned by wxApp::GetLayoutDirection(), wxWindow::GetLayoutDirection(), @@ -419,8 +162,8 @@ enum wxLocaleInfo wxLocale class encapsulates all language-dependent settings and is a generalization of the C locale concept. - In wxWidgets this class manages message catalogs which contain the translations - of the strings used to the current language. + In wxWidgets this class manages current locale. It also initializes and + activates wxTranslations object that manages message catalogs. For a list of the supported languages, please see ::wxLanguage enum values. These constants may be used to specify the language in wxLocale::Init and @@ -465,7 +208,7 @@ enum wxLocaleInfo @library{wxbase} @category{cfg} - @see @ref overview_i18n, @ref page_samples_internat, wxXLocale + @see @ref overview_i18n, @ref page_samples_internat, wxXLocale, wxTranslations */ class wxLocale { @@ -492,7 +235,7 @@ public: translate the messages using the message catalogs for this locale. */ wxLocale(const wxString& name, - const wxString& short = wxEmptyString, + const wxString& shortName = wxEmptyString, const wxString& locale = wxEmptyString, bool bLoadDefault = true); @@ -504,64 +247,23 @@ public: virtual ~wxLocale(); /** - Add a catalog for use with the current locale: it is searched for in standard - places (current directory first, then the system one), but you may also prepend - additional directories to the search path with AddCatalogLookupPathPrefix(). - - All loaded catalogs will be used for message lookup by GetString() for - the current locale. - - In this overload, @c msgid strings are assumed - to be in English and written only using 7-bit ASCII characters. - If you have to deal with non-English strings or 8-bit characters in the - source code, see the instructions in @ref overview_nonenglish. - - @return - @true if catalog was successfully loaded, @false otherwise (which might - mean that the catalog is not found or that it isn't in the correct format). + Calls wxTranslations::AddCatalog(const wxString&). */ bool AddCatalog(const wxString& domain); /** - Add a catalog for use with the current locale: it is searched for in standard - places (current directory first, then the system one), but you may also prepend - additional directories to the search path with AddCatalogLookupPathPrefix(). - - All loaded catalogs will be used for message lookup by GetString() for - the current locale. - - This overload takes two additional arguments, @a msgIdLanguage and @a msgIdCharset. - - @param domain - The catalog domain to add. - - @param msgIdLanguage - Specifies the language of "msgid" strings in source code - (i.e. arguments to GetString(), wxGetTranslation() and the _() macro). - It is used if AddCatalog() cannot find any catalog for current language: - if the language is same as source code language, then strings from source - code are used instead. - - @param msgIdCharset - Lets you specify the charset used for msgids in sources - in case they use 8-bit characters (e.g. German or French strings). - This argument has no effect in Unicode build, because literals in sources are - Unicode strings; you have to use compiler-specific method of setting the right - charset when compiling with Unicode. + Calls wxTranslations::AddCatalog(const wxString&, wxLanguage). + */ + bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage); - @return - @true if catalog was successfully loaded, @false otherwise (which might - mean that the catalog is not found or that it isn't in the correct format). + /** + Calls wxTranslations::AddCatalog(const wxString&, wxLanguage, const wxString&). */ bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage, const wxString& msgIdCharset); /** - Add a prefix to the catalog lookup path: the message catalog files will - be looked up under prefix/lang/LC_MESSAGES, prefix/lang and prefix - (in this order). - - This only applies to subsequent invocations of AddCatalog(). + Calls wxFileTranslationsLoader::AddCatalogLookupPathPrefix(). */ static void AddCatalogLookupPathPrefix(const wxString& prefix); @@ -596,12 +298,7 @@ public: wxString GetCanonicalName() const; /** - Returns the header value for header @a header. - The search for @a header is case sensitive. If an @a domain is passed, - this domain is searched. Else all domains will be searched until a - header has been found. - - The return value is the value of the header if found. Else this will be empty. + Calls wxTranslations::GetHeaderValue(). */ wxString GetHeaderValue(const wxString& header, const wxString& domain = wxEmptyString) const; @@ -634,6 +331,16 @@ public: */ static wxString GetLanguageName(int lang); + /** + Returns canonical name (see GetCanonicalName()) of the given language + or empty string if this language is unknown. + + See GetLanguageInfo() for a remark about special meaning of @c wxLANGUAGE_DEFAULT. + + @since 2.9.1 + */ + static wxString GetLanguageCanonicalName(int lang); + /** Returns the locale name as passed to the constructor or Init(). @@ -648,48 +355,16 @@ public: const wxString& GetName() const; /** - Retrieves the translation for a string in all loaded domains unless the @a domain - parameter is specified (and then only this catalog/domain is searched). - - Returns original string if translation is not available (in this case an - error message is generated the first time a string is not found; use - wxLogNull to suppress it). - - @remarks Domains are searched in the last to first order, i.e. catalogs - added later override those added before. + Calls wxTranslations::GetString(const wxString&, const wxString&) const. */ virtual const wxString& GetString(const wxString& origString, const wxString& domain = wxEmptyString) const; /** - Retrieves the translation for a string in all loaded domains unless the @a domain - parameter is specified (and then only this catalog/domain is searched). - - Returns original string if translation is not available (in this case an - error message is generated the first time a string is not found; use - wxLogNull to suppress it). - - This form is used when retrieving translation of string that has different - singular and plural form in English or different plural forms in some - other language. - It takes two extra arguments: @a origString parameter must contain the - singular form of the string to be converted. - - It is also used as the key for the search in the catalog. - The @a origString2 parameter is the plural form (in English). - - The parameter @a n is used to determine the plural form. - If no message catalog is found @a origString is returned if 'n == 1', - otherwise @a origString2. - - See GNU gettext manual for additional information on plural forms handling. - This method is called by the wxGetTranslation() function and _() macro. - - @remarks Domains are searched in the last to first order, i.e. catalogs - added later override those added before. + Calls wxTranslations::GetString(const wxString&, const wxString&, unsigned, const wxString&) const. */ virtual const wxString& GetString(const wxString& origString, - const wxString& origString2, size_t n, + const wxString& origString2, unsigned n, const wxString& domain = wxEmptyString) const; /** @@ -784,7 +459,7 @@ public: given locale containing the translations of standard wxWidgets messages. This parameter would be rarely used in normal circumstances. */ - bool Init(const wxString& name, const wxString& short = wxEmptyString, + bool Init(const wxString& name, const wxString& shortName = wxEmptyString, const wxString& locale = wxEmptyString, bool bLoadDefault = true); /** @@ -803,12 +478,7 @@ public: static bool IsAvailable(int lang); /** - Check if the given catalog is loaded, and returns @true if it is. - - According to GNU gettext tradition, each catalog normally corresponds to - 'domain' which is more or less the application name. - - @see AddCatalog() + Calls wxTranslations::IsLoaded(). */ bool IsLoaded(const wxString& domain) const; @@ -817,133 +487,3 @@ public: */ bool IsOk() const; }; - - - - -// ============================================================================ -// Global functions/macros -// ============================================================================ - -/** @addtogroup group_funcmacro_string */ -//@{ - -/** - This macro is identical to _() but for the plural variant of - wxGetTranslation(). - - @return A const wxString. - - @header{wx/intl.h} -*/ -#define wxPLURAL(string, plural, n) - -/** - This macro doesn't do anything in the program code -- it simply expands to - the value of its argument. - - However it does have a purpose which is to mark the literal strings for the - extraction into the message catalog created by @c xgettext program. Usually - this is achieved using _() but that macro not only marks the string for - extraction but also expands into a wxGetTranslation() call which means that - it cannot be used in some situations, notably for static array - initialization. - - Here is an example which should make it more clear: suppose that you have a - static array of strings containing the weekday names and which have to be - translated (note that it is a bad example, really, as wxDateTime already - can be used to get the localized week day names already). If you write: - - @code - static const char * const weekdays[] = { _("Mon"), ..., _("Sun") }; - ... - // use weekdays[n] as usual - @endcode - - The code wouldn't compile because the function calls are forbidden in the - array initializer. So instead you should do this: - - @code - static const char * const weekdays[] = { wxTRANSLATE("Mon"), ..., - wxTRANSLATE("Sun") }; - ... - // use wxGetTranslation(weekdays[n]) - @endcode - - Note that although the code @b would compile if you simply omit - wxTRANSLATE() in the above, it wouldn't work as expected because there - would be no translations for the weekday names in the program message - catalog and wxGetTranslation() wouldn't find them. - - @return A const wxChar*. - - @header{wx/intl.h} -*/ -#define wxTRANSLATE(string) - -/** - This function returns the translation of @a string in the current - @c locale(). If the string is not found in any of the loaded message - catalogs (see @ref overview_i18n), the original string is returned. In - debug build, an error message is logged -- this should help to find the - strings which were not yet translated. If @a domain is specified then only - that domain/catalog is searched for a matching string. As this function is - used very often, an alternative (and also common in Unix world) syntax is - provided: the _() macro is defined to do the same thing as - wxGetTranslation(). - - This function calls wxLocale::GetString(). - - @note This function is not suitable for literal strings in Unicode builds - since the literal strings must be enclosed into _T() or wxT() macro - which makes them unrecognised by @c xgettext, and so they are not - extracted to the message catalog. Instead, use the _() and wxPLURAL() - macro for all literal strings. - - @see wxGetTranslation(const wxString&, const wxString&, size_t, const wxString&) - - @header{wx/intl.h} -*/ -const wxString& wxGetTranslation(const wxString& string, - const wxString& domain = wxEmptyString); - -/** - This is an overloaded version of - wxGetTranslation(const wxString&, const wxString&), please see its - documentation for general information. - - This version is used when retrieving translation of string that has - different singular and plural forms in English or different plural forms in - some other language. Like wxGetTranslation(const wxString&,const wxString&), - the @a string parameter must contain the singular form of the string to be - converted and is used as the key for the search in the catalog. The - @a plural parameter is the plural form (in English). The parameter @a n is - used to determine the plural form. If no message catalog is found, - @a string is returned if "n == 1", otherwise @a plural is returned. - - See GNU gettext Manual for additional information on plural forms handling: - - For a shorter alternative see the wxPLURAL() macro. - - This function calls wxLocale::GetString(). - - @header{wx/intl.h} -*/ -const wxString& wxGetTranslation(const wxString& string, - const wxString& plural, size_t n, - const wxString& domain = wxEmptyString); - -/** - This macro expands into a call to wxGetTranslation(), so it marks the - message for the extraction by @c xgettext just as wxTRANSLATE() does, but - also returns the translation of the string for the current locale during - execution. - - Don't confuse this with _T()! - - @header{wx/intl.h} -*/ -const wxString& _(const wxString& string); - -//@} -