Date: Wed, 2 Sep 2015 20:30:53 +0000 (UTC) From: Warren Block <wblock@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r47339 - in head/en_US.ISO8859-1/books/fdp-primer: . po-translations Message-ID: <201509022030.t82KUrrM014483@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: wblock Date: Wed Sep 2 20:30:53 2015 New Revision: 47339 URL: https://svnweb.freebsd.org/changeset/doc/47339 Log: Add a new chapter that documents how PO translations are created and maintained. Added: head/en_US.ISO8859-1/books/fdp-primer/po-translations/ head/en_US.ISO8859-1/books/fdp-primer/po-translations/chapter.xml (contents, props changed) Modified: head/en_US.ISO8859-1/books/fdp-primer/Makefile head/en_US.ISO8859-1/books/fdp-primer/book.xml head/en_US.ISO8859-1/books/fdp-primer/chapters.ent Modified: head/en_US.ISO8859-1/books/fdp-primer/Makefile ============================================================================== --- head/en_US.ISO8859-1/books/fdp-primer/Makefile Wed Sep 2 20:28:03 2015 (r47338) +++ head/en_US.ISO8859-1/books/fdp-primer/Makefile Wed Sep 2 20:30:53 2015 (r47339) @@ -31,6 +31,7 @@ SRCS+= xhtml-markup/chapter.xml SRCS+= docbook-markup/chapter.xml SRCS+= stylesheets/chapter.xml SRCS+= translations/chapter.xml +SRCS+= po-translations/chapter.xml SRCS+= writing-style/chapter.xml SRCS+= editor-config/chapter.xml SRCS+= see-also/chapter.xml Modified: head/en_US.ISO8859-1/books/fdp-primer/book.xml ============================================================================== --- head/en_US.ISO8859-1/books/fdp-primer/book.xml Wed Sep 2 20:28:03 2015 (r47338) +++ head/en_US.ISO8859-1/books/fdp-primer/book.xml Wed Sep 2 20:30:53 2015 (r47339) @@ -258,6 +258,7 @@ The time is 09:18</screen></entry> &chap.docbook-markup; &chap.stylesheets; &chap.translations; + &chap.po-translations; &chap.writing-style; &chap.editor-config; &chap.see-also; Modified: head/en_US.ISO8859-1/books/fdp-primer/chapters.ent ============================================================================== --- head/en_US.ISO8859-1/books/fdp-primer/chapters.ent Wed Sep 2 20:28:03 2015 (r47338) +++ head/en_US.ISO8859-1/books/fdp-primer/chapters.ent Wed Sep 2 20:30:53 2015 (r47339) @@ -21,6 +21,7 @@ <!ENTITY chap.docbook-markup SYSTEM "docbook-markup/chapter.xml"> <!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.xml"> <!ENTITY chap.translations SYSTEM "translations/chapter.xml"> +<!ENTITY chap.po-translations SYSTEM "po-translations/chapter.xml"> <!ENTITY chap.writing-style SYSTEM "writing-style/chapter.xml"> <!ENTITY chap.editor-config SYSTEM "editor-config/chapter.xml"> <!ENTITY chap.see-also SYSTEM "see-also/chapter.xml"> Added: head/en_US.ISO8859-1/books/fdp-primer/po-translations/chapter.xml ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/en_US.ISO8859-1/books/fdp-primer/po-translations/chapter.xml Wed Sep 2 20:30:53 2015 (r47339) @@ -0,0 +1,760 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- + The FreeBSD Documentation Project + $FreeBSD$ +--> +<chapter xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" + xml:id="po-translations"> + + <title><acronym>PO</acronym> Translations</title> + + <sect1 xml:id="po-translations-introduction"> + <title>Introduction</title> + + <para>The <link + xlink:href="http://www.gnu.org/software/gettext/"><acronym>GNU</acronym> + <application>gettext</application></link> system offers + translators an easy way to create and maintain translations of + documents. Translatable strings are extracted from the original + document into a <acronym>PO</acronym> (Portable Object) file. + Translated versions of the strings are entered with a separate + editor. The strings can be used directly or built into a + complete translated version of the original document.</para> + </sect1> + + <sect1 xml:id="po-translations-quick-start"> + <title>Quick Start</title> + + <para>The procedure shown in + <xref linkend="overview-quick-start"/> is assumed to have + already been performed, but the <literal>TRANSLATOR</literal> + option must be enabled in the + <package role="port">textproc/docproj</package> port. If that + option was not enabled, display the options menu and enable + it:</para> + + <screen>&prompt.root; <userinput>make -C /usr/ports/textproc/docproj config</userinput></screen> + + <para>Then reinstall the + <package role="port">textproc/docproj</package> port.</para> + + <para>This example shows the creation of a Spanish translation of + the short <link xlink:href="&url.articles.leap-seconds.en;">Leap + Seconds</link> article.</para> + + <procedure xml:id="po-translations-quick-start-install-po-editor"> + <title>Install a <acronym>PO</acronym> Editor</title> + + <step> + <para>A <acronym>PO</acronym> editor is needed to edit + translation files. This example uses + <package role="ports">editors/poedit</package>.</para> + + <screen>&prompt.root; <userinput>cd /usr/ports/editors/poedit</userinput> +&prompt.root; <userinput>make install clean</userinput></screen> + </step> + </procedure> + + <procedure xml:id="po-translations-quick-start-initial-setup"> + <title>Initial Setup</title> + + <para>When a new translation is first created, the directory + structure and <filename>Makefile</filename> must be created or + copied from the English original:</para> + + <step> + <para>Create a directory for the new translation. The + English article source is in + <filename>~/doc/en_US.ISO8859-1/articles/leap-seconds/</filename>. + The Spanish translation will go in + <filename>~/doc/es_ES.ISO8859-1/articles/leap-seconds/</filename>. + The path is the same except for the name of the language + directory.</para> + + <screen>&prompt.user; <userinput>svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> + </step> + + <step> + <para>Copy the <filename>Makefile</filename> from the original + document into the translation directory:</para> + + <screen>&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \ + ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> + </step> + </procedure> + + <procedure xml:id="po-translations-quick-start-translation"> + <title>Translation</title> + + <para>Translating a document consists of two steps: extracting + translatable strings from the original document, and entering + translations for those strings. These steps are repeated + until the translator feels that enough of the document has + been translated to produce a usable translated + document.</para> + + <step> + <para>Extract the translatable strings from the original + English version into a <acronym>PO</acronym> file:</para> + + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> +&prompt.user; <userinput>make po</userinput></screen> + </step> + + <step> + <para>Use a <acronym>PO</acronym> editor to enter translations + in the <acronym>PO</acronym> file. There are several + different editors available. <filename>poedit</filename> + from <package role="port">editors/poedit</package> is shown + here.</para> + + <para>The <acronym>PO</acronym> file name is the + two-character language code followed by and underline and a + two-character region code. For Spanish, the file name is + <filename>es_ES.po</filename>.</para> + + <screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen> + </step> + </procedure> + + <procedure xml:id="po-translations-quick-generating-a-translated-document"> + <title>Generating a Translated Document</title> + + <step> + <para>Generate the translated document:</para> + + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> +&prompt.user; <userinput>make tran</userinput></screen> + + <para>The name of the generated document matches the name + of the English original, usually + <filename>article.xml</filename> for articles or + <filename>book.xml</filename> for books.</para> + </step> + + <step> + <para>Check the generated file by rendering it to + <acronym>HTML</acronym> and viewing it with a + web browser:</para> + + <screen>&prompt.user; <userinput>make FORMATS=html</userinput> +&prompt.user; <userinput>firefox article.html</userinput></screen> + </step> + </procedure> + </sect1> + + <sect1 xml:id="po-translations-creating"> + <title>Creating New Translations</title> + + <para>The first step to creating a new translated document is + locating or creating a directory to hold it. &os; puts + translated documents in a subdirectory named for their + language and region in the format + <filename><replaceable>lang</replaceable>_<replaceable>REGION</replaceable></filename>. + <replaceable>lang</replaceable> is a two-character lowercase + code. It is followed by an underscore character and then the + two-character uppercase <replaceable>REGION</replaceable> + code.</para> + + <table xml:id="po-translations-language-names" frame="none"> + <title>Language Names</title> + + <tgroup cols="5"> + <thead> + <row> + <entry>Language</entry> + <entry>Region</entry> + <entry>Translated Directory Name</entry> + <entry><acronym>PO</acronym> File Name</entry> + <entry>Character Set</entry> + </row> + </thead> + + <tbody> + <row> + <entry>English</entry> + <entry>United States</entry> + <entry><filename>en_US.ISO8859-1</filename></entry> + <entry><filename>en_US.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Bengali</entry> + <entry>Bangladesh</entry> + <entry><filename>bn_BD.UTF-8</filename></entry> + <entry><filename>bn_BD.po</filename></entry> + <entry><acronym>UTF</acronym>-8</entry> + </row> + + <row> + <entry>Danish</entry> + <entry>Denmark</entry> + <entry><filename>da_DK.ISO8859-1</filename></entry> + <entry><filename>da_DK.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>German</entry> + <entry>Germany</entry> + <entry><filename>de_DE.ISO8859-1</filename></entry> + <entry><filename>de_DE.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Greek</entry> + <entry>Greece</entry> + <entry><filename>el_GR.ISO8859-7</filename></entry> + <entry><filename>el_GR.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-7</entry> + </row> + + <row> + <entry>Spanish</entry> + <entry>Spain</entry> + <entry><filename>es_ES.ISO8859-1</filename></entry> + <entry><filename>es_ES.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>French</entry> + <entry>France</entry> + <entry><filename>fr_FR.ISO8859-1</filename></entry> + <entry><filename>fr_FR.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Hungarian</entry> + <entry>Hungary</entry> + <entry><filename>hu_HU.ISO8859-2</filename></entry> + <entry><filename>hu_HU.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-2</entry> + </row> + + <row> + <entry>Italian</entry> + <entry>Italy</entry> + <entry><filename>it_IT.ISO8859-15</filename></entry> + <entry><filename>it_IT.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-15</entry> + </row> + + <row> + <entry>Japanese</entry> + <entry>Japan</entry> + <entry><filename>ja_JP.eucJP</filename></entry> + <entry><filename>ja_JP.po</filename></entry> + <entry><acronym>EUC</acronym> JP</entry> + </row> + + <row> + <entry>Korean</entry> + <entry>Korea</entry> + <entry><filename>ko_KR.UTF-8</filename></entry> + <entry><filename>ko_KR.po</filename></entry> + <entry><acronym>UTF</acronym>-8</entry> + </row> + + <row> + <entry>Mongolian</entry> + <entry>Mongolia</entry> + <entry><filename>mn_MN.UTF-8</filename></entry> + <entry><filename>mn_MN.po</filename></entry> + <entry><acronym>UTF</acronym>-8</entry> + </row> + + <row> + <entry>Dutch</entry> + <entry>Netherlands</entry> + <entry><filename>nl_NL.ISO8859-1</filename></entry> + <entry><filename>nl_NL.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Norwegian</entry> + <entry>Norway</entry> + <entry><filename>no_NO.ISO8859-1</filename></entry> + <entry><filename>no_NO.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Polish</entry> + <entry>Poland</entry> + <entry><filename>pl_PL.ISO8859-2</filename></entry> + <entry><filename>pl_PL.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-2</entry> + </row> + + <row> + <entry>Portuguese</entry> + <entry>Brazil</entry> + <entry><filename>pt_BR.ISO8859-1</filename></entry> + <entry><filename>pt_BR.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-1</entry> + </row> + + <row> + <entry>Russian</entry> + <entry>Russia</entry> + <entry><filename>ru_RU.KOI8-R</filename></entry> + <entry><filename>ru_RU.po</filename></entry> + <entry><acronym>KOI</acronym>8-R</entry> + </row> + + <row> + <entry>Serbian</entry> + <entry>Serbia</entry> + <entry><filename>sr_YU.ISO8859-2</filename></entry> + <entry><filename>sr_YU.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-2</entry> + </row> + + <row> + <entry>Turkish</entry> + <entry>Turkey</entry> + <entry><filename>tr_TR.ISO8859-9</filename></entry> + <entry><filename>tr_TR.po</filename></entry> + <entry><acronym>ISO</acronym> 8859-9</entry> + </row> + + <row> + <entry>Chinese</entry> + <entry>China</entry> + <entry><filename>zh_CN.UTF-8</filename></entry> + <entry><filename>zh_CN.po</filename></entry> + <entry><acronym>UTF</acronym>-8</entry> + </row> + + <row> + <entry>Chinese</entry> + <entry>Taiwan</entry> + <entry><filename>zh_TW.UTF-8</filename></entry> + <entry><filename>zh_TW.po</filename></entry> + <entry><acronym>UTF</acronym>-8</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>The translations are in subdirectories of the main + documentation directory, here assumed to be + <filename>~/doc/</filename> as shown in + <xref linkend="overview-quick-start"/>. For example, German + translations are located in + <filename>~/doc/de_DE.ISO8859-1/</filename>, and French + translations are in + <filename>~/doc/fr_FR.ISO8859-1/</filename>.</para> + + <para>Each language directory contains separate subdirectories + named for the type of documents, usually + <filename>articles/</filename> and + <filename>books/</filename>.</para> + + <para>Combining these directory names gives the complete path to + an article or book. For example, the French translation of the + NanoBSD article is in + <filename>~/doc/fr_FR.ISO8859-1/articles/nanobsd/</filename>, + and the Mongolian translation of the Handbook is in + <filename>~/doc/mn_MN.UTF-8/books/handbook/</filename>.</para> + + <para>A new language directory must be created when translating + a document to a new language. If the language directory already + exists, only a subdirectory in the + <filename>articles/</filename> or <filename>books/</filename> + directory is needed.</para> + + <para>&os; documentation builds are controlled by a + <filename>Makefile</filename> in the same directory. With + simple articles, the <filename>Makefile</filename> can often + just be copied verbatim from the original English directory. + The translation process combines multiple separate + <filename>book.xml</filename> and + <filename>chapter.xml</filename> files in books into a single + file, so the <filename>Makefile</filename> for book translations + must be copied and modified.</para> + + <example xml:id="po-translations-creating-example"> + <title>Creating a Spanish Translation of the Porter's + Handbook</title> + + <para>Create a new Spanish translation of the + <link xlink:href="&url.books.porters-handbook.en;">Porter's + Handbook</link>. The original is a book in + <filename>~/doc/en_US.ISO8859-1/books/porters-handbook/</filename>.</para> + + <procedure> + <step> + <para>The Spanish language books directory + <filename>~/doc/es_ES.ISO8859-1/books/</filename> already + exists, so only a new subdirectory for the Porter's + Handbook is needed:</para> + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/</userinput> +&prompt.user; <userinput>svn mkdir porters-handbook</userinput> +A porters-handbook</screen> + </step> + + <step> + <para>Copy the <filename>Makefile</filename> from the + original book:</para> + + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> +&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile .</userinput> +A Makefile</screen> + + <para>Modify the contents of the + <filename>Makefile</filename> to only expect a single + <filename>book.xml</filename>:</para> + + <programlisting># +# $FreeBSD$ +# +# Build the FreeBSD Porter's Handbook. +# + +MAINTAINER=doc@FreeBSD.org + +DOC?= book + +FORMATS?= html-split + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# XML content +SRCS= book.xml + +# Images from the cross-document image library +IMAGES_LIB+= callouts/1.png +IMAGES_LIB+= callouts/2.png +IMAGES_LIB+= callouts/3.png +IMAGES_LIB+= callouts/4.png +IMAGES_LIB+= callouts/5.png +IMAGES_LIB+= callouts/6.png +IMAGES_LIB+= callouts/7.png +IMAGES_LIB+= callouts/8.png +IMAGES_LIB+= callouts/9.png +IMAGES_LIB+= callouts/10.png +IMAGES_LIB+= callouts/11.png +IMAGES_LIB+= callouts/12.png +IMAGES_LIB+= callouts/13.png +IMAGES_LIB+= callouts/14.png +IMAGES_LIB+= callouts/15.png +IMAGES_LIB+= callouts/16.png +IMAGES_LIB+= callouts/17.png +IMAGES_LIB+= callouts/18.png +IMAGES_LIB+= callouts/19.png +IMAGES_LIB+= callouts/20.png +IMAGES_LIB+= callouts/21.png + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +SYMLINKS= ${DESTDIR} index.html handbook.html + +.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> + + <para>Now the document structure is ready for the translator + to begin translating with + <command>make po</command>.</para> + </step> + </procedure> + </example> + + <example xml:id="po-translations-creating-example-french"> + <title>Creating a French Translation of the + <acronym>PGP</acronym> Keys Article</title> + + <para>Create a new French translation of the + <link xlink:href="&url.articles.pgpkeys;"><acronym>PGP</acronym> + Keys article</link>. The original is an article in + <filename>~/doc/en_US.ISO8859-1/articles/pgpkeys/</filename>.</para> + + <procedure> + <step> + <para>The French language article directory + <filename>~/doc/fr_FR.ISO8859-1/articles/</filename> + already exists, so only a new subdirectory for the + <acronym>PGP</acronym> Keys article is needed:</para> + <screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/</userinput> +&prompt.user; <userinput>svn mkdir pgpkeys</userinput> +A pgpkeys</screen> + </step> + + <step> + <para>Copy the <filename>Makefile</filename> from the + original article:</para> + + <screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys</userinput> +&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile .</userinput> +A Makefile</screen> + + <para>Check the contents of the + <filename>Makefile</filename>. Because this is a simple + article, in this case the <filename>Makefile</filename> + can be used unchanged. The <literal>$&os;...$</literal> + version string on the third line will be replaced by the + version control system when this file is committed.</para> + + <programlisting># +# $FreeBSD$ +# +# Article: PGP Keys + +DOC?= article + +FORMATS?= html +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.xml + +# To build with just key fingerprints, set FINGERPRINTS_ONLY. + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> + + <para>With the document structure complete, the + <acronym>PO</acronym> file can be created with + <command>make po</command>.</para> + </step> + </procedure> + </example> + </sect1> + + <sect1 xml:id="po-translations-translating"> + <title>Translating</title> + + <para>The <application>gettext</application> system greatly + reduces the number of things that must be tracked by a + translator. Strings to be translated are extracted from the + original document into a <acronym>PO</acronym> file. Then a + <acronym>PO</acronym> editor is used to enter the translated + versions of each string.</para> + + <para>The &os; <acronym>PO</acronym> translation system does not + overwrite <acronym>PO</acronym> files, so the extraction step + can be run at any time to update the <acronym>PO</acronym> + file.</para> + + <para>A <acronym>PO</acronym> editor is used to edit the file. + <package role="port">editors/poedit</package> is shown in + these examples because it is simple and has minimal + requirements. Other <acronym>PO</acronym> editors offer + features to make the job of translating easier. The Ports + Collection offers several of these editors, including + <package role="port">devel/gtranslator</package>.</para> + + <para>It is important to preserve the <acronym>PO</acronym> file. + It contains all of the work that translators have done.</para> + + <example xml:id="po-translations-translating-example"> + <title>Translating the Porter's Handbook to Spanish</title> + + <para>Enter Spanish translations of the contents of the Porter's + Handbook.</para> + + <procedure> + <step> + <para>Change to the Spanish Porter's Handbook directory and + update the <acronym>PO</acronym> file. The generated + <acronym>PO</acronym> file is called + <filename>es_ES.po</filename> as shown in + <xref linkend="po-translations-language-names"/>.</para> + + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> +&prompt.user; <userinput>make po</userinput></screen> + </step> + + <step> + <para>Enter translations using a <acronym>PO</acronym> + editor:</para> + + <screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen> + </step> + </procedure> + </example> + </sect1> + + <sect1 xml:id="po-translations-tips"> + <title>Tips for Translators</title> + + <sect2 xml:id="po-translations-tips-xmltags"> + <title>Preserving <acronym>XML</acronym> Tags</title> + + <para>Preserve <acronym>XML</acronym> tags that are shown in + the English original.</para> + + <example> + <para>English original:</para> + + <programlisting>If <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> is not being used</programlisting> + + <para>Spanish translation:</para> + + <programlisting>Si <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> no se utiliza</programlisting> + </example> + </sect2> + + <sect2 xml:id="po-translations-tips-spaces"> + <title>Preserving Spaces</title> + + <para>Preserve existing spaces at the beginning and end of + strings to be translated. The translated version must have + these spaces also.</para> + </sect2> + + <sect2 xml:id="po-translations-tips-verbatim"> + <title>Verbatim Tags</title> + + <para>The contents of some tags should be copied verbatim, not + translated:</para> + + <itemizedlist xml:id="po-translations-tips-verbatim-list"> + <listitem> + <para><tag class="starttag">citerefentry</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">command</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">filename</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">literal</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">manvolnum</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">orgname</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">package</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">programlisting</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">prompt</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">refentrytitle</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">screen</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">userinput</tag></para> + </listitem> + + <listitem> + <para><tag class="starttag">varname</tag></para> + </listitem> + </itemizedlist> + </sect2> + + <!-- + <sect2 xml:id="po-translations-tips-makefile"> + <title>Modifying the <filename>Makefile</filename></title> + + <para>What needs to be changed in the + <filename>Makefile</filename>?</para> + </sect2> + + <sect2 xml:id="po-translations-tips-locale"> + <title>Setting Locales for Editing</title> + + <para>Locale settings so the <acronym>PO</acronym> editor works + correctly?</para> + </sect2> + + <sect2 xml:id="po-translations-tips-poeditors"> + <title>Settings for Specific <acronym>PO</acronym> + Editors</title> + + <para>Per bcr: turn off "intelligent quotes" in + Mac poedit.</para> + </sect2> + + <sect2 xml:id="po-translations-tips-tm"> + <title>Using Translation Memory</title> + + <para>Using translation memory. Saving, updating, sharing + with other members of a translation team.</para> + </sect2> + + <sect2 xml:id="po-translations-tips-submitting"> + <title>Submitting Translations</title> + + <para>Submitting translations as diffs, committing + <acronym>PO</acronym> files.</para> + </sect2> + --> + </sect1> + + <sect1 xml:id="po-translations-building"> + <title>Building a Translated Document</title> + + <para>A translated version of the original document can be created + at any time. Any untranslated portions of the original will be + included in English in the resulting document. Most + <acronym>PO</acronym> editors have an indicator that shows how + much of the translation has been completed. This makes it easy + for the translator to see when enough strings have been + translated to make building the final document + worthwhile.</para> + + <example xml:id="po-translations-building-example"> + <title>Building the Spanish Porter's Handbook</title> + + <para>Build and preview the Spanish version of the Porter's + Handbook that was created in an earlier example.</para> + + <procedure> + <step> + <para>Build the translated document. Because the original + is a book, the generated document is + <filename>book.xml</filename>.</para> + + <screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> +&prompt.user; <userinput>make tran</userinput></screen> + </step> + + <step> + <para>Render the translated <filename>book.xml</filename> to + <acronym>HTML</acronym> and view it with + <application>Firefox</application>. This is the + same procedure used with the English version of the + documents, and other <varname>FORMATS</varname> can + be used here in the same way. See <xref + linkend="doc-build-rendering-common-formats"/>.</para> + + <screen>&prompt.user; <userinput>make FORMATS=html</userinput> +&prompt.user; <userinput>firefox book.html</userinput></screen> + </step> + </procedure> + </example> + </sect1> +</chapter>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509022030.t82KUrrM014483>