\section{Internationalization}\label{internationalization}
Although internationalization of an application (i18n for short) involves far
-more than just translating its text messages to another message -- date, time and
+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. wxWidgets provides
+may need changing too - it is a necessary first step. wxWidgets provides
facilities for message translation with its
\helpref{wxLocale}{wxlocale} class and is itself fully translated into several
languages. Please consult wxWidgets home page for the most up-to-date
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
+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.
given language: see \helpref{wxLocale}{wxlocale}.
\end{enumerate}
+If you want your app to run under MacOS X with internationlization as
+described above you'll need to make one modification to the Info.plist
+file which describes the contents of the "application bundle". This
+file (an XML text file in UTF-8 format) should have a
+CFBundleDevelopmentRegion entry describing the language of the developer
+- mostly English - and normally MacOS X will query the bundle for the
+presence of certain resource directories to find out which languages
+are supported (e.g. the directory German.lproj for German).
+Since wxWidgets based applications don't use these directories
+for storing resource information (they store the translation in the
+mo files instead) the application needs to be told explicitly which
+langauges are supported. This is done by adding a CFBundleLocalizations
+entry to Info.plist. This can look like this:
+
+\begin{verbatim}
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleLocalizations</key>
+ <array>
+ <string>en</string>
+ <string>de</string>
+ <string>fr</string>
+ </array>
+\end{verbatim}
+
See also the GNU gettext documentation linked from {\tt docs/html/index.htm} in
your wxWidgets distribution.