// Name: intl.h
// 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/preferred 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_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(),
};
/**
- Encapsulates a ::wxLanguage indentifier together with OS-specific information
+ Encapsulates a ::wxLanguage identifier together with OS-specific information
related to that language.
+
+ @beginWxPerlOnly
+ In wxPerl @c Wx::LanguageInfo has only one method:
+ - Wx::LanguageInfo->new(language, canonicalName, WinLang, WinSubLang, Description)
+ @endWxPerlOnly
*/
-struct WXDLLIMPEXP_BASE wxLanguageInfo
+struct wxLanguageInfo
{
/// ::wxLanguage id.
/// It should be greater than @c wxLANGUAGE_USER_DEFINED when defining your own
/**
The values understood by wxLocale::GetInfo().
+
+ Note that for the @c wxLOCALE_*_FMT constants (the date and time formats),
+ the strings returned by wxLocale::GetInfo() use strftime() or,
+ equivalently, wxDateTime::Format() format. If the relevant format
+ couldn't be determined, an empty string is returned -- there is no
+ fallback value so that the application could determine the best course
+ of actions itself in such case.
+
+ All of these values are used with @c wxLOCALE_CAT_DATE in wxLocale::GetInfo() or,
+ more typically, with @c wxLOCALE_CAT_DEFAULT as they only apply to a single category.
*/
enum wxLocaleInfo
{
*/
wxLOCALE_DECIMAL_POINT,
- /**
- The date and time formats.
-
- The strings returned by wxLocale::GetInfo() use strftime() or,
- equivalently, wxDateTime::Format() format. If the relevant format
- couldn't be determined, an empty string is returned -- there is no
- fallback value so that the application could determine the best course
- of actions itself in such case.
-
- All of these values are used with wxLOCALE_CAT_DATE in
- wxLocale::GetInfo() or, more typically, with wxLOCALE_CAT_DEFAULT as
- they only apply to a single category.
- */
- //@{
-
/**
Short date format.
Notice that short and long date formats may be the same under POSIX
- systems currently but may, and typically are, different under MSW or OS
- X.
+ systems currently but may, and typically are, different under MSW or OS X.
@since 2.9.0
*/
@since 2.9.0
*/
wxLOCALE_TIME_FMT
-
- //@}
};
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
@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
{
/**
See Init() for parameters description.
*/
- wxLocale(int language,
- int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+ wxLocale(int language, int flags = wxLOCALE_LOAD_DEFAULT);
/**
See Init() for parameters description.
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,
- bool bConvertEncoding = false);
+ bool bLoadDefault = true);
/**
The destructor, like the constructor, also has global side effects: the
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);
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;
*/
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().
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;
/**
static wxString GetSystemEncodingName();
/**
- Tries to detect the user's default language setting.
+ Tries to detect the user's default locale setting.
Returns the ::wxLanguage value or @c wxLANGUAGE_UNKNOWN if the language-guessing
algorithm failed.
+
+ @note This function works with @em locales and returns the user's default
+ locale. This may be, and usually is, the same as their preferred UI
+ language, but it's not the same thing. Use wxTranslation to obtain
+ @em language information.
+
+ @see wxTranslations::GetBestTranslation().
*/
static int GetSystemLanguage();
- wxLOCALE_LOAD_DEFAULT: Load the message catalog for the given locale
containing the translations of standard wxWidgets messages
automatically.
- - wxLOCALE_CONV_ENCODING: Automatically convert message catalogs to
- platform's default encoding. Note that it will do only basic
- conversion between well-known pair like iso8859-1 and windows-1252 or
- iso8859-2 and windows-1250. See @ref overview_nonenglish for
- detailed description of this behaviour.
- Note that this flag is meaningless in Unicode build.
+ - wxLOCALE_DONT_LOAD_DEFAULT: Negation of wxLOCALE_LOAD_DEFAULT.
@return @true on success or @false if the given locale couldn't be set.
*/
bool Init(int language = wxLANGUAGE_DEFAULT,
- int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+ int flags = wxLOCALE_LOAD_DEFAULT);
/**
@deprecated
@param name
The name of the locale. Only used in diagnostic messages.
- @param short
+ @param shortName
The standard 2 letter locale abbreviation; it is used as the
directory prefix when looking for the message catalog files.
@param locale
May be set to @false to prevent loading of the message catalog for the
given locale containing the translations of standard wxWidgets messages.
This parameter would be rarely used in normal circumstances.
- @param bConvertEncoding
- May be set to @true to do automatic conversion of message catalogs to
- platform's native encoding. Note that it will do only basic conversion
- between well-known pair like iso8859-1 and windows-1252 or iso8859-2
- and windows-1250.
- See @ref overview_nonenglish for detailed description of this behaviour.
*/
- bool Init(const wxString& name, const wxString& short = wxEmptyString,
- const wxString& locale = wxEmptyString, bool bLoadDefault = true,
- bool bConvertEncoding = false);
+ bool Init(const wxString& name, const wxString& shortName = wxEmptyString,
+ const wxString& locale = wxEmptyString, bool bLoadDefault = true);
/**
Check whether the operating system and/or C run time environment supports
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;
*/
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:
- <http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms>
- 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);
-
-//@}
-