chiark / gitweb /
dec77c462750511fb1bd6c1c400f52b34938ab49
[developers-reference.git] / l10n.dbk
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3     "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
4 <chapter id="l10n">
5 <title>Internationalizing, translating, being internationalized and being translated</title>
6 <para>
7 Debian supports an ever-increasing number of natural languages.  Even if you
8 are a native English speaker and do not speak any other language, it is part of
9 your duty as a maintainer to be aware of issues of internationalization
10 (abbreviated i18n because there are 18 letters between the 'i' and the 'n' in
11 internationalization).  Therefore, even if you are ok with English-only
12 programs, you should read most of this chapter.
13 </para>
14 <para>
15 According to <ulink
16 url="http://www.debian.org/doc/manuals/intro-i18n/">Introduction to
17 i18n</ulink> from Tomohiro KUBOTA, I18N (internationalization) means
18 modification of a software or related technologies so that a software can
19 potentially handle multiple languages, customs, and so on in the world.  while
20 L10N (localization) means implementation of a specific language for an already
21 internationalized software.
22 </para>
23 <para>
24 l10n and i18n are interconnected, but the difficulties related to each of them
25 are very different.  It's not really difficult to allow a program to change the
26 language in which texts are displayed based on user settings, but it is very
27 time consuming to actually translate these messages.  On the other hand,
28 setting the character encoding is trivial, but adapting the code to use several
29 character encodings is a really hard problem.
30 </para>
31 <para>
32 Setting aside the i18n problems, where no general guideline can be given, there
33 is actually no central infrastructure for l10n within Debian which could be
34 compared to the dbuild mechanism for porting.  So most of the work has to be
35 done manually.
36 </para>
37 <section id="l10n-handling">
38 <title>How translations are handled within Debian</title>
39 <para>
40 Handling translation of the texts contained in a package is still a manual
41 task, and the process depends on the kind of text you want to see translated.
42 </para>
43 <para>
44 For program messages, the gettext infrastructure is used most of the time.
45 Most of the time, the translation is handled upstream within projects like the
46 <ulink url="http://www.iro.umontreal.ca/contrib/po/HTML/">Free Translation
47 Project</ulink>, the <ulink
48 url="http://developer.gnome.org/projects/gtp/">Gnome translation
49 Project</ulink> or the <ulink url="http://i18n.kde.org/">KDE one</ulink>.  The
50 only centralized resource within Debian is the <ulink
51 url="http://www.debian.org/intl/l10n/">Central Debian translation
52 statistics</ulink>, where you can find some statistics about the translation
53 files found in the actual packages, but no real infrastructure to ease the
54 translation process.
55 </para>
56 <para>
57 An effort to translate the package descriptions started long ago, even if very
58 little support is offered by the tools to actually use them (i.e., only APT can
59 use them, when configured correctly).  Maintainers don't need to do anything
60 special to support translated package descriptions; translators should use the
61 <ulink url="http://ddtp.debian.org/">DDTP</ulink>.
62 </para>
63 <para>
64 For debconf templates, maintainers should use the po-debconf package to ease
65 the work of translators, who could use the DDTP to do their work (but the
66 French and Brazilian teams don't).  Some statistics can be found both on the
67 DDTP site (about what is actually translated), and on the <ulink
68 url="http://www.debian.org/intl/l10n/">Central Debian translation
69 statistics</ulink> site (about what is integrated in the packages).
70 </para>
71 <para>
72 For web pages, each l10n team has access to the relevant CVS, and the
73 statistics are available from the Central Debian translation statistics site.
74 </para>
75 <para>
76 For general documentation about Debian, the process is more or less the same as
77 for the web pages (the translators have access to the CVS), but there are no
78 statistics pages.
79 </para>
80 <para>
81 For package-specific documentation (man pages, info documents, other formats),
82 almost everything remains to be done.
83 </para>
84 <para>
85 Most notably, the KDE project handles translation of its documentation in the
86 same way as its program messages.
87 </para>
88 <para>
89 There is an effort to handle Debian-specific man pages within a <ulink
90 url="http://cvs.debian.org/manpages/?cvsroot=debian-doc">specific CVS
91 repository</ulink>.
92 </para>
93 </section>
94
95 <section id="l10n-faqm">
96 <title>I18N &amp; L10N FAQ for maintainers</title>
97 <para>
98 This is a list of problems that maintainers may face concerning i18n and l10n.
99 While reading this, keep in mind that there is no real consensus on these
100 points within Debian, and that this is only advice.  If you have a better idea
101 for a given problem, or if you disagree on some points, feel free to provide
102 your feedback, so that this document can be enhanced.
103 </para>
104 <section id="l10n-faqm-tr">
105 <title>How to get a given text translated</title>
106 <para>
107 To translate package descriptions or debconf templates, you have nothing to do;
108 the DDTP infrastructure will dispatch the material to translate to volunteers
109 with no need for interaction from your part.
110 </para>
111 <para>
112 For all other material (gettext files, man pages, or other documentation), the
113 best solution is to put your text somewhere on the Internet, and ask on
114 debian-i18n for a translation in different languages.  Some translation team
115 members are subscribed to this list, and they will take care of the translation
116 and of the reviewing process.  Once they are done, you will get your translated
117 document from them in your mailbox.
118 </para>
119 </section>
120
121 <section id="l10n-faqm-rev">
122 <title>How to get a given translation reviewed</title>
123 <para>
124 From time to time, individuals translate some texts in your package and will
125 ask you for inclusion of the translation in the package.  This can become
126 problematic if you are not fluent in the given language.  It is a good idea to
127 send the document to the corresponding l10n mailing list, asking for a review.
128 Once it has been done, you should feel more confident in the quality of the
129 translation, and feel safe to include it in your package.
130 </para>
131 </section>
132
133 <section id="l10n-faqm-update">
134 <title>How to get a given translation updated</title>
135 <para>
136 If you have some translations of a given text lying around, each time you
137 update the original, you should ask the previous translator to update the
138 translation with your new changes.  Keep in mind that this task takes time; at
139 least one week to get the update reviewed and all.
140 </para>
141 <para>
142 If the translator is unresponsive, you may ask for help on the corresponding
143 l10n mailing list.  If everything fails, don't forget to put a warning in the
144 translated document, stating that the translation is somehow outdated, and that
145 the reader should refer to the original document if possible.
146 </para>
147 <para>
148 Avoid removing a translation completely because it is outdated.  Old
149 documentation is often better than no documentation at all for non-English
150 speakers.
151 </para>
152 </section>
153
154 <section id="l10n-faqm-bug">
155 <title>How to handle a bug report concerning a translation</title>
156 <para>
157 The best solution may be to mark the bug as forwarded to upstream, and forward
158 it to both the previous translator and his/her team (using the corresponding
159 debian-l10n-XXX mailing list).
160 <!-- TODO: add the i18n tag to the bug? -->
161 </para>
162 </section>
163
164 </section>
165
166 <section id="l10n-faqtr">
167 <title>I18N &amp; L10N FAQ for translators</title>
168 <para>
169 While reading this, please keep in mind that there is no general procedure
170 within Debian concerning these points, and that in any case, you should
171 collaborate with your team and the package maintainer.
172 </para>
173 <section id="l10n-faqtr-help">
174 <title>How to help the translation effort</title>
175 <para>
176 Choose what you want to translate, make sure that nobody is already working on
177 it (using your debian-l10n-XXX mailing list), translate it, get it reviewed by
178 other native speakers on your l10n mailing list, and provide it to the
179 maintainer of the package (see next point).
180 </para>
181 </section>
182
183 <section id="l10n-faqtr-inc">
184 <title>How to provide a translation for inclusion in a package</title>
185 <para>
186 Make sure your translation is correct (asking for review on your l10n mailing
187 list) before providing it for inclusion.  It will save time for everyone, and
188 avoid the chaos resulting in having several versions of the same document in
189 bug reports.
190 </para>
191 <para>
192 The best solution is to file a regular bug containing the translation against
193 the package.  Make sure to use the 'PATCH' tag, and to not use a severity
194 higher than 'wishlist', since the lack of translation never prevented a program
195 from running.
196 </para>
197 </section>
198
199 </section>
200
201 <section id="l10n-best">
202 <title>Best current practice concerning l10n</title>
203 <itemizedlist>
204 <listitem>
205 <para>
206 As a maintainer, never edit the translations in any way (even to reformat the
207 layout) without asking on the corresponding l10n mailing list.  You risk for
208 example breaksing the encoding of the file by doing so.  Moreover, what you
209 consider an error can be right (or even needed) in the given language.
210 </para>
211 </listitem>
212 <listitem>
213 <para>
214 As a translator, if you find an error in the original text, make sure to report
215 it.  Translators are often the most attentive readers of a given text, and if
216 they don't report the errors they find, nobody will.
217 </para>
218 </listitem>
219 <listitem>
220 <para>
221 In any case, remember that the major issue with l10n is that it requires
222 several people to cooperate, and that it is very easy to start a flamewar about
223 small problems because of misunderstandings.  So if you have problems with your
224 interlocutor, ask for help on the corresponding l10n mailing list, on
225 debian-i18n, or even on debian-devel (but beware, l10n discussions very often
226 become flamewars on that list :)
227 </para>
228 </listitem>
229 <listitem>
230 <para>
231 In any case, cooperation can only be achieved with <emphasis
232 role="strong">mutual respect</emphasis>.
233 </para>
234 </listitem>
235 </itemizedlist>
236 </section>
237
238 </chapter>
239