mozilla

Compare Revisions

Application Translation with Mercurial

Change Revisions

Revision 529519:

Revision 529519 by Archaeopteryx on

Revision 529967:

Revision 529967 by Archaeopteryx on

Title:
Application Translation with Mercurial
Application Translation with Mercurial
Slug:
Mozilla/Localization/Application_Translation_with_Mercurial
Mozilla/Localization/Application_Translation_with_Mercurial
Content:

Revision 529519
Revision 529967
n46    <h2 id="Build_pre-requisites">n46    <h2 id="Required_Tools">
n49    <h4>n49    <h4 id="Build_pre-requisites">
n65    <h4>n65    <h4 id="File_comparison_program">
n71    <h4>n71    <h4 id="File_and_text_editor">
n77    <h4>n77    <h4 id="Progress_tracking_tool">
nn270    <h2 id="Tracking_the_translation_progress">
271      Tracking the translation progress
272    </h2>
273    <p>
274      If you translate more than a few strings, you usually want 
 >to keep track of what has already been translated (and later if t
 >he text has been tested in the product as fitting into the availa
 >ble area and suiting the functionality it describes). This guide 
 >achieves this with the Firefox extension <a href="https://addons.
 >mozilla.org/firefox/addon/scrapbook/">Scrapbook</a>.
275    </p>
276    <ol>
277      <li>You installed Scrapbook earlier, now open it in Firefox
 > either by calling it from the Firefox menu bar (press the Alt ke
 >y to show it if necessary) using "View" &gt; "Sidebar" &gt; "Scra
 >pbook" or by clicking its toolbar button which you likely have to
 > add by toolbar customization if you didn't do this before.
278      </li>
279      <li>Drag the tab with the localization error showing missin
 >g and obsolete strings to the sidebar.
280      </li>
281      <li>After Scrapbook has saved the web page to your local di
 >sk, click with the right mouse button on the page in the sidebar 
 >and choose "Properties" from the context menu which gets opened. 
 >Rename it something meaningful, e.g. "Firefox &lt;version number&
 >gt; translation".
282      </li>
283      <li>After you saved the dialog, click with the left mouse b
 >utton on the page in the sidebar to open the locally saved copy.
284      </li>
285    </ol>
286    <h2 id="Opening_English_files_and_the_target_locale_side-by-s
 >ide">
287      Opening English files and the target locale side-by-side
288    </h2>
289    <p>
290      The localization report shows the IDs of added or removed t
 >exts, but the English text itself is still unknown. We get this b
 >y comparing the English version of the file with the one of the l
 >ocale we are translating in. To do so,
291    </p>
292    <ol>
293      <li>Launch WinMerge.
294      </li>
295      <li>From its "File" menu, choose "Save project".
296      </li>
297      <li>For the file path of the left directory, go to the down
 >loaded <code>mozilla-aurora</code> source code and then into its 
 ><strong><code>browser/locales/en-US/</code></strong> folder. In t
 >his example, the absolute file path is <code>C:\Mozilla\mozilla-a
 >urora\browser\locales\en-US</code>.
298      </li>
299      <li>Enable read-only mode for the left directory.
300      </li>
301      <li>For the file path of the right directory, go to the dow
 >nloaded translation directory <code>de-mozilla-aurora</code> and 
 >then into its <code>browser</code> folder. In this example, the a
 >bsolute file path is <code>C:\Mozilla\de-mozilla-aurora\browser</
 >code>.
302      </li>
303      <li>Save this comparison as project so you can easily relau
 >nch this comparision without selecting the directories again. A g
 >ood name is e.g. <code>translation-mozilla-aurora-browser.winmerg
 >e</code>
304      </li>
305      <li>Open the comparison you just saved.
306      </li>
307    </ol>
308    <h2 id="The_translation">
309      The translation
310    </h2>
311    <ol>
312      <li>
313        <p>
314          Bring the console with Mercurial to the front.
315        </p>
316      </li>
317      <li>
318        <p class="brush: bash">
319          Start tracking changes you make against the localizatio
 >n repository by telling it that with the <strong><code>qnew</code
 >></strong> subcommand to save these changes as patch in a mercuri
 >al queue. This patch needs a name, choose something meaning full 
 >like "<code>Firefox-&lt;version number&gt;-more-details</code>". 
 >In this example, <code>Firefox-29-aboutPrivateBrowsing</code> wil
 >l be used.<br>
320          <code>hg qnew Firefox-29-aboutPrivateBrowsing</code>
321        </p>
322      </li>
323      <li>Switch back to WinMerge and navigate to <code>browser/c
 >hrome/browser/</code> and open the <code>aboutPrivateBrowsing.dtd
 ></code> file. You will see something like this:<br>
324        <img alt="single file comparision in WinMerge without cha
 >nges by the user" src="https://mdn.mozillademos.org/files/7305/mo
 >zilla%20-%20compare%20-%20unchanged.png"><br>
325        On the left, you see an overview of the comparison of the
 > English and the non-English file. Gray parts indicate blocks of 
 >texts which can't be found in that file, dark yellow represents c
 >hanged lines and light yellow the parts of text in it which is di
 >fferent.
326      </li>
327      <li>Below the license header which should never changed, th
 >e texts are organized in the following format:<br>
328        <code>&lt;!ENTITY stringid "Text which will be shown in F
 >irefox"&gt;</code>
329      </li>
330      <li>As you can see there is a bigger block of text not reco
 >gnized. This is due to the texts which have in the English versio
 >nmoved from below the string with the id <code>privatebrowsingpag
 >e.howToStart3</code> to a position above it. Cut and paste these 
 >strings in the localized file so their position corresponds to th
 >e on in the English file.
331      </li>
332      <li>Press the F5 key or click the reload button in WinMerge
 >'s toolbar to re-compare the files.
333      </li>
334      <li>Now copy the empty lines below <code>privatebrowsingpag
 >e.learnMore</code> and the line <code>&lt;!-- TO BE REMOVED POST-
 >AUSTRALIS --&gt;</code> to the localized file. This text is a com
 >ment (which in .dtd files always can be found between <code>&lt;!
 >--</code> and <code>--&gt;</code>). There is no need to translate
 > this text.
335      </li>
336      <li>Now we copy the two missing lines from the English file
 > and insert them in the localized file:<br>
337        <code>&lt;!-- LOCALIZATION NOTE (privatebrowsingpage.howT
 >oStart4): please leave &amp;newPrivateWindow.label; intact in the
 > translation --&gt;<br>
338        &lt;!ENTITY privatebrowsingpage.howToStart4&nbsp;&nbsp;&n
 >bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
 >nbsp; "To start Private Browsing, you can also select &amp;newPri
 >vateWindow.label; from the menu."&gt;</code><br>
339        The first line is a comment providing information on the 
 >localization of the text in the following line. <code>&amp;newPri
 >vateWindow.label;</code> has to be left unchanged so it can be re
 >placed with the text of the string id <code>&amp;newPrivateWindow
 >.label;</code> whis is stored elsewhere<code>.</code>
340      </li>
341      <li>
342        <strong>Translation time</strong>: Translate the text. Af
 >terwars, the line should look somehow like this:<br>
343        <code>&lt;!ENTITY privatebrowsingpage.howToStart4&nbsp;&n
 >bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&
 >nbsp;&nbsp; "Der private Modus kann auch über den Menü-Eintrag &a
 >mp;newPrivateWindow.label; gestartet werden."&gt;</code>
344      </li>
345      <li>Save the file.
346      </li>
347    </ol>
n271      Tracking the translation progressn349      Exporting the changes as patch
272    </h2>
273    <p>350    </h2>
274      If you translate more than a few strings, you usually want 
>to keep track of what has already been translated (and later if t 
>he text has been tested in the product as fitting into the availa 
>ble area and suiting the functionality it describes). This guide  
>achieves this with the Firefox extension <a href="https://addons. 
>mozilla.org/firefox/addon/scrapbook/">Scrapbook</a>. 
275    </p>351    <p>
352      A patch is a file containing recorded changes to a reposito
 >ry. It can be used to apply these changes to a copy of the reposi
 >tory yet without these changes.
276    <ol>353    </p>
277      <li>You installed Scrapbook earlier, now open it in Firefox354    <ol>
> either by calling it from the Firefox menu bar (press the Alt ke 
>y to show it if necessary) using "View" &gt; "Sidebar" &gt; "Scra 
>pbook" or by clicking its toolbar button which you likely have to 
> add by toolbar customization if you didn't do this before. 
355      <li>Tell Mercurial to store the changes in the Mercurial qu
 >eue with the <code>qref</code> command. We also create a commit m
 >essage which will describe the changes in the patch and later get
 > used when the patched gets checked in ('added') to the official 
 >repository with the localized files. For the commit message, we h
 >ave to use the <code>-m</code> command line flag,<br>
356        <code>hg qref -m "Firefox 29: Localize missing string in 
 >aboutPrivateBrowsing.dtd"</code><br>
357        You can change the commit message in the Mercurial queue 
 >every time by calling <code>hg qref</code> again.
n279      <li>Drag the tab with the localization error showing missinn359      <li>Now export the patch to the file system using the <code
>g and obsolete strings to the sidebar.>>qexport</code> command which is defined in the <code>.hgrc</code
 >> file (see above):<br>
280      </li>360        <code>hg qexport &gt; ../firefox-29-aboutPrivateBrowsing-
 >v1.patch</code><br>
281      <li>After Scrapbook has saved the web page to your local di361        This creates a patch file called <code>firefox-29-aboutPr
>sk, click with the right mouse button on the page in the sidebar >ivateBrowsing-v1.patch</code> containing the changes in the paren
>and choose "Properties" from the context menu which gets opened. >t directory of <code>de-mozilla-aurora</code> (in this example: <
>Rename it something meaningful, e.g. "Firefox &lt;version number&>code>C:\Mozilla\</code>).
>gt; translation". 
282      </li>
283      <li>After you saved the dialog, click with the left mouse b
>utton on the page in the sidebar to open the locally saved copy. 
t287      Opening English files and the target locale side-by-sidet365      Proof-reading and altering the patch
288    </h2>
289    <p>
290      The localization report shows the IDs of added or removed t
>exts, but the English text itself is still unknown. We get this b 
>y comparing the English version of the file with the one of the l 
>ocale we are translating in. To do so, 
291    </p>
292    <ol>
293      <li>Launch WinMerge.
294      </li>
295      <li>From its "File" menu, choose "Save project".
296      </li>
297      <li>For the file path of the left directory, go to the down
>loaded <code>mozilla-aurora</code> source code and then into its  
><strong><code>browser/locales/en-US/</code></strong> folder. In t 
>his example, the absolute file path is <code>C:\Mozilla\mozilla-a 
>urora\browser\locales\en-US</code>. 
298      </li>
299      <li>Enable read-only mode for the left directory.
300      </li>
301      <li>For the file path of the right directory, go to the dow
>nloaded translation directory <code>de-mozilla-aurora</code> and  
>then into its <code>browser</code> folder. In this example, the a 
>bsolute file path is <code>C:\Mozilla\de-mozilla-aurora\browser</ 
>code>. 
302      </li>
303      <li>Save this comparison as project so you can easily relau
>nch this comparision without selecting the directories again. A g 
>ood name is e.g. <code>translation-mozilla-aurora-browser.winmerg 
>e</code> 
304      </li>
305      <li>Open the comparison you just saved.
306      </li>
307    </ol>
308    <h2>366    </h2>
309      The translation
310    </h2>
311    <p>
312      &nbsp;
313    </p>367    <p>
314    <p>368      Now proof-read the patch. This detects often more than 90 p
 >ercent of the possible reasons for the reviewer to not accept the
 > patch. If you find that changes have to be done, edit the real a
 >boutPrivateBrowsing.dtd file from the localization repository, sa
 >ve it and follow the steps from Exporting the changes as patch (s
 >ee above).
315      &nbsp;

Back to History