]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/locale.tex
added and documented wxKeyEvent::GetUnicodeKey(); made it work for MSW; added test...
[wxWidgets.git] / docs / latex / wx / locale.tex
CommitLineData
c1b7dab0
VZ
1\section{\class{wxLocale}}\label{wxlocale}
2
dbdb39b2
JS
3wxLocale class encapsulates all language-dependent settings and is a
4generalization of the C locale concept.
c1b7dab0 5
fc2171bd 6In wxWidgets this class manages message catalogs which contain the translations
c1b7dab0
VZ
7of the strings used to the current language.
8
0a67eeac
MB
9\perlnote{In wxPerl you can't use the '\_' function name, so
10the {\tt Wx::Locale} module can export the {\tt gettext} and
11{\tt gettext\_noop} under any given name.
d2c2afc9 12
5873607e 13\begin{verbatim}
0a67eeac
MB
14 # this imports gettext ( equivalent to Wx::GetTranslation
15 # and gettext_noop ( a noop )
16 # into your module
17 use Wx::Locale qw(:default);
5873607e
VZ
18
19 # ....
20
0a67eeac
MB
21 # use the functions
22 print gettext( ``Panic!'' );
5873607e 23
0a67eeac
MB
24 button = Wx::Button->new( window, -1, gettext( ``Label'' ) );
25\end{verbatim}
d2c2afc9 26
0a67eeac
MB
27If you need to translate a lot of strings, then adding gettext( ) around
28each one is a long task ( that is why \_( ) was introduced ), so just choose
29a shorter name for gettext:
d2c2afc9 30
0a67eeac
MB
31\begin{verbatim}
32 #
33 use Wx::Locale 'gettext' => 't',
34 'gettext_noop' => 'gettext_noop';
35
36 # ...
37
38 # use the functions
39 print t( ``Panic!!'' );
40
41 # ...
5873607e 42\end{verbatim}
d2c2afc9 43}%
5873607e 44
c1b7dab0
VZ
45\wxheading{Derived from}
46
47No base class
48
ed93168b
VZ
49\wxheading{See also}
50
5db9e0e8
VZ
51\helpref{Internationalization overview}{internationalization},\\
52\helpref{Internat sample}{sampleinternat}
ed93168b 53
dbdb39b2
JS
54\wxheading{Include files}
55
56<wx/intl.h>
57
8ec77cd7 58
c1b7dab0
VZ
59\latexignore{\rtfignore{\wxheading{Members}}}
60
8ec77cd7
VS
61
62\membersection{Supported languages}\label{wxlanguage}
63
64The following wxLanguage constants may be used to specify the language
65in \helpref{Init}{wxlocaleinit} and are returned by
66\helpref{GetSystemLanguage}{wxlocalegetsystemlanguage}:
67
41780009
VS
68
69
70%% --- --- --- generated code begins here --- --- ---
71
8ec77cd7
VS
72%% This enum is generated by misc/languages/genlang.py
73%% When making changes, please put them into misc/languages/langtabl.txt
74\begin{itemize}\itemsep=0pt
e7240349
GT
75\item wxLANGUAGE\_DEFAULT -- user's default language as obtained from the operating system
76\item wxLANGUAGE\_UNKNOWN -- returned by \helpref{GetSystemLanguage}{wxlocalegetsystemlanguage}
8ec77cd7 77if it fails to detect the default language
e7240349 78\item wxLANGUAGE\_USER\_DEFINED -- user defined languages' integer identifiers should start from
8ec77cd7
VS
79this
80\item wxLANGUAGE\_ABKHAZIAN
81\item wxLANGUAGE\_AFAR
82\item wxLANGUAGE\_AFRIKAANS
83\item wxLANGUAGE\_ALBANIAN
84\item wxLANGUAGE\_AMHARIC
85\item wxLANGUAGE\_ARABIC
86\item wxLANGUAGE\_ARABIC\_ALGERIA
87\item wxLANGUAGE\_ARABIC\_BAHRAIN
88\item wxLANGUAGE\_ARABIC\_EGYPT
89\item wxLANGUAGE\_ARABIC\_IRAQ
90\item wxLANGUAGE\_ARABIC\_JORDAN
91\item wxLANGUAGE\_ARABIC\_KUWAIT
92\item wxLANGUAGE\_ARABIC\_LEBANON
93\item wxLANGUAGE\_ARABIC\_LIBYA
94\item wxLANGUAGE\_ARABIC\_MOROCCO
95\item wxLANGUAGE\_ARABIC\_OMAN
96\item wxLANGUAGE\_ARABIC\_QATAR
97\item wxLANGUAGE\_ARABIC\_SAUDI\_ARABIA
98\item wxLANGUAGE\_ARABIC\_SUDAN
99\item wxLANGUAGE\_ARABIC\_SYRIA
100\item wxLANGUAGE\_ARABIC\_TUNISIA
101\item wxLANGUAGE\_ARABIC\_UAE
102\item wxLANGUAGE\_ARABIC\_YEMEN
103\item wxLANGUAGE\_ARMENIAN
104\item wxLANGUAGE\_ASSAMESE
105\item wxLANGUAGE\_AYMARA
106\item wxLANGUAGE\_AZERI
107\item wxLANGUAGE\_AZERI\_CYRILLIC
108\item wxLANGUAGE\_AZERI\_LATIN
109\item wxLANGUAGE\_BASHKIR
110\item wxLANGUAGE\_BASQUE
111\item wxLANGUAGE\_BELARUSIAN
112\item wxLANGUAGE\_BENGALI
113\item wxLANGUAGE\_BHUTANI
114\item wxLANGUAGE\_BIHARI
115\item wxLANGUAGE\_BISLAMA
116\item wxLANGUAGE\_BRETON
117\item wxLANGUAGE\_BULGARIAN
118\item wxLANGUAGE\_BURMESE
119\item wxLANGUAGE\_CAMBODIAN
120\item wxLANGUAGE\_CATALAN
121\item wxLANGUAGE\_CHINESE
122\item wxLANGUAGE\_CHINESE\_SIMPLIFIED
123\item wxLANGUAGE\_CHINESE\_TRADITIONAL
124\item wxLANGUAGE\_CHINESE\_HONGKONG
125\item wxLANGUAGE\_CHINESE\_MACAU
126\item wxLANGUAGE\_CHINESE\_SINGAPORE
127\item wxLANGUAGE\_CHINESE\_TAIWAN
128\item wxLANGUAGE\_CORSICAN
129\item wxLANGUAGE\_CROATIAN
130\item wxLANGUAGE\_CZECH
131\item wxLANGUAGE\_DANISH
132\item wxLANGUAGE\_DUTCH
133\item wxLANGUAGE\_DUTCH\_BELGIAN
134\item wxLANGUAGE\_ENGLISH
135\item wxLANGUAGE\_ENGLISH\_UK
136\item wxLANGUAGE\_ENGLISH\_US
137\item wxLANGUAGE\_ENGLISH\_AUSTRALIA
138\item wxLANGUAGE\_ENGLISH\_BELIZE
139\item wxLANGUAGE\_ENGLISH\_BOTSWANA
140\item wxLANGUAGE\_ENGLISH\_CANADA
141\item wxLANGUAGE\_ENGLISH\_CARIBBEAN
142\item wxLANGUAGE\_ENGLISH\_DENMARK
143\item wxLANGUAGE\_ENGLISH\_EIRE
144\item wxLANGUAGE\_ENGLISH\_JAMAICA
145\item wxLANGUAGE\_ENGLISH\_NEW\_ZEALAND
146\item wxLANGUAGE\_ENGLISH\_PHILIPPINES
147\item wxLANGUAGE\_ENGLISH\_SOUTH\_AFRICA
148\item wxLANGUAGE\_ENGLISH\_TRINIDAD
149\item wxLANGUAGE\_ENGLISH\_ZIMBABWE
150\item wxLANGUAGE\_ESPERANTO
151\item wxLANGUAGE\_ESTONIAN
152\item wxLANGUAGE\_FAEROESE
153\item wxLANGUAGE\_FARSI
154\item wxLANGUAGE\_FIJI
155\item wxLANGUAGE\_FINNISH
156\item wxLANGUAGE\_FRENCH
157\item wxLANGUAGE\_FRENCH\_BELGIAN
158\item wxLANGUAGE\_FRENCH\_CANADIAN
159\item wxLANGUAGE\_FRENCH\_LUXEMBOURG
160\item wxLANGUAGE\_FRENCH\_MONACO
161\item wxLANGUAGE\_FRENCH\_SWISS
162\item wxLANGUAGE\_FRISIAN
163\item wxLANGUAGE\_GALICIAN
164\item wxLANGUAGE\_GEORGIAN
165\item wxLANGUAGE\_GERMAN
166\item wxLANGUAGE\_GERMAN\_AUSTRIAN
167\item wxLANGUAGE\_GERMAN\_BELGIUM
168\item wxLANGUAGE\_GERMAN\_LIECHTENSTEIN
169\item wxLANGUAGE\_GERMAN\_LUXEMBOURG
170\item wxLANGUAGE\_GERMAN\_SWISS
171\item wxLANGUAGE\_GREEK
172\item wxLANGUAGE\_GREENLANDIC
173\item wxLANGUAGE\_GUARANI
174\item wxLANGUAGE\_GUJARATI
175\item wxLANGUAGE\_HAUSA
176\item wxLANGUAGE\_HEBREW
177\item wxLANGUAGE\_HINDI
178\item wxLANGUAGE\_HUNGARIAN
179\item wxLANGUAGE\_ICELANDIC
180\item wxLANGUAGE\_INDONESIAN
181\item wxLANGUAGE\_INTERLINGUA
182\item wxLANGUAGE\_INTERLINGUE
183\item wxLANGUAGE\_INUKTITUT
184\item wxLANGUAGE\_INUPIAK
185\item wxLANGUAGE\_IRISH
186\item wxLANGUAGE\_ITALIAN
187\item wxLANGUAGE\_ITALIAN\_SWISS
188\item wxLANGUAGE\_JAPANESE
189\item wxLANGUAGE\_JAVANESE
190\item wxLANGUAGE\_KANNADA
191\item wxLANGUAGE\_KASHMIRI
192\item wxLANGUAGE\_KASHMIRI\_INDIA
193\item wxLANGUAGE\_KAZAKH
194\item wxLANGUAGE\_KERNEWEK
195\item wxLANGUAGE\_KINYARWANDA
196\item wxLANGUAGE\_KIRGHIZ
197\item wxLANGUAGE\_KIRUNDI
198\item wxLANGUAGE\_KONKANI
199\item wxLANGUAGE\_KOREAN
200\item wxLANGUAGE\_KURDISH
201\item wxLANGUAGE\_LAOTHIAN
202\item wxLANGUAGE\_LATIN
203\item wxLANGUAGE\_LATVIAN
204\item wxLANGUAGE\_LINGALA
205\item wxLANGUAGE\_LITHUANIAN
206\item wxLANGUAGE\_MACEDONIAN
207\item wxLANGUAGE\_MALAGASY
208\item wxLANGUAGE\_MALAY
209\item wxLANGUAGE\_MALAYALAM
210\item wxLANGUAGE\_MALAY\_BRUNEI\_DARUSSALAM
211\item wxLANGUAGE\_MALAY\_MALAYSIA
212\item wxLANGUAGE\_MALTESE
213\item wxLANGUAGE\_MANIPURI
214\item wxLANGUAGE\_MAORI
215\item wxLANGUAGE\_MARATHI
216\item wxLANGUAGE\_MOLDAVIAN
217\item wxLANGUAGE\_MONGOLIAN
218\item wxLANGUAGE\_NAURU
219\item wxLANGUAGE\_NEPALI
220\item wxLANGUAGE\_NEPALI\_INDIA
221\item wxLANGUAGE\_NORWEGIAN\_BOKMAL
222\item wxLANGUAGE\_NORWEGIAN\_NYNORSK
223\item wxLANGUAGE\_OCCITAN
224\item wxLANGUAGE\_ORIYA
225\item wxLANGUAGE\_OROMO
226\item wxLANGUAGE\_PASHTO
227\item wxLANGUAGE\_POLISH
228\item wxLANGUAGE\_PORTUGUESE
229\item wxLANGUAGE\_PORTUGUESE\_BRAZILIAN
230\item wxLANGUAGE\_PUNJABI
231\item wxLANGUAGE\_QUECHUA
232\item wxLANGUAGE\_RHAETO\_ROMANCE
233\item wxLANGUAGE\_ROMANIAN
234\item wxLANGUAGE\_RUSSIAN
235\item wxLANGUAGE\_RUSSIAN\_UKRAINE
236\item wxLANGUAGE\_SAMOAN
237\item wxLANGUAGE\_SANGHO
238\item wxLANGUAGE\_SANSKRIT
239\item wxLANGUAGE\_SCOTS\_GAELIC
240\item wxLANGUAGE\_SERBIAN
241\item wxLANGUAGE\_SERBIAN\_CYRILLIC
242\item wxLANGUAGE\_SERBIAN\_LATIN
243\item wxLANGUAGE\_SERBO\_CROATIAN
244\item wxLANGUAGE\_SESOTHO
245\item wxLANGUAGE\_SETSWANA
246\item wxLANGUAGE\_SHONA
247\item wxLANGUAGE\_SINDHI
248\item wxLANGUAGE\_SINHALESE
249\item wxLANGUAGE\_SISWATI
250\item wxLANGUAGE\_SLOVAK
251\item wxLANGUAGE\_SLOVENIAN
252\item wxLANGUAGE\_SOMALI
253\item wxLANGUAGE\_SPANISH
254\item wxLANGUAGE\_SPANISH\_ARGENTINA
255\item wxLANGUAGE\_SPANISH\_BOLIVIA
256\item wxLANGUAGE\_SPANISH\_CHILE
257\item wxLANGUAGE\_SPANISH\_COLOMBIA
258\item wxLANGUAGE\_SPANISH\_COSTA\_RICA
259\item wxLANGUAGE\_SPANISH\_DOMINICAN\_REPUBLIC
260\item wxLANGUAGE\_SPANISH\_ECUADOR
261\item wxLANGUAGE\_SPANISH\_EL\_SALVADOR
262\item wxLANGUAGE\_SPANISH\_GUATEMALA
263\item wxLANGUAGE\_SPANISH\_HONDURAS
264\item wxLANGUAGE\_SPANISH\_MEXICAN
265\item wxLANGUAGE\_SPANISH\_MODERN
266\item wxLANGUAGE\_SPANISH\_NICARAGUA
267\item wxLANGUAGE\_SPANISH\_PANAMA
268\item wxLANGUAGE\_SPANISH\_PARAGUAY
269\item wxLANGUAGE\_SPANISH\_PERU
270\item wxLANGUAGE\_SPANISH\_PUERTO\_RICO
271\item wxLANGUAGE\_SPANISH\_URUGUAY
272\item wxLANGUAGE\_SPANISH\_US
273\item wxLANGUAGE\_SPANISH\_VENEZUELA
274\item wxLANGUAGE\_SUNDANESE
275\item wxLANGUAGE\_SWAHILI
276\item wxLANGUAGE\_SWEDISH
277\item wxLANGUAGE\_SWEDISH\_FINLAND
278\item wxLANGUAGE\_TAGALOG
279\item wxLANGUAGE\_TAJIK
280\item wxLANGUAGE\_TAMIL
281\item wxLANGUAGE\_TATAR
282\item wxLANGUAGE\_TELUGU
283\item wxLANGUAGE\_THAI
284\item wxLANGUAGE\_TIBETAN
285\item wxLANGUAGE\_TIGRINYA
286\item wxLANGUAGE\_TONGA
287\item wxLANGUAGE\_TSONGA
288\item wxLANGUAGE\_TURKISH
289\item wxLANGUAGE\_TURKMEN
290\item wxLANGUAGE\_TWI
291\item wxLANGUAGE\_UIGHUR
292\item wxLANGUAGE\_UKRAINIAN
293\item wxLANGUAGE\_URDU
294\item wxLANGUAGE\_URDU\_INDIA
295\item wxLANGUAGE\_URDU\_PAKISTAN
296\item wxLANGUAGE\_UZBEK
297\item wxLANGUAGE\_UZBEK\_CYRILLIC
298\item wxLANGUAGE\_UZBEK\_LATIN
299\item wxLANGUAGE\_VIETNAMESE
300\item wxLANGUAGE\_VOLAPUK
301\item wxLANGUAGE\_WELSH
302\item wxLANGUAGE\_WOLOF
303\item wxLANGUAGE\_XHOSA
304\item wxLANGUAGE\_YIDDISH
305\item wxLANGUAGE\_YORUBA
306\item wxLANGUAGE\_ZHUANG
307\item wxLANGUAGE\_ZULU
308\end{itemize}
309
41780009
VS
310%% --- --- --- generated code ends here --- --- ---
311
312
8ec77cd7
VS
313
314
c1b7dab0
VZ
315\membersection{wxLocale::wxLocale}\label{wxlocaledefctor}
316
317\func{}{wxLocale}{\void}
318
319This is the default constructor and it does nothing to initialize the object:
dbdb39b2 320\helpref{Init()}{wxlocaleinit} must be used to do that.
c1b7dab0 321
8ec77cd7
VS
322\func{}{wxLocale}{\param{int }{language}, \param{int }{flags =
323 wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}}
324
325See \helpref{Init()}{wxlocaleinit} for parameters description.
326
cc81d32f 327\func{}{wxLocale}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
c1b7dab0 328
8ec77cd7 329See \helpref{Init()}{wxlocaleinit} for parameters description.
c1b7dab0
VZ
330
331The call of this function has several global side effects which you should
332understand: first of all, the application locale is changed - note that this
333will affect many of standard C library functions such as printf() or strftime().
334Second, this wxLocale object becomes the new current global locale for the
335application and so all subsequent calls to wxGetTranslation() will try to
336translate the messages using the message catalogs for this locale.
337
8ec77cd7 338
c1b7dab0
VZ
339\membersection{wxLocale::\destruct{wxLocale}}\label{wxlocaledtor}
340
341\func{}{\destruct{wxLocale}}{\void}
342
dbdb39b2 343The destructor, like the constructor, also has global side effects: the previously
c1b7dab0
VZ
344set locale is restored and so the changes described in
345\helpref{Init}{wxlocaleinit} documentation are rolled back.
346
c1b7dab0
VZ
347\membersection{wxLocale::AddCatalog}\label{wxlocaleaddcatalog}
348
349\func{bool}{AddCatalog}{\param{const char }{*szDomain}}
350
d721baa9
VS
351\func{bool}{AddCatalog}{\param{const char }{*szDomain}, \param{wxLanguage}{msgIdLanguage}, \param{const char }{*msgIdCharset}}
352
f6bcfd97 353Add a catalog for use with the current locale: it is searched for in standard
dbdb39b2 354places (current directory first, then the system one), but you may also prepend
c1b7dab0 355additional directories to the search path with
dbdb39b2 356\helpref{AddCatalogLookupPathPrefix()}{wxlocaleaddcataloglookuppathprefix}.
c1b7dab0 357
d721baa9
VS
358All loaded catalogs will be used for message lookup by
359\helpref{GetString()}{wxlocalegetstring} for the current locale.
c1b7dab0 360
cc81d32f 361Returns true if catalog was successfully loaded, false otherwise (which might
c1b7dab0
VZ
362mean that the catalog is not found or that it isn't in the correct format).
363
d721baa9
VS
364The second form of this method takes two additional arguments,
365\arg{msgIdLanguage} and \arg{msgIdCharset}.
366
367\arg{msgIdLanguage} specifies the language of "msgid" strings in source code
368(i.e. arguments to \helpref{GetString}{wxlocalegetstring},
369\helpref{wxGetTranslation}{wxgettranslation} and the
370\helpref{\_()}{underscore} macro). It is used if AddCatalog cannot find any
371catalog for current language: if the language is same as source code language,
372then strings from source code are used instead.
373
374\arg{msgIdCharset} lets you specify the charset used for msgids in sources
375in case they use 8-bit characters (e.g. German or French strings). This
376argument has no effect in Unicode build, because literals in sources are
377Unicode strings; you have to use compiler-specific method of setting the right
378charset when compiling with Unicode.
379
380By default (i.e. when you use the first form), msgid strings are assumed
381to be in English and written only using 7-bit ASCII characters.
382
383If you have to deal with non-English strings or 8-bit characters in the source
384code, see the instructions in
385\helpref{Writing non-English applications}{nonenglishoverview}.
386
c1b7dab0
VZ
387\membersection{wxLocale::AddCatalogLookupPathPrefix}\label{wxlocaleaddcataloglookuppathprefix}
388
389\func{void}{AddCatalogLookupPathPrefix}{\param{const wxString\& }{prefix}}
390
391Add a prefix to the catalog lookup path: the message catalog files will be
392looked up under prefix/<lang>/LC\_MESSAGES, prefix/LC\_MESSAGES and prefix
393(in this order).
394
395This only applies to subsequent invocations of AddCatalog()!
396
8ec77cd7
VS
397\membersection{wxLocale::AddLanguage}\label{wxlocaleaddlanguage}
398
41780009 399\func{static void}{AddLanguage}{\param{const wxLanguageInfo\& }{info}}
8ec77cd7
VS
400
401Adds custom, user-defined language to the database of known languages. This
2edb0bde 402database is used in conjunction with the first form of
8ec77cd7
VS
403\helpref{Init}{wxlocaleinit}.
404
405wxLanguageInfo is defined as follows:
406
407\begin{verbatim}
408struct WXDLLEXPORT wxLanguageInfo
409{
410 int Language; // wxLanguage id
411 wxString CanonicalName; // Canonical name, e.g. fr_FR
412#ifdef __WIN32__
413 wxUint32 WinLang, WinSublang; // Win32 language identifiers
414 // (LANG_xxxx, SUBLANG_xxxx)
415#endif
416 wxString Description; // human-readable name of the language
417};
418\end{verbatim}
419
420
421{\it Language} should be greater than wxLANGUAGE\_USER\_DEFINED.
422
0a67eeac
MB
423\perlnote{In wxPerl Wx::LanguageInfo has only one method:\par
424Wx::LanguageInfo->new( language, canonicalName, WinLang, WinSubLang, Description )}
8ec77cd7 425
9d1e1be4
VZ
426\membersection{wxLocale::FindLanguageInfo}{wxlocalefindlanguageinfo}
427
428\constfunc{static wxLanguageInfo *}{FindLanguageInfo}{\param{const wxString\& }{locale}}
429
430This function may be used to find the language description structure for the
431given locale, specified either as a two letter ISO language code (for example,
432"pt"), a language code followed by the country code ("pt\_BR") or a full, human
433readable, language description ("Portuguese-Brazil").
434
435Returns the information for the given language or {\tt NULL} if this language
436is unknown. Note that even if the returned pointer is valid, the caller should
437{\it not} delete it.
438
439\wxheading{See also}
440
441\helpref{GetLanguageInfo}{wxlocalegetlanguageinfo}
8ec77cd7
VS
442
443\membersection{wxLocale::GetCanonicalName}\label{wxlocalegetcanonicalname}
444
445\constfunc{wxString}{GetSysName}{\void}
446
447Returns the canonical form of current locale name. Canonical form is the
448one that is used on UNIX systems: it is a two- or five-letter string in xx or
449xx\_YY format, where xx is ISO 639 code of language and YY is ISO 3166 code of
450the country. Examples are "en", "en\_GB", "en\_US" or "fr\_FR".
451
452This form is internally used when looking up message catalogs.
453
454Compare \helpref{GetSysName}{wxlocalegetsysname}.
455
456
457
458\membersection{wxLocale::GetLanguage}\label{wxlocalegetlanguage}
459
460\constfunc{int}{GetLanguage}{\void}
461
462Returns \helpref{wxLanguage}{wxlanguage} constant of current language.
463Note that you can call this function only if you used the form of
464\helpref{Init}{wxlocaleinit} that takes wxLanguage argument.
465
14f8fa9d
VZ
466\membersection{wxLocale::GetLanguageInfo}\label{wxlocalegetlanguageinfo}
467
468\constfunc{static wxLanguageInfo *}{GetLanguageInfo}{\param{int }{lang}}
469
470Returns a pointer to wxLanguageInfo structure containing information about the
471given language or {\tt NULL} if this language is unknown. Note that even if the
472returned pointer is valid, the caller should {\it not} delete it.
473
474See \helpref{AddLanguage}{wxlocaleaddlanguage} for the wxLanguageInfo
475description.
476
4a6e4a46
VS
477\membersection{wxLocale::GetLanguageName}\label{wxlocalegetlanguagename}
478
479\constfunc{static wxString}{GetLanguageName}{\param{int }{lang}}
480
481Returns English name of the given language or empty string if this
482language is unknown.
483
8ec77cd7 484
3ca6a5f0
BP
485\membersection{wxLocale::GetLocale}\label{wxlocalegetlocale}
486
487\constfunc{const char*}{GetLocale}{\void}
488
489Returns the locale name as passed to the constructor or
8ec77cd7
VS
490\helpref{Init()}{wxlocaleinit}. This is full, human-readable name,
491e.g. "English" or "French".
492
3ca6a5f0
BP
493
494\membersection{wxLocale::GetName}\label{wxlocalegetname}
495
496\constfunc{const wxString\&}{GetName}{\void}
497
498Returns the current short name for the locale (as given to the constructor or
499the Init() function).
500
501\membersection{wxLocale::GetString}\label{wxlocalegetstring}
502
503\constfunc{const char*}{GetString}{\param{const char }{*szOrigString}, \param{const char }{*szDomain = NULL}}
504
6f80247a
VS
505\constfunc{const char*}{GetString}{\param{const char }{*szOrigString}, \param{const char }{*szOrigString2}, \param{size\_t }{n}, \param{const char }{*szDomain = NULL}}
506
3ca6a5f0
BP
507Retrieves the translation for a string in all loaded domains unless the szDomain
508parameter is specified (and then only this catalog/domain is searched).
509
510Returns original string if translation is not available
511(in this case an error message is generated the first time
512a string is not found; use \helpref{wxLogNull}{wxlogoverview} to suppress it).
513
6f80247a
VS
514The second form is used when retrieving translation of string that has
515different singular and plural form in English or different plural forms in some
9e3b313e
VS
516other language. It takes two extra arguments: \arg{szOrigString}
517parameter must contain the singular form of the string to be converted.
518It is also used as the key for the search in the catalog.
519The \arg{szOrigString2} parameter is the plural form (in English).
520The parameter \arg{n} is used to determine the plural form. If no
521message catalog is found \arg{szOrigString} is returned if `n == 1',
522otherwise \arg{szOrigString2}.
523See \urlref{GNU gettext manual}{http://www.gnu.org/manual/gettext/html\_chapter/gettext\_10.html\#SEC150} for additional information on plural forms handling.
6f80247a 524
d721baa9
VS
525This method is called by the \helpref{wxGetTranslation}{wxgettranslation}
526function and \helpref{\_()}{underscore} macro.
527
3ca6a5f0
BP
528\wxheading{Remarks}
529
530Domains are searched in the last to first order, i.e. catalogs
531added later override those added before.
532
8ec77cd7
VS
533\membersection{wxLocale::GetSysName}\label{wxlocalegetsysname}
534
535\constfunc{wxString}{GetSysName}{\void}
536
537Returns current platform-specific locale name as passed to setlocale().
538
539Compare \helpref{GetCanonicalName}{wxlocalegetcanonicalname}.
540
541
dccce9ea
VZ
542\membersection{wxLocale::GetSystemEncoding}\label{wxlocalegetsystemencoding}
543
544\constfunc{static wxFontEncoding}{GetSystemEncoding}{\void}
545
546Tries to detect the user's default font encoding.
547Returns \helpref{wxFontEncoding}{wxfont} value or
548{\bf wxFONTENCODING\_SYSTEM} if it couldn't be determined.
549
550\membersection{wxLocale::GetSystemEncodingName}\label{wxlocalegetsystemencodingname}
551
552\constfunc{static wxString}{GetSystemEncodingName}{\void}
553
554Tries to detect the name of the user's default font encoding. This string isn't
555particularly useful for the application as its form is platform-dependent and
556so you should probably use
557\helpref{GetSystemEncoding}{wxlocalegetsystemencoding} instead.
558
559Returns a user-readable string value or an empty string if it couldn't be
560determined.
561
8ec77cd7
VS
562\membersection{wxLocale::GetSystemLanguage}\label{wxlocalegetsystemlanguage}
563
41780009 564\constfunc{static int}{GetSystemLanguage}{\void}
8ec77cd7
VS
565
566Tries to detect the user's default language setting.
567Returns \helpref{wxLanguage}{wxlanguage} value or
568 {\bf wxLANGUAGE\_UNKNOWN} if the language-guessing algorithm failed.
569
570
c1b7dab0
VZ
571\membersection{wxLocale::Init}\label{wxlocaleinit}
572
8ec77cd7
VS
573
574\func{bool}{Init}{\param{int }{language = wxLANGUAGE\_DEFAULT}, \param{int }{flags =
575 wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}}
576
cc81d32f 577\func{bool}{Init}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
c1b7dab0 578
8ec77cd7
VS
579The second form is deprecated, use the first one unless you know what you are
580doing.
dbdb39b2 581
8ec77cd7
VS
582
583\wxheading{Parameters}
584
585\docparam{language}{\helpref{wxLanguage}{wxlanguage} identifier of the locale.
586wxLANGUAGE\_DEFAULT has special meaning -- wxLocale will use system's default
587language (see \helpref{GetSystemLanguage}{wxlocalegetsystemlanguage}).}
588
589\docparam{flags}{Combination of the following:
75173186
JS
590
591
8ec77cd7
VS
592\begin{twocollist}\itemsep=0pt
593\twocolitem{\windowstyle{wxLOCALE\_LOAD\_DEFAULT}}{Load the message catalog
fc2171bd 594for the given locale containing the translations of standard wxWidgets messages
8ec77cd7
VS
595automatically.}
596\twocolitem{\windowstyle{wxLOCALE\_CONV\_ENCODING}}{Automatically convert message
ae71a6e8 597catalogs to platform's default encoding. Note that it will do only basic
8ec77cd7
VS
598conversion between well-known pair like iso8859-1 and windows-1252 or
599iso8859-2 and windows-1250. See \helpref{Writing non-English applications}{nonenglishoverview} for detailed
ae71a6e8 600description of this behaviour. Note that this flag is meaningless in Unicode build.}
8ec77cd7
VS
601\end{twocollist}
602}
603
604\docparam{szName}{The name of the locale. Only used in diagnostic messages.}
605
606\docparam{szShort}{The standard 2 letter locale abbreviation and is used as the
607directory prefix when looking for the message catalog files.}
608
609\docparam{szLocale}{The parameter for the call to setlocale(). Note that it is
610platform-specific.}
611
cc81d32f 612\docparam{bLoadDefault}{May be set to false to prevent loading of the message catalog
fc2171bd 613for the given locale containing the translations of standard wxWidgets messages.
8ec77cd7
VS
614This parameter would be rarely used in normal circumstances.}
615
cc81d32f 616\docparam{bConvertEncoding}{May be set to true to do automatic conversion of message
a4313e3b
VS
617catalogs to platform's native encoding. Note that it will do only basic
618conversion between well-known pair like iso8859-1 and windows-1252 or
619iso8859-2 and windows-1250.
620See \helpref{Writing non-English applications}{nonenglishoverview} for detailed
8ec77cd7
VS
621description of this behaviour.}
622
c1b7dab0
VZ
623
624The call of this function has several global side effects which you should
625understand: first of all, the application locale is changed - note that this
626will affect many of standard C library functions such as printf() or strftime().
627Second, this wxLocale object becomes the new current global locale for the
d721baa9
VS
628application and so all subsequent calls to
629\helpref{wxGetTranslation()}{wxgettranslation} will try to
c1b7dab0
VZ
630translate the messages using the message catalogs for this locale.
631
cc81d32f 632Returns true on success or false if the given locale couldn't be set.
c1b7dab0
VZ
633
634\membersection{wxLocale::IsLoaded}\label{wxlocaleisloaded}
635
dbdb39b2
JS
636\constfunc{bool}{IsLoaded}{\param{const char* }{domain}}
637
cc81d32f 638Check if the given catalog is loaded, and returns true if it is.
c1b7dab0 639
dbdb39b2
JS
640According to GNU gettext tradition, each catalog
641normally corresponds to 'domain' which is more or less the application name.
c1b7dab0
VZ
642
643See also: \helpref{AddCatalog}{wxlocaleaddcatalog}
644
3ca6a5f0 645\membersection{wxLocale::IsOk}\label{wxlocaleisok}
c1b7dab0 646
3ca6a5f0 647\constfunc{bool}{IsOk}{\void}
dbdb39b2 648
cc81d32f 649Returns true if the locale could be set successfully.
dbdb39b2 650