git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			60 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \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
 | |
| 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 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 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!
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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 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 
 | |
| \helpref{\_()}{underscore} macro.
 | |
| \item Extracting the strings to be translated from the program: this uses the
 | |
| 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.
 | |
| 
 |