docs: wine-devel [6/16]
Dimitrie O. Paun
dpaun at rogers.com
Sun Sep 21 11:51:01 CDT 2003
ChangeLog
Rewrite the i18n section.
Index: documentation/i18n.sgml
===================================================================
RCS file: /var/cvs/wine/documentation/i18n.sgml,v
retrieving revision 1.6
diff -u -r1.6 i18n.sgml
--- documentation/i18n.sgml 21 Jul 2003 22:42:50 -0000 1.6
+++ documentation/i18n.sgml 18 Sep 2003 12:24:38 -0000
@@ -5,202 +5,56 @@
<title>Adding New Languages</title>
<para>
- Written by &name-morten-welinder; <email>&email-morten-welinder;</email>,
- January 1996.
+ This file documents the necessary procedure for adding a new
+ language to the list of languages that Wine can display system
+ menus and forms in. Adding new translations is not hard as
+ it requires no programming knowledge or special skills.
</para>
- <itemizedlist>
- <listitem>
- <para>
- Thereafter revised February 1999 by Klaas van Gend
- </para>
- </listitem>
- <listitem>
- <para>
- Revised again May 23, 1999, Klaas van Gend
- </para>
- </listitem>
- <listitem>
- <para>
- Updated May 26, 2000, Zoran Dzelajlija
- </para>
- </listitem>
- </itemizedlist>
-
<para>
- (Extracted from <filename>wine/documentation/languages</filename>)
+ Language dependent resources reside in files
+ named <filename>somefile_Xx.rc</filename> or
+ <filename>Xx.rc</filename>, where <literal>Xx</literal>
+ is your language abbreviation (look for it in
+ <filename>include/winnls.h</filename>). These are included
+ in a master file named <filename>somefile.rc</filename> or
+ <filename>rsrc.rc</filename>, located in the same
+ directory as the language files.
</para>
<para>
- This file documents the necessary procedure for adding a new
- language to the list of languages that Wine can display system
- menus and forms in. Currently at least the following languages
- are still missing:
- <simplelist columns="5" type="horiz">
- <member>Bulgarian</member>
- <member>Chinese</member>
- <member>Greek</member>
- <member>Icelandic</member>
- <member>Japanese</member>
- <member>Romanian</member>
- <member>Croatian</member>
- <member>Slovak</member>
- <member>Turkish</member>
- <member>Slovanian</member>
- </simplelist>
+ To add a new language to one of these resources you
+ need to make a copy of the English resource (located
+ in the <filename>somefile_En.rc</filename> file) over to
+ your <filename>somefile_Xx.rc</filename> file, include this
+ file in the master <filename>somefile.rc</filename> file,
+ and edit the new file to translate the English text.
+ You may also need to rearrange some of the controls
+ to better fit the newly translated strings. Test your changes
+ to make sure they properly layout on the screen.
</para>
- <note>
- <para>
- <emphasis>I hope I got all the places where changes are
- needed. If you see any place missing from the list,
- submit a patch to this file please. Also note that
- re-organization of the source code might change the list of
- places.</emphasis>
- </para>
- </note>
-
<para>
- To add a new language you need to be able to translate the
- relatively few texts, of course. You will need very little
- knowledge of programming, so you have almost no excuses for
- not adding your language, right? We should easily be able to
- support 20 languages within a few months, get going! Apart
- from re-compilation it'll take you about an hour or two.
+ In menus, the character "&" means that the next
+ character will be highlighted and that pressing that
+ letter will select the item. You should place these
+ "&" characters suitably for your language, not just
+ copy the positions from English. In particular,
+ items within one menu should have different highlighted
+ letters.
</para>
+
<para>
- To add a new language to the list of languages that Wine can
- handle you must...
+ To get a list of the files that need translating,
+ run the following command in the root of your Wine tree:
+ <command>find -name "*En.rc"</command>.
</para>
- <orderedlist>
- <listitem>
- <para>
- Find the language ID in
- <filename>include/winnls.h</filename>.
- </para>
- </listitem>
- <listitem>
- <para>
- Look in <filename>ole/ole2nls.c</filename> if your
- language is already incorporated in the <varname>static
- const struct NLS_langlocale</varname>. If not: find the
- appropriate entries in
- <filename>include/winnls.h</filename> and add them to the
- list.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit the parameters defined in
- <filename>ole/nls/*.nls</filename> to fit your local
- habits and language.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit <filename>documentation/wine.man.in</filename>
- (search for <parameter>-language</parameter>) to show the
- new language abbreviation.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit <filename>misc/main.c</filename> variable
- <varname>Languages</varname> to contain the new language
- abbreviation and language ID. Also edit
- <structname>struct option_table</structname> in
- <filename>misc/options.c</filename> to show the new
- abbreviation.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit <filename>include/options.h</filename>
- <type>enum</type> <varname>WINE_LANGUAGE</varname> to have
- a member called <literal>LANG_XX</literal> where
- <literal>XX</literal> is the new abbreviation.
- </para>
- </listitem>
- <listitem>
- <para>
- Create a new file
- <filename>dlls/commdlg/cdlg_XX.rc</filename> (where
- <literal>XX</literal> is your language abbreviation)
- containing all menus. Your best bet is to copy
- <filename>cdlg_En.rc</filename> and start translating.
- There is no real need to know how the internal structure
- of the file, as you only need to translate the text within
- quotes.
- </para>
- <para>
- In menus, the character "&" means that the next
- character will be highlighted and that pressing that
- letter will select the item. You should place these
- "&" characters suitably for your language, not just
- copy the positions from (say) English. In particular,
- items within one menu should have different highlighted
- letters.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit <filename>dlls/commdlg/rsrc.rc</filename> to contain
- an <symbol>#include</symbol> statement for your
- <filename>cdlg_XX.rc</filename> file.
- </para>
- </listitem>
- <listitem>
- <para>
- Repeat steps 6 and 7 again for:
- <itemizedlist>
- <listitem>
- <para>
- <filename>dlls/shell32/shell32_XX.rc</filename> and
- <filename>shres.rc</filename>
- </para>
- </listitem>
- <listitem>
- <para>
- <filename>resources/sysres_XX.rc</filename> and
- <filename>user32.rc</filename>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- <listitem>
- <para>
- Re-configure, re-make dependencies, and re-make Wine.
- </para>
- </listitem>
- <listitem>
- <para>
- Check your new menus and forms; when they're not ok, go
- back to 6) and adapt the sizes, etc.
- </para>
- </listitem>
- <listitem>
- <para>
- Several of the winelib based programs in the subdirectory
- programs also have internationalization support. See the
- appropriate files there for reference.
- </para>
- </listitem>
- <listitem>
- <para>
- Edit <filename>documentation/internationalization</filename>
- to show the new status.
- </para>
- </listitem>
- <listitem>
- <para>
- Submit patches for inclusion in the next Wine release, see
- file <filename>./ANNOUNCE</filename> for details about
- where to submit.
- </para>
- </listitem>
- </orderedlist>
+ <para>
+ When adding a new language, also make sure the parameters
+ defined in <filename>./dlls/kernel/nls/*.nls</filename>
+ fit your local habits and language.
+ </para>
</sect1>
</chapter>
--
Dimi.
More information about the wine-patches
mailing list