summaryrefslogtreecommitdiff
path: root/docs/usermanual/i18n.sgm
Unidiff
Diffstat (limited to 'docs/usermanual/i18n.sgm') (more/less context) (ignore whitespace changes)
-rw-r--r--docs/usermanual/i18n.sgm223
1 files changed, 169 insertions, 54 deletions
diff --git a/docs/usermanual/i18n.sgm b/docs/usermanual/i18n.sgm
index 1964f50..b1ac33a 100644
--- a/docs/usermanual/i18n.sgm
+++ b/docs/usermanual/i18n.sgm
@@ -1,77 +1,192 @@
1<chapter id=i18n><title>Translations</title> 1<chapter id=i18n>
2<section>
3 <title>Translations</title>
4
2 <para> 5 <para>
3 The OPIE-Project tries to offer the support for as many languages as possible. 6 The &opie;-Project tries to offer the support for as many languages
4 In this chapter the process of translating OPIE and its documentation is explained. 7 as possible. In this chapter the process of translating &opie; and its
8 documentation is explained.
5 </para> 9 </para>
6<section>
7 <title>Introduction</title>
8 <para> 10 <para>
9 To ensure that OPIE can be used by as many people as possible the OPIE-project 11 To ensure that &opie; can be used by as many people as possible the
10 aims to be translated in as many languages as possible. Of course, as there are so many 12 &opie;-project aims to be translated in as many languages as possible. Of
11 different languages, there is always a lot work to do. Furthermore, OPIE evolves and thus 13 course, as there are so many different languages, there is always a lot
12 most likely there are translations for applications which should be updated. In this tutorial 14 work to do. Furthermore, &opie; evolves and thus most likely there are
13 you will learn how to help OPIE to be availeble in as many languages as possible and see how 15 translations for applications which should be updated. In this tutorial
14 easy it is to give something very much respected to the open-source community. 16 you will learn how to help &opie; to be available in as many languages as
17 possible and see how easy it is to give something very much respected to
18 the open-source community.
15 </para> 19 </para>
16</section> 20</section>
21
17<section> 22<section>
18 <title>Preferences</title> 23 <title>Preferences</title>
24
19 <para> 25 <para>
20 In order to translate for OPIE you need an editor to edit the translationfile 26 In order to translate for &opie; you need an editor to edit the
21 and preferably access to cvs. The preferred editor is Linguist. That is an application which 27 translationfile and preferably access to cvs. The preferred editor
22 comes with Qt. It has a intuitive GUI and is very easy to use. A tutorial can be found here: 28 is Linguist. That is an application which comes with &qt;. It has a
23 <link>http://doc.trolltech.com/3.1/linguist-manual-3.html</link>. 29 intuitive GUI and is very easy to use. A tutorial can be found <ulink
24 </para> 30 url="http://doc.trolltech.com/3.1/linguist-manual-3.html">here</ulink>.
31 </para>
32 <para>
33 However, you can use every editor which works with UTF8, for example VIM or
34 EMACS. The advantage of Linguist is that its GUI is optimized for &opie;s
35 translationfiles and can help you by proposing a translation and notice
36 you if there is an error within the translation.
37 </para>
25 <para> 38 <para>
26 However, you can use every editor which works with UTF8, for example VIM or EMACS. The advantage 39 CVS is a tool which the developers and most translators use to get the source
27 of Linguist is that its GUI is optimized for OPIEs translationfiles and can help you be 40 of &opie;. If you already have an anonymous account for the &opie;-cvs you
28 proposing a translation and notice you if there is an error within the translation. 41 should go to <filename class='directory'>OPIEDIR/i18n</filename> and do
42 <programlisting>cvs up</programlisting>. If there is already a translation for the language you would like to
43 translate you will see the language code in that directory. For example,
44 for german this is <programlisting>de</programlisting> and for danish it is
45 <programlisting>da</programlisting>. If not, you should contact the coordinator
46 <personname><firstname>Carsten</firstname><surname>Niehaus</surname></personname>
47 so that everything will be set up for your language.
29 </para> 48 </para>
49</section>
50
51<section>
52 <title>Styleguide</title>
30 <para> 53 <para>
31 CVS is a tool which the developers and most translators use to get the source of OPIE. If you 54 To ensure a high quality of the translations the translatiors have to keep certain things
32 already have an anonymous account for the OPIE-cvs you should go to $OPIEDIR/i18n and do <code>cvs up</code>. 55 in mind.
33 If there is already a translation for the language you would like to translate you will see
34 the language code in that directory. For example, for german this is <code>de</code> and for danish
35 it is <code>da</code>. If not you should contact the coordinator Carsten Niehaus so that
36 everything will be set up for your language.
37 </para> 56 </para>
57 <itemizedlist mark='opencircle'>
58 <listitem>
59 <para>
60 The applications do not speak to the user. This means that for example it should not
61 be <errortext>I didn't find the file!</errortext> but <errortext>File not found!</errortext>.
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Try not to use exclamationmarks. If the users sees them to often the ! looses it function
67 as a amplifier of a warning.
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Don't put a space in front of a punctuation mark. So write eg "this is a demonstation!" insteadt
73 of "this is a demonstation !".
74 </para>
75 </listitem>
76 </itemizedlist>
38</section> 77</section>
78
39<section> 79<section>
40 <title>Examplecode</title> 80 <title>Examplecode</title>
81
41 <para> 82 <para>
42 In the next paragraph you see an example of how the XML looks like. 83 In the next paragraph you see an example of how the XML looks like.
43 </para>
44 <!--
45 <message>
46 <source>New</source>
47 <translation>Neu</translation>
48 </message>
49 <message>
50 <source>Today</source>
51 <translation>Heute</translation>
52 </message>
53 <message>
54 <source>Day</source>
55 <translation type="unfinished"></translation>
56 </message>
57 -->
58 </para> 84 </para>
85
86 <programlisting>
87 <message>
88 <source>New</source>
89 <translation>Neu</translation>
90 </message>
91 <message>
92 <source>Today</source>
93 <translation>Heute</translation>
94 </message>
95 <message>
96 <source>Day</source>
97 <translation type="unfinished"></translation>
98 </message>
99 </programlisting>
100
101 </para>
102 <para>
103 As you can see the markup is very simple. The part between two source-tags is
104 the english text which appears if there is no translation yet. In the first
105 case this is <quote>New</quote>. The next row is where the translated string
106 would be. The first two messages are already translated, the third is
107 not. This is marked by the <programlisting>type="unfinished"</programlisting>.
108 </para>
59 <para> 109 <para>
60 As you can see the markup is very simple. The part between two source-tags is the english 110 If you choose to use an editor like VIM instead of the prefered tool
61 text which appears if there is no translation yet. In the first case this is <quote>New</quote>. 111 -Linguist- you have to remove that mark and add the translated string
62 In the next rowis where the translation would be. The first two messages are already translated, 112 between the two <programlisting>translation</programlisting>-tags.
63 the third is not. This is marked by the <code>type="unfinished"</code>.
64 </para> 113 </para>
65 <para> 114 <para>
66 If you choose to use an editor like vim instead of the prefered tool -Linguist- you have to remove 115 It might happen that you see <programlisting>type="obsolete"</programlisting> in a
67 that mark and add the translated string between the two <code>translation</code>-tags. 116 .ts-file. You should not translate these stings as they do no longer appear in the
117 application. The translationcoordinator removes those strings from time to time. In
118 Linguist those strings are grey and not translatable.
68 </para> 119 </para>
69</section> 120</section>
121
70<section> 122<section>
71 <title>Do's and don'ts</title> 123 <title>Filetypes</title>
72 <para> 124 <para>
73 There are certain things that should only be done be the translationcoordinator or one of the 125 As a translator one need to know three different filetypes.
74 core developers. 126
127 <filename class='extension'>ts</filename>
128 .ts-files are the most important files for translators. In these files are all strings which
129 need to be translated and the translations themselfs. All .ts-files are located in
130 <filename class='directory'>OPIEDIR/i18n/xx</filename> while xx is a languagecode (eg. de or de).
131 In theory .ts-files are the only ones a translator needs to know.
132
133 <filename class='extension'>pro</filename>
134 Every application has a .pro-file from which the Makefiles are generated. As a translator
135 you need to check if in every .pro-file is a line for the language you would to
136 translate for. A line like this should look this way:
137
138 <programlisting>
139 ../../../i18n/de/today.ts \
140 </programlisting>
141
142 Usually the translationcoordinator takes care of these entries so you should not
143 need to edit them.
144
145 <filename class='extension'>qm</filename>
146 These are binary files used by &opie; to display the translated strings. They are
147 automatically generated by calling the command <command>make lrelease</command>. Of course,
148 you need to have the binary of <application>lrelease</application> which comes with &qt;.
75 </para> 149 </para>
76</section> 150</section>
151
152<section>
153 <title>Do's and don'ts</title>
154 There are certain things that should only be done be the
155 translationcoordinator or one of the core developers.
156 <itemizedlist mark='opencircle'>
157 <listitem>
158 <para>
159 The translationfiles should never be updated by the translators. Only the
160 translationcoordinator updates the repository. This is to avoid merging conflicts.
161 </para>
162 </listitem>
163 <listitem>
164 <para>
165 The binary .qm-files are created by either the translationcoordinator or by the feed-manager.
166 Of course, the translators can created them as described above for testingpurposes but
167 the official files will be provided.
168 </para>
169 </listitem>
170 <listitem>
171 <para>
172 Whenever you find a typo or an incorrect message contact the author of the application
173 and/or use our bugtrackingsystem (Mantis) to make sure this string will be fixed.
174 </para>
175 </listitem>
176 <listitem>
177 <para>
178 If you find a string like "Form1" contact the translationcoordinator. These strings
179 should not be in the translationfiles. You don't need to translate them.
180 </para>
181 </listitem>
182 <listitem>
183 <para>
184 If you check you translation and see a not translated string even though you translationfile
185 is 100% translated use the bugtrackingsystem and/or contact the author of that application
186 directly so that this bug is fixed.
187 </para>
188 </listitem>
189 </itemizedlist>
190</section>
191
77</chapter> 192</chapter>