]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/doxygen/overviews/internationalization.h
Move wx/msw/gccpriv.h inclusion back to wx/platform.h from wx/compiler.h.
[wxWidgets.git] / docs / doxygen / overviews / internationalization.h
index 973396a87d7694aa1ee946f05fcf6b88e268a6d7..f2410f85e3247f1fce8832d9bda9c33b6d6ac2ae 100644 (file)
@@ -3,27 +3,21 @@
 // Purpose:     topic overview
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 
 @page overview_i18n Internationalization
 
-@li @ref overview_i18n_intro
-@li @ref overview_i18n_menuaccel
-
-<hr>
-
-
-@section overview_i18n_intro Introduction
+@tableofcontents
 
 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. wxWidgets provides
-facilities for message translation with it's wxLocale class and is itself fully
+facilities for message translation with its wxLocale class and is itself fully
 translated into several languages. Please consult wxWidgets 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
@@ -60,16 +54,56 @@ Translating your application involves several steps:
     language(s). It involves editing the .po file.
 @li Compiling the .po file into .mo file to be used by the program.
 @li Installing the .mo files with your application in the appropriate location
-    for the target system which is the one returned by
-    wxStandardPaths::GetLocalizedResourcesDir(
-    wxStandardPaths::ResourceCat_Messages ). If the message catalogs are not
-    installed in this default location you may explicitly use
-    wxLocale::AddCatalogLookupPathPrefix() to still allow wxWidgets to find
-    them but it is strongly recommended to use the default directory.
+    for the target system (@see overview_i18n_mofiles).
 @li Setting the appropriate locale in your program to use the strings for the
     given language: see wxLocale.
 
 
+@section overview_i18n_mofiles Installing translation catalogs
+
+The .mo files with compiled catalogs must be included with the application.
+By default, wxFileTranslationsLoader is used to load them from files installed
+alongside the application (although you could use wxResourceTranslationsLoader
+or some custom loader too).
+
+The files are expected to be in the resources directory (as returned by
+wxStandardPaths::GetLocalizedResourcesDir(wxStandardPaths::ResourceCat_Messages).
+If the message catalogs are not installed in this default location you may
+explicitly use wxFileTranslationsLoader::AddCatalogLookupPathPrefix() to still
+allow wxWidgets to find them, but it is recommended to use the default
+locations when possible.
+
+Depending on the platform, the default location differs. On Windows, it is
+alongside the executable. On Unix, translations are expected to be in
+"$prefix/share/locale". On OS X, application bundle's @em Resources subdirectory
+is used.
+
+In all cases, translations are searched for in subdirectories named using the
+languages codes from ISO 639. The .mo file(s) should be located either directly
+in that directory or in LC_MESSAGES subdirectory. On OS X, ".lproj" extension
+is used for the per-languages Resources subdirectories.
+
+Here's how an app would typically install the files on Unix:
+@code
+/usr/bin/myapp
+/usr/share/locale/de/LC_MESSAGES/myapp.mo
+/usr/share/locale/fr/LC_MESSAGES/myapp.mo
+@endcode
+And on OS X:
+@code
+MyApp.app/Contents/MacOS/MyApp
+MyApp.app/Contents/Resources/de.lproj/myapp.mo
+MyApp.app/Contents/Resources/fr.lproj/myapp.mo
+@endcode
+And on Windows:
+@code
+C:\Program Files\MyApp\myapp.exe
+C:\Program Files\MyApp\de\myapp.mo
+C:\Program Files\MyApp\fr\myapp.mo
+@endcode
+It is of course possible to use the Unix layout everywhere instead.
+
+
 @section overview_i18n_menuaccel Translating Menu Accelerators
 
 If you translate the accelerator modifier names (Ctrl, Alt and Shift) in your
@@ -87,4 +121,3 @@ translated special key names such as Backspace, End, Insert, etc.
 @li @ref page_samples_internat - Shows you how all this looks in practice.
 
 */
-