i18n overview
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f4621a09f0
commit
f8d8ae383a
54
docs/latex/wx/ti18n.tex
Normal file
54
docs/latex/wx/ti18n.tex
Normal file
@ -0,0 +1,54 @@
|
||||
\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
|
||||
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
|
||||
\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
|
||||
yet, your translations would be gratefully accepted for inclusion into the
|
||||
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
|
||||
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
|
||||
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.
|
||||
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.
|
||||
|
||||
\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.
|
||||
|
||||
\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}
|
||||
|
Loading…
Reference in New Issue
Block a user