you do need to take the time to learn to use that helper, to learn its
expectations and behavior.
</para>
-<para>
-Some people feel that vanilla <filename>debian/rules</filename> files are
-better, since you don't have to learn the intricacies of any helper system.
-This decision is completely up to you. Use what works for you. Many examples
-of vanilla <filename>debian/rules</filename> files are available at <ulink
-url="&url-rules-files;"></ulink>.
-</para>
</section>
<section id="multiple-patches">
translator will send you an update.
</para>
<para>
-To <emphasis>unfuzzy</emphasis> translations, you can use two methods. The first
-method does <emphasis>preventive</emphasis> search and replace actions in the
-PO files. The latter uses <command>gettext</command> utilities to <emphasis>unfuzzy</emphasis>
-strings.
-</para>
-<para>
-<emphasis>Preventive unfuzzy</emphasis> method:
+To <emphasis>unfuzzy</emphasis> translations, you can use
+<command>msguntypot</command> (part of the <systemitem
+role="package">po4a</systemitem> package).
</para>
<orderedlist numeration="arabic">
<listitem>
<para>
-Try finding a complete translation file <emphasis role="strong">before</emphasis>
-the change:
-</para>
-<programlisting>for i in debian/po/*po; do echo -n $i: ; msgfmt -o /dev/null --statistics $i; done</programlisting>
-<para>
-The file only showing <emphasis>translated</emphasis> items will be used
-as the reference file. If there is none (which should not happen if you take
-care to properly interact with translators), you should use the file
-with the most translated strings.
-</para>
-</listitem>
-<listitem>
-<para>
-Identify the needed change. In this example, let's assume the change is about
-fixing a typo in the word <literal>typo</literal> which was inadvertently
-written as <literal>tpyo</literal>. Therefore, the change is
-<command>s/tpyo/typo</command>.
-</para>
-</listitem>
-<listitem>
-<para>
-Check that this change is only applied to the place where you really intend
-to make it and <emphasis role="strong">not</emphasis> in any other place
-where the original string is appropriate. This specifically applies to
-change in punctuation, for instance.
-</para>
-</listitem>
-<listitem>
-<para>
-Modify all PO files by using <command>sed</command>. The use of that command
-is recommended over any text editor to guarantee that the files encoding will
-not be broken by the edit action:
-</para>
-<programlisting>
-cd debian/po
-for i in *.po; do sed -i 's/tpyo/typo/g' $i; done
-</programlisting>
-</listitem>
-<listitem>
-<para>
-Change the debconf template file to fix the typo.
-</para>
-</listitem>
-<listitem>
-<para>
-Run <command>debconf-updatepo</command>.
-</para>
-</listitem>
-<listitem>
-<para>
-Check the <filename>foo.po</filename> reference file. Its statistics should
-not be changed:
+Regenerate the POT and PO files.
</para>
-<programlisting>
-msgfmt -o /dev/null --statistics debian/po/foo.po
-</programlisting>
+<programlisting>debconf-updatepo</programlisting>
</listitem>
<listitem>
<para>
-If the file's statistics changed, you did something wrong. Try again
-or ask for help on the &email-debian-i18n; mailing list.
+Make a copy of the POT file.
</para>
+<programlisting>cp templates.pot templates.pot.orig</programlisting>
</listitem>
-</orderedlist>
-<para>
-Gettext utilities method:
-</para>
-<orderedlist numeration="arabic">
<listitem>
<para>
-Put all incomplete PO files out of the way. You can check the completeness by
-using (needs the <systemitem role="package">gettext</systemitem> package
-installed):
+Make a copy of all the PO files.
</para>
-<programlisting>for i in debian/po/*po; do echo -n $i: ; msgfmt -o /dev/null --statistics $i; done</programlisting>
+<programlisting>mkdir po_fridge; cp *.po po_fridge</programlisting>
</listitem>
<listitem>
<para>
-Move all files which report either fuzzy strings to a temporary place. Files
-which report no fuzzy strings (only translated and untranslated) will be kept
-in place.
+Change the debconf template files to fix the typos.
</para>
</listitem>
<listitem>
<para>
-Now <emphasis role="strong">and now only</emphasis>, modify the template for
-the typos and check again that translation are not impacted (typos, spelling
-errors, sometimes typographical corrections are usually OK).
+Regenerate the POT and PO files (again).
</para>
-</listitem>
-<listitem>
+<programlisting>debconf-updatepo</programlisting>
<para>
-Run <command>debconf-updatepo</command>. This will fuzzy all strings you
-modified in translations. You can see this by running the above again.
+At this point, the typo fix fuzzied all the translations, and this
+unfortunate change is the only one between the PO files of your main
+directory and the one from the fridge. Here is how to solve this.
</para>
</listitem>
<listitem>
<para>
-Use the following command:
+Discard fuzzy translation, restore the ones from the fridge.
</para>
-<programlisting>for i in debian/po/*po; do msgattrib --output-file=$i --clear-fuzzy $i; done</programlisting>
+<programlisting>cp po_fridge/*.po .</programlisting>
</listitem>
<listitem>
<para>
-Move back to <filename>debian/po</filename> the files which showed fuzzy strings in the first step.
+Manually merge the PO files with the new POT file, but taking the useless fuzzy into account.
</para>
+<programlisting>msguntypot -o templates.pot.orig -n templates.pot *.po</programlisting>
</listitem>
<listitem>
<para>
-Run <command>debconf-updatepo</command> again.
+Clean up.
</para>
+<programlisting>rm -rf templates.pot.orig po_fridge</programlisting>
</listitem>
</orderedlist>
</section>
<title>Internationalization</title>
<para>
This section contains global information for developers to make translators'
-life easier. More information for translators and developers interrested
+life easier. More information for translators and developers interested
in internationalization are available in the <ulink
url="&url-i18n-l10n;">Internationalisation and localisation in Debian</ulink>
documentation.
tarball is identical to what upstream <emphasis>currently</emphasis>
distributing at any point in time. All that can be expected is that it is
identical to something that upstream once <emphasis>did</emphasis> distribute.
-If a difference arises later (say, if upstream notices that he wasn't using
-maximal compression in his original distribution and then
-re-<command>gzip</command>s it), that's just too bad. Since there is no good
+If a difference arises later (say, if upstream notice that they weren't using
+maximal compression in their original distribution and then
+re-<command>gzip</command> it), that's just too bad. Since there is no good
way to upload a new <filename>.orig.tar.{gz,bz2,xz}</filename> for the same version, there is not even any
point in treating this situation as a bug. </para> </footnote> This makes it
possible to use checksums to easily verify that all changes between Debian's
</para>
<para>
In these cases the developer must construct a suitable <filename>.orig.tar.{gz,bz2,xz}</filename>
-file himself. We refer to such a tarball as a repackaged upstream
+file themselves. We refer to such a tarball as a repackaged upstream
source. Note that a repackaged upstream source is different from a
Debian-native package. A repackaged source still comes with Debian-specific
changes in a separate <filename>.diff.gz</filename> or <filename>.debian.tar.{gz,bz2,xz}</filename>
</para>
<para>
The long description of the meta-package must clearly document its purpose
-so that the user knows what he will lose if he removes the package. Being
+so that the user knows what they will lose if they remove the package. Being
explicit about the consequences is recommended. This is particularly
important for meta-packages which are installed during initial
installation and that have not been explicitly installed by the user.