Difference between revisions of "OSGeoLive Translation Process"

From OSGeo
Jump to navigation Jump to search
Line 1: Line 1:
 
  __FORCETOC__
 
  __FORCETOC__
  
= Translation Process =
 
  
== The general process pgRouting used for documentation: ==
+
= The general process pgRouting used for documentation: =
  
 
<ul>
 
<ul>
Line 17: Line 16:
 
Translations to japanese are going to be used as examples along this wiki, I decided on japanese because that way you can focus on what is being translated and what is not.
 
Translations to japanese are going to be used as examples along this wiki, I decided on japanese because that way you can focus on what is being translated and what is not.
  
== Tools for the Translator ==
+
= Tools for the Translator =
  
=== tools/transifex/download_translation.sh ===
+
== tools/transifex/download_translation.sh ==
  
 
Use to update the <code>*.po</code> files that are in your system wuth the latest translation stored in Transifex.<br />
 
Use to update the <code>*.po</code> files that are in your system wuth the latest translation stored in Transifex.<br />
Line 40: Line 39:
  
 
<pre>tools/transifex/download_translation.sh [es|ja|fr|de] [pgrouting.&lt;filename&gt;]</pre>
 
<pre>tools/transifex/download_translation.sh [es|ja|fr|de] [pgrouting.&lt;filename&gt;]</pre>
=== tools/transifex/create_translations.sh ===
+
== tools/transifex/create_translations.sh ==
  
 
Use to create: html, man, pdf documentation of the languages based on the <code>*.po</code> files stored in your system. Languages available:
 
Use to create: html, man, pdf documentation of the languages based on the <code>*.po</code> files stored in your system. Languages available:
Line 58: Line 57:
  
 
<pre>build/doc/html/[es|ja|fr|de]/doc/index.html</pre>
 
<pre>build/doc/html/[es|ja|fr|de]/doc/index.html</pre>
== Before you start ==
+
= Before you start =
  
=== Prepare your clone for documentation ===
+
== Prepare your clone for documentation ==
  
 
<pre>git clone https://github.com/pgRouing/pgrouting docClone
 
<pre>git clone https://github.com/pgRouing/pgrouting docClone
Line 70: Line 69:
 
make doc
 
make doc
 
cd ..</pre>
 
cd ..</pre>
=== When more than one person is collaborating with the translation ===
+
== When more than one person is collaborating with the translation ==
  
 
Download the latest translated <code>*.po</code> files of your language.
 
Download the latest translated <code>*.po</code> files of your language.
  
 
<pre>tools/transifex/download_translation.sh ja</pre>
 
<pre>tools/transifex/download_translation.sh ja</pre>
=== Have your language documentation html open. ===
+
== Have your language documentation html open. ==
  
 
Viewing your language html will help to put strings in context and/or check the translation.
 
Viewing your language html will help to put strings in context and/or check the translation.
Line 83: Line 82:
  
 
<pre>build/doc/html/ja/doc/index.html</pre>
 
<pre>build/doc/html/ja/doc/index.html</pre>
=== Transifex files that are not accepting translations. ===
+
== Transifex files that are not accepting translations. ==
  
 
Files not accepting translations are marked with a red dot, maybe the file belongs to a previous version of pgrouting, or it was moved from one directory to another. Those files are not erased from the system so any translated string can be reused.
 
Files not accepting translations are marked with a red dot, maybe the file belongs to a previous version of pgrouting, or it was moved from one directory to another. Those files are not erased from the system so any translated string can be reused.
  
=== English spelling and grammar ===
+
== English spelling and grammar ==
  
 
Sometimes the developers and the reviewers have typos in the english version, you will see spelling typos with a wavy red line, unfortunately it is too late to correct them for the current version. So proceed with the translation with the best of your ability. For the grammar, if you don't understand what is being told, please go to [https://github.com/pgRouting/pgrouting/issues/200 issue 200] to post a comment stating the file and pasting the English string. If a change has been considered, the string to be translated will be posted on the &quot;instructions&quot; for the string.
 
Sometimes the developers and the reviewers have typos in the english version, you will see spelling typos with a wavy red line, unfortunately it is too late to correct them for the current version. So proceed with the translation with the best of your ability. For the grammar, if you don't understand what is being told, please go to [https://github.com/pgRouting/pgrouting/issues/200 issue 200] to post a comment stating the file and pasting the English string. If a change has been considered, the string to be translated will be posted on the &quot;instructions&quot; for the string.
  
== Working with small strings ==
+
= Working with small strings =
  
=== Choose the small files first. ===
+
== Choose the small files first. ==
  
 
For &quot;small&quot; I mean the ones that have very few strings to be translated. That will start building up a bank of translated strings that can be used in larger files. To detect a &quot;small&quot; file go to the list of [resources] (https://www.transifex.com/projects/p/pgrouting/resources/) and choose a file with few words or few strings.
 
For &quot;small&quot; I mean the ones that have very few strings to be translated. That will start building up a bank of translated strings that can be used in larger files. To detect a &quot;small&quot; file go to the list of [resources] (https://www.transifex.com/projects/p/pgrouting/resources/) and choose a file with few words or few strings.
  
=== Use &quot;translate&quot; button ===
+
== Use &quot;translate&quot; button ==
  
 
The &quot;translate button&quot; comes quite handy, you still have to check the translation, and there is an &quot;undo&quot; button if you think that its better for you to type the translation than to modify the machine's translation.
 
The &quot;translate button&quot; comes quite handy, you still have to check the translation, and there is an &quot;undo&quot; button if you think that its better for you to type the translation than to modify the machine's translation.
Line 105: Line 104:
 
<pre>en:  :ref:`sample`
 
<pre>en:  :ref:`sample`
 
ja:  :ref:`サンプル`    &lt;--- wrong</pre>
 
ja:  :ref:`サンプル`    &lt;--- wrong</pre>
=== Use a &quot;suggestion&quot; ===
+
== Use a &quot;suggestion&quot; ==
  
 
When you work with transifex it builds up a translated string bank and it will show one or more suggestions. If the suggestion is very close to what is needed, use it, and change the translation to the final translation of the string. Example:
 
When you work with transifex it builds up a translated string bank and it will show one or more suggestions. If the suggestion is very close to what is needed, use it, and change the translation to the final translation of the string. Example:
Line 112: Line 111:
 
Use suggestion:  pgr_astar - A*アルゴリズムを用いた最短経路探索
 
Use suggestion:  pgr_astar - A*アルゴリズムを用いた最短経路探索
 
Modify to:      :ref:`pgr_astar&lt;pgr_astar&gt;` - A*アルゴリズムを用いた最短経路探索</pre>
 
Modify to:      :ref:`pgr_astar&lt;pgr_astar&gt;` - A*アルゴリズムを用いた最短経路探索</pre>
=== Use &quot;copy button&quot; ===
+
== Use &quot;copy button&quot; ==
  
 
Copy the the stand alone references like
 
Copy the the stand alone references like
Line 118: Line 117:
 
<pre>en:  :ref:`sample`
 
<pre>en:  :ref:`sample`
 
ja:  :ref:`sample`</pre>
 
ja:  :ref:`sample`</pre>
=== Type a translation ===
+
== Type a translation ==
  
 
You can just type your translation.
 
You can just type your translation.
  
=== Go to the next string ===
+
== Go to the next string ==
  
 
When you finished translating the string press &quot;tab&quot;, that way it get's saved, if you click to a different string, maybe because the next string is already translated, then it won't be saved (green/white stripes).
 
When you finished translating the string press &quot;tab&quot;, that way it get's saved, if you click to a different string, maybe because the next string is already translated, then it won't be saved (green/white stripes).
  
=== Save your translation ===
+
== Save your translation ==
  
 
Make sure all strings using the &quot;Save all unsaved translations&quot; button.
 
Make sure all strings using the &quot;Save all unsaved translations&quot; button.
  
== Check your work ==
+
= Check your work =
  
 
This step is needed not to check the translation but to check that ReStructuredText in the translated strings is correct. Many things might be wrong, an extra space, a missing space or a missing character &quot;`&quot; .
 
This step is needed not to check the translation but to check that ReStructuredText in the translated strings is correct. Many things might be wrong, an extra space, a missing space or a missing character &quot;`&quot; .
  
=== Download the translated file and recreate the translation ===
+
== Download the translated file and recreate the translation ==
  
 
If the file you modified in transifex is doc--src--changelog--index and want to check the Japanese translation
 
If the file you modified in transifex is doc--src--changelog--index and want to check the Japanese translation
Line 149: Line 148:
 
And visualy compare the &quot;looks&quot; with the [English version] (http://docs.pgrouting.org/2.0/en/doc/index.html)
 
And visualy compare the &quot;looks&quot; with the [English version] (http://docs.pgrouting.org/2.0/en/doc/index.html)
  
=== Use the &quot;Approve translation&quot; button ===
+
== Use the &quot;Approve translation&quot; button ==
  
 
When the file is fully translated (except the navigation bar), you can are about to approve the translation,
 
When the file is fully translated (except the navigation bar), you can are about to approve the translation,
Line 165: Line 164:
 
If you are ok, then choose a string and click the &quot;Approve translation&quot; button.
 
If you are ok, then choose a string and click the &quot;Approve translation&quot; button.
  
== Which file is next ==
+
= Which file is next =
  
=== Do doc--index last ===
+
== Do doc--index last ==
  
 
That way you can use the &quot;Use suggestion&quot; in this file.
 
That way you can use the &quot;Use suggestion&quot; in this file.
  
=== Work &quot;important&quot; files first ===
+
== Work &quot;important&quot; files first ==
  
 
All files are important, but the following files are the core of the project. Most of them have repeated strings, so the &quot;Use Suggestion&quot; tactic is perfect, and you can use the search box to find them.
 
All files are important, but the following files are the core of the project. Most of them have repeated strings, so the &quot;Use Suggestion&quot; tactic is perfect, and you can use the search box to find them.
Line 193: Line 192:
 
* src--bd_dijkstra--doc--index ... 241 words (32 strings)
 
* src--bd_dijkstra--doc--index ... 241 words (32 strings)
  
=== Work the &quot;almost finished&quot; files ===
+
== Work the &quot;almost finished&quot; files ==
  
After you finish a file, you can choose a file that is &quot;almost done&quot;. I found pretty unconfortable the list placed at the left, so to choose an almost done file I recommend:
+
After you finish a file, you can choose a file that is &quot;almost done&quot;. I found pretty uncomfortable the list placed at the left, so to choose an almost done file I recommend:
  
 
* Click Documentation
 
* Click Documentation
Line 201: Line 200:
 
* click on the sorting button (sorts by % of termination)
 
* click on the sorting button (sorts by % of termination)
  
This is very usefull when you have a lot of files already translated
+
This is very useful when you have a lot of files already translated
  
=== Work files that belong to a directory ===
+
== Work files that belong to a directory ==
  
 
Based on the following files:
 
Based on the following files:
Line 218: Line 217:
 
So you finished a section, go [[Translation Check your work]].
 
So you finished a section, go [[Translation Check your work]].
  
== Troubleshooting ==
+
= Troubleshooting =
  
 
Please post any question in [https://github.com/pgRouting/pgrouting/issues/200 issue 200]
 
Please post any question in [https://github.com/pgRouting/pgrouting/issues/200 issue 200]
Line 255: Line 254:
 
html:    上記クエリは サンプルデータ のネットワークを使用しています。
 
html:    上記クエリは サンプルデータ のネットワークを使用しています。
 
   or:    上記クエリは Sample Data のネットワークを使用しています。</pre>
 
   or:    上記クエリは Sample Data のネットワークを使用しています。</pre>
= WARNING: Inline literal start-string without end-string. =
+
 
 +
== WARNING: Inline literal start-string without end-string. ==
  
 
You will get this error is when using ''tools/transifex/create_translations.sh''. Languages like Japanese that don't use spaces to separate words are more likely to have this error. Unfortunately the error is shown only in line 1.
 
You will get this error is when using ''tools/transifex/create_translations.sh''. Languages like Japanese that don't use spaces to separate words are more likely to have this error. Unfortunately the error is shown only in line 1.
Line 265: Line 265:
 
``int4 `` 型の始点ノードのID      &lt;--- this will also generate the error (a space is after the 4)
 
``int4 `` 型の始点ノードのID      &lt;--- this will also generate the error (a space is after the 4)
 
``int4`` 型の始点ノードのID        &lt;--- a space is (before as a new line and) after the inline literal</pre>
 
``int4`` 型の始点ノードのID        &lt;--- a space is (before as a new line and) after the inline literal</pre>
 +
 
= Main wiki page =
 
= Main wiki page =
  
 
* [https://github.com/pgRouting/pgrouting/wiki pgRouting Wiki]
 
* [https://github.com/pgRouting/pgrouting/wiki pgRouting Wiki]

Revision as of 12:13, 10 October 2017


The general process pgRouting used for documentation:

  • The developer use ReStructuredText syntax to write the documentation.
  • That documentation is then used with Sphinx to generate the html, man, pdf,
  • Also using Sphinx-intl the *.pot files are generated.
  • Those *.pot files are used by Transifex and they contain only the strings that need to be translated.
  • Translator works with those strings using the process bellow.
  • When the translator finishes a language, the git hub mantainers proceed to download the generated *.po files that contain the translated strings and commit them in git hub and update the documentation page.
  • Users can create their translation using:

    tools/transifex/create_translation.sh jp

Translations to japanese are going to be used as examples along this wiki, I decided on japanese because that way you can focus on what is being translated and what is not.

Tools for the Translator

tools/transifex/download_translation.sh

Use to update the *.po files that are in your system wuth the latest translation stored in Transifex.
Languages available:

  • es - Spanish
  • fr - French
  • ja - Japanese
  • de - German

tools/transifex/download_translation.sh [es|ja|fr|de] [pgrouting.<filename>]

To download all language translations:

tools/transifex/download_translation.sh

To download all the translations of a particular language:

tools/transifex/download_translation.sh [es|ja|fr|de]

To download the translation of a specific file you need to state the language also

tools/transifex/download_translation.sh [es|ja|fr|de] [pgrouting.<filename>]

tools/transifex/create_translations.sh

Use to create: html, man, pdf documentation of the languages based on the *.po files stored in your system. Languages available:

  • es - Spanish
  • fr - French
  • ja - Japanese
  • de - German

To create the documentation of all the languages

tools/transifex/create_translations.sh

To create the documentation of a particular language:

tools/transifex/create_translations.sh [es|ja|fr|de]

The main index.html of the documentation will be located at:

build/doc/html/[es|ja|fr|de]/doc/index.html

Before you start

Prepare your clone for documentation

git clone https://github.com/pgRouing/pgrouting docClone
cd docClone
git checkout master
mkdir build
cd build
cmake -DWITH_DOC=ON ..
make doc
cd ..

When more than one person is collaborating with the translation

Download the latest translated *.po files of your language.

tools/transifex/download_translation.sh ja

Have your language documentation html open.

Viewing your language html will help to put strings in context and/or check the translation.

tools/transifex/create_translations.sh ja

The Japanese documentation would be in

build/doc/html/ja/doc/index.html

Transifex files that are not accepting translations.

Files not accepting translations are marked with a red dot, maybe the file belongs to a previous version of pgrouting, or it was moved from one directory to another. Those files are not erased from the system so any translated string can be reused.

English spelling and grammar

Sometimes the developers and the reviewers have typos in the english version, you will see spelling typos with a wavy red line, unfortunately it is too late to correct them for the current version. So proceed with the translation with the best of your ability. For the grammar, if you don't understand what is being told, please go to issue 200 to post a comment stating the file and pasting the English string. If a change has been considered, the string to be translated will be posted on the "instructions" for the string.

Working with small strings

Choose the small files first.

For "small" I mean the ones that have very few strings to be translated. That will start building up a bank of translated strings that can be used in larger files. To detect a "small" file go to the list of [resources] (https://www.transifex.com/projects/p/pgrouting/resources/) and choose a file with few words or few strings.

Use "translate" button

The "translate button" comes quite handy, you still have to check the translation, and there is an "undo" button if you think that its better for you to type the translation than to modify the machine's translation.

Don't use "translate" button on stand alone references like

en:  :ref:`sample`
ja:  :ref:`サンプル`    <--- wrong

Use a "suggestion"

When you work with transifex it builds up a translated string bank and it will show one or more suggestions. If the suggestion is very close to what is needed, use it, and change the translation to the final translation of the string. Example:

en:              :ref:`pgr_astar<pgr_astar>` - Shortest Path A*
Use suggestion:   pgr_astar - A*アルゴリズムを用いた最短経路探索
Modify to:       :ref:`pgr_astar<pgr_astar>` - A*アルゴリズムを用いた最短経路探索

Use "copy button"

Copy the the stand alone references like

en:  :ref:`sample`
ja:  :ref:`sample`

Type a translation

You can just type your translation.

Go to the next string

When you finished translating the string press "tab", that way it get's saved, if you click to a different string, maybe because the next string is already translated, then it won't be saved (green/white stripes).

Save your translation

Make sure all strings using the "Save all unsaved translations" button.

Check your work

This step is needed not to check the translation but to check that ReStructuredText in the translated strings is correct. Many things might be wrong, an extra space, a missing space or a missing character "`" .

Download the translated file and recreate the translation

If the file you modified in transifex is doc--src--changelog--index and want to check the Japanese translation

tools/transifex/download_translation.sh ja pgrouting.doc--src--changelog--index
tools/transifex/create_translations.sh ja

Navigate to the the translated file, for this example it would be

build/doc/html/ja/doc/src/changelog/index.html

Notice the relation between names:

Transifex name:              pgrouting.doc--src--changelog--index
Html Generated File: build/doc/html/ja/doc/src/changelog/index.html

And visualy compare the "looks" with the [English version] (http://docs.pgrouting.org/2.0/en/doc/index.html)

Use the "Approve translation" button

When the file is fully translated (except the navigation bar), you can are about to approve the translation,

  • Check the links first, example: there is a link to sample data.

Example:

html:    上記クエリは サンプルデータ のネットワークを使用しています。   <-- sample data is translated
or:      上記クエリは Sample Data のネットワークを使用しています。   <--- sample data needs translation

If you can navigate the links, you are ok

If you are ok, then choose a string and click the "Approve translation" button.

Which file is next

Do doc--index last

That way you can use the "Use suggestion" in this file.

Work "important" files first

All files are important, but the following files are the core of the project. Most of them have repeated strings, so the "Use Suggestion" tactic is perfect, and you can use the search box to find them.

  • src--dijkstra--doc--index ... 239 words (30 strings)
  • src--driving_distance--doc--dd_alphashape ... 192 words (22 strings)
  • src--driving_distance--doc--dd_driving_distance ... 289 words (32 strings)
  • src--driving_distance--doc--dd_points_as_polygon ... 142 words (19 strings)
  • src--kdijkstra--doc--index ... 419 words (36 strings)
  • src--ksp--doc--index ... 225 words (32 strings)
  • src--trsp--doc--index ... 454 words (42 strings)
  • src--tsp--doc--index ... 911 words (53 strings)
  • src--apsp_johnson--doc--index ... 145 words (23 strings)
  • src--apsp_warshall--doc--index ... 192 words (26 strings)
  • src--astar--doc--index ... 269 words (34 strings)
  • src--bd_astar--doc--index ... 296 words (37 strings)
  • src--bd_dijkstra--doc--index ... 241 words (32 strings)

Work the "almost finished" files

After you finish a file, you can choose a file that is "almost done". I found pretty uncomfortable the list placed at the left, so to choose an almost done file I recommend:

  • Click Documentation
  • Click on your language
  • click on the sorting button (sorts by % of termination)

This is very useful when you have a lot of files already translated

Work files that belong to a directory

Based on the following files:

  • doc--src--changelog--1_x ... 150 words (25 strings) ...
  • doc--src--changelog--2_0 ... 277 words (26 strings) ...
  • doc--src--changelog--index ... 4 words (3 strings) ...

Maybe you started working with doc--src--changelog--index, so the next step would be to work with

  • doc--src--changelog--1_x
  • doc--src--changelog--2_0

So you finished a section, go Translation Check your work.

Troubleshooting

Please post any question in issue 200

The :ref:`nameoflink` link is not translated

Example

en:      The queries use the :ref:`sampledata` network.
ja:      上記クエリは :ref:`sampledata` のネットワークを使用しています。  
html:    上記クエリは Sample Data のネットワークを使用しています。

Thats and indication that the referenced page for Sample Data, isn't fully translated. If you can click on the link and navigate you are ok.

The :ref:`nameoflink` link is the only thing that is translated

Example

en:      The queries use the :ref:`sampledata` network.
ja:      The queries use the :ref:`sampledata` network.
html:    The queries use the サンプルデータ  network.

Maybe you navigated into an untranslated page that has a reference to a translated page.

I don't see the link but I can read :ref: in the html page

This is a common problem when using the translation button.
Example

en:      The queries use the :ref:`sampledata` network.
ja:      上記クエリは: ref:'sampledata'のネットワークを使用しています。   
html:    上記クエリは: ref:'sampledata'のネットワークを使用しています。

The link's generated by the button need to be corrected, I suggest to copy the link together with its sorrounding spaces from the English version:

                            -------------------
en:      The queries use the :ref:`sampledata` network.
ja:      上記クエリは :ref:`sampledata` のネットワークを使用しています。   
html:    上記クエリは サンプルデータ のネットワークを使用しています。
  or:    上記クエリは Sample Data のネットワークを使用しています。

WARNING: Inline literal start-string without end-string.

You will get this error is when using tools/transifex/create_translations.sh. Languages like Japanese that don't use spaces to separate words are more likely to have this error. Unfortunately the error is shown only in line 1.

Inline literals [specs] (http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#inline-markup) require a space before and after. The inline literals we use the most are of the type ``inlineliteral`` like in:

``int4`` id of the end point
``int4``型の始点ノードのID         <--- this will generate the error
``int4 `` 型の始点ノードのID       <--- this will also generate the error (a space is after the 4)
``int4`` 型の始点ノードのID        <--- a space is (before as a new line and) after the inline literal

Main wiki page