X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f8d8ae383a40f5e1bab31aa2f5d149f7e9377a42..706f14210b7d782742b4fdbaea0adc25bdcced4d:/docs/latex/wx/ti18n.tex diff --git a/docs/latex/wx/ti18n.tex b/docs/latex/wx/ti18n.tex index 3c667e5423..fa23079d1c 100644 --- a/docs/latex/wx/ti18n.tex +++ b/docs/latex/wx/ti18n.tex @@ -1,16 +1,16 @@ \section{Internationalization}\label{internationalization} -Although internationalization (i18n for short) of an application involves far -more than just translating its text messages to another message (date, time and +Although internationalization of an application (i18n for short) involves far +more than just translating its text messages to another message -- date, time and currency formats need changing too, some languages are written left to right and others right to left, character encoding may differ and many other things -may need changing too), it is a necessary first step. wxWindows provides -facilities for the messages translation with its +may need changing too -- it is a necessary first step. wxWindows provides +facilities for message translation with its \helpref{wxLocale}{wxlocale} class and is itself fully translated into several -languages (please consult wxWindows home page for the most up-to-date -translations - and if you may translate it in one of the languages not done +languages. Please consult wxWindows home page for the most up-to-date +translations - and if you translate it into one of the languages not done yet, your translations would be gratefully accepted for inclusion into the -future versions of the library!). +future versions of the library! The wxWindows approach to i18n closely follows GNU gettext package. wxWindows uses the message catalogs which are binary compatible with gettext catalogs and this @@ -18,37 +18,42 @@ allows to use all of the programs in this package to work with them. But note that no additional libraries are needed during the run-time, however, so you have only the message catalogs to distribute and nothing else. -However, during the program development you will need the gettext package for +During program development you will need the gettext package for working with message catalogs. {\bf Warning:} gettext versions < 0.10 are known to be buggy, so you should find a later version of it! There are two kinds of message catalogs: source catalogs which are text files with extension .po and binary catalogs which are created from the source ones -with {\it msgfmt} program (part fo gettext package) and have the extension .mo. +with {\it msgfmt} program (part of gettext package) and have the extension .mo. Only the binary files are needed during program execution. The program i18n involves several steps: \begin{enumerate}\itemsep=0pt - \item Translating the strings in the program text using -\helpref{wxGetTranslation}{wxgettranslation} or equivalently the \_() macro. - +\helpref{wxGetTranslation}{wxgettranslation} or equivalently the +\helpref{\_()}{underscore} and \helpref{ngettext}{ngettext} macros. \item Extracting the strings to be translated from the program: this uses the -work done in the previous step because {\it xgettext} program used for string -extraction may be told (using its -k option) to reckognize \_() and -wxGetTranslation and extract all strings inside the calls to these functions. -Alternatively, you may use -a option to extract all the strings, but it will -usually result in many strings being found which don't have to be translated at -all. This will create a text message catalog - a .po file. - +work done in the previous step because {\tt xgettext} program used for string +extraction recognises the standard \_() as well as (using its {\tt -k} option) +our wxGetTranslation and extracts all strings inside the calls to these +functions. Alternatively, you may use {\tt -a} option to extract all the +strings, but it will usually result in many strings being found which don't +have to be translated at all. This will create a text message catalog -- a .po +file. \item Translating the strings extracted in the previous step to other language(s). It involves editing the .po file. - \item Compiling the .po file into .mo file to be used by the program. - \item Setting the appropriate locale in your program to use the strings for the given language: see \helpref{wxLocale}{wxlocale}. - \end{enumerate} +See also the GNU gettext documentation linked from {\tt docs/html/index.htm} in +your wxWindows distribution. + +See also \helpref{Writing non-English applications}{nonenglishoverview}. +It focuses on handling charsets related problems. + +Finally, take a look at the \helpref{i18n sample}{sampleinternat} which shows +to you how all this looks in practice. +