Bootstrapping a new locale

  • Revision slug: Bootstrapping_a_New_Locale
  • Revision title: Bootstrapping a new locale
  • Revision id: 78169
  • Created:
  • Creator: sethb@mozilla.com
  • Is current revision? No
  • Comment 9 words added, 58 words removed

Revision Content

In Mozilla, we use the the Mercurial version control system (Hg) to help manage our localizations. When a localization team becomes "official" and your Hg repository is set up for a locale, you can thenclone the existing Mozilla release branch (i.e. where active developement of the upcoming release of Firefox occurs) and then begin the necessary work for translation.  Hg allows localizers to work locally on their machines and then "push" changes to their official Mozilla repository.

Installing Mercurial

Depending on your operating system, you will need to install the correct version of Hg on your machine.  <a href="https://developer.mozilla.org/en/Installing_Mercurial>"This document"</a> will give you the basic information on how to do that.

Working with Bit Bucket

Before a team becomes official, we like to get the lcoalizers comfortable with the Hg commands that allow for "pulling", "cloning", and "pushing" work to an experimental repository.  We use a web service called <a href="http://www.bitbucket.org">"Bit Bucket"</a> to start the learning process with Hg.

To begin, contact the l10n-drivers to let them know that you are interesting in starting a localization.  The l10n-drivers will help set up an experimental Hg repository in Bit Bucket.

After your new Bit Bucket repository is created by the l10n-drivers, pleae visit the URL for your repo.  You can do this by entering the following URL into your browser:

$  https://bitbucket.org/mozillal10n/ab-CD/overview/

(where ab-CD will be replaced by your locale code)

At that main page of your newly created Bit Bucket repo, you'll see the Hg commands,

$ hg clone http://bitbucket.org/mozillal10n/ab-CD/ ...
$ hg pull -u # to pull changes and update $ hg push # to push changes to this repo

Import existing data?

$ cd /path/to/existing/hg/repo/ $ hg push http://bitbucket.org/mozillal10n/ab-CD/

Prefer SSH?

$ hg clone ssh://hg@bitbucket.org/mozillal10n/ab-CD/
$ hg push ssh://hg@bitbucket.org/mozillal10n/ab-CD/

Getting started

Open your command line terminal prompt and create a folder where you will work.  You can do this by running the following commands:

$mkdir Mozilla
$cd Mozilla

You should now have your newly created Mozilla directory in your path. You will need to "hg clone" the existing release branch for Mozilla
so you have all the files locally for you to begin localization.  In the above path, type the following command:

$hg clone hg clone http://hg.mozilla.org/releases/mozilla-x.x.x/

Where "x.x.x" is the existing release branch version.  For instance, for Firefox 3.6, we use ~/mozilla-1.9.2/

After you have cloned the release branch locally to your machine, you will need to navigate to each of the files necessary for localization.

IMPORTANT STEP

Copy the entire ~/mozilla-x.x.x/ directory and renaming it to your locale code (e.g. ab-CD) and placing it one level above in your
~/Mozilla/ main directory

Change your directory to the new copy by running the following command:

$cd ..
$cd ab-CD

You should now be in the ~/Mozilla/ab-CD/ path and can start localizing. We'll first navigate to the directory called "browser" by running
the following commands one after the other from your command line:

$cd [ab-CD]/
$cd browser/ 
$cd locales/ 
$cd en-US/ 
$cd chrome/ 
$cd browser

Or, to make life more simple, you can type one command to navigate all the way to the directory where you can begin.  That command is the
same as above, in one string.

$cd [ab-CD]/browser/locales/en-US/chrome/browser

To see what is contained in "browser" type

$ls

And, you should see the following output from your terminal:

aboutCertError.dtd         pageInfo.dtd aboutDialog.dtd                   pageInfo.properties aboutPrivateBrowsing.dtd    pageReportFirstTime.dtd
aboutRobots.dtd            places aboutSessionRestore.dtd                 preferences aboutSupport.dtd                    quitDialog.properties
baseMenuOverlay.dtd        safeMode.dtd browser.dtd                       safebrowsing browser.properties                 sanitize.dtd
credits.dtd                search.properties engineManager.dtd            searchbar.dtd engineManager.properties          setDesktopBackground.dtd
feeds                      shellservice.properties history                sidebar migration                               tabbrowser.dtd
openLocation.dtd           tabbrowser.properties openLocation.properties

As a localizer, you are responsible for opening each of the ".dtd" and ".properties" files to begin localizing.

Directories to localize

If you're starting from scratch, these are the directories you need to download and translate:

mozilla/browser/locales/en-US/ 
mozilla/dom/locales/en-US/ 
mozilla/netwerk/locales/en-US/
mozilla/other-licenses/branding/firefox/locales/en-US 
mozilla/security/manager/locales/en-US/ 
mozilla/toolkit/locales/en-US/

The localized files end up in the following directories, corresponding to the paths above (replace ab-CD with your locale code, possibly
only two letters):

l10n/ab-CD/browser/ 
l10n/ab-CD/dom/ 
l10n/ab-CD/netwerk/ 
l10n/ab-CD/other-licenses/branding/firefox/ 
l10n/ab-CD/security/manager/
l10n/ab-CD/toolkit/ 

Translating

To start editing the files necessary to localize, you should have a text editing application like <a
href="http://www.barebones.com/products/TextWrangler/">"Text Wrangler"</a>.  After you have downloaded your editor of choice, type the
following command in the same path from above (~/mozilla-1.9.2/browser/locales/en-US/chrome/browser)

$open aboutCertError.dtd -a [your text editing application's name]

Read the top of the file to get any context on how to translate contained in the notes written by the developers or l10n-drivers.  Localization notes will look like the following:

$<!-- LOCALIZATION NOTES... -->

After the localization notes, you will see a list of <!ENTITY> strings like the following:

$<!ENTITY certerror.pagetitle  "Untrusted Connection">

You should go through each entity, translating  the value in the parameters (i.e., "the content within the quotation marks").  Once you have translated all the <!ENTITY> strings in this file, you should save your work and open the next .dtd or .property file.  You will need to go through each and every file to in every directory in ~[ab-CD]/browser/locales/en-US/

The following "phase list" provides a very rough guide on where to start and how to proceed through localizing.

http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phaselist?view= markup

with a description of the phases here:

http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phases?view= markup

Land your translated files one by one, making sure it follows the *mozilla-1.9.2* structure.  This will familiarize you with our "Hg"
commands and will get us something that we can import easily when you are done.

Revision Source

<p>In Mozilla, we use the the Mercurial version control system (Hg) to help manage our localizations. When a localization team becomes "official" and your Hg repository is set up for a locale, you can thenclone the existing Mozilla release branch (i.e. where active developement of the upcoming release of Firefox occurs) and then begin the necessary work for translation.  Hg allows localizers to work locally on their machines and then "push" changes to their official Mozilla repository.</p>
<h2>Installing Mercurial</h2>
<p>Depending on your operating system, you will need to install the correct version of Hg on your machine.  &lt;a href="https://developer.mozilla.org/en/Installing_Mercurial&gt;"This document"&lt;/a&gt; will give you the basic information on how to do that.</p>
<h2>Working with Bit Bucket</h2>
<p>Before a team becomes official, we like to get the lcoalizers comfortable with the Hg commands that allow for "pulling", "cloning", and "pushing" work to an experimental repository.  We use a web service called &lt;a href="<a class=" external" href="http://www.bitbucket.org" rel="freelink">http://www.bitbucket.org</a>"&gt;"Bit Bucket"&lt;/a&gt; to start the learning process with Hg.</p>
<p>To begin, contact the l10n-drivers to let them know that you are interesting in starting a localization.  The l10n-drivers will help set up an experimental Hg repository in Bit Bucket.</p>
<p>After your new Bit Bucket repository is created by the l10n-drivers, pleae visit the URL for your repo.  You can do this by entering the following URL into your browser:</p>
<pre>$  https://bitbucket.org/mozillal10n/ab-CD/overview/</pre>
<p>(where ab-CD will be replaced by your locale code)</p>
<p>At that main page of your newly created Bit Bucket repo, you'll see the Hg commands,</p>
<pre>$ hg clone http://bitbucket.org/mozillal10n/ab-CD/ ...
</pre>
<pre>$ hg pull -u # to pull changes and update $ hg push # to push changes to this repo
</pre>
<p>Import existing data?</p>
<pre>$ cd /path/to/existing/hg/repo/ $ hg push http://bitbucket.org/mozillal10n/ab-CD/</pre>
<p>Prefer SSH?</p>
<pre>$ hg clone ssh://hg@bitbucket.org/mozillal10n/ab-CD/</pre>
<pre>$ hg push ssh://hg@bitbucket.org/mozillal10n/ab-CD/</pre>
<h2>Getting started</h2>
<p>Open your command line terminal prompt and create a folder where you will work.  You can do this by running the following commands:</p>
<pre>$mkdir Mozilla
</pre>
<pre>$cd Mozilla</pre>
<p>You should now have your newly created Mozilla directory in your path. You will need to "hg clone" the existing release branch for Mozilla<br>
so you have all the files locally for you to begin localization.  In the above path, type the following command:</p>
<pre>$hg clone hg clone http://hg.mozilla.org/releases/mozilla-x.x.x/</pre>
<p>Where "x.x.x" is the existing release branch version.  For instance, for Firefox 3.6, we use ~/mozilla-1.9.2/</p>
<p>After you have cloned the release branch locally to your machine, you will need to navigate to each of the files necessary for localization.</p>
<p>IMPORTANT STEP</p>
<p>Copy the entire ~/mozilla-x.x.x/ directory and renaming it to your locale code (e.g. ab-CD) and placing it one level above in your<br>
~/Mozilla/ main directory</p>
<p>Change your directory to the new copy by running the following command:</p>
<pre>$cd ..
</pre>
<pre>$cd ab-CD</pre>
<p>You should now be in the ~/Mozilla/ab-CD/ path and can start localizing. We'll first navigate to the directory called "browser" by running<br>
the following commands one after the other from your command line:</p>
<pre>$cd [ab-CD]/
$cd browser/ 
$cd locales/ 
$cd en-US/ 
$cd chrome/ 
$cd browser</pre>
<p>Or, to make life more simple, you can type one command to navigate all the way to the directory where you can begin.  That command is the<br>
same as above, in one string.</p>
<pre>$cd [ab-CD]/browser/locales/en-US/chrome/browser</pre>
<p>To see what is contained in "browser" type</p>
<pre>$ls</pre>
<p>And, you should see the following output from your terminal:</p>
<pre>aboutCertError.dtd         pageInfo.dtd aboutDialog.dtd                   pageInfo.properties aboutPrivateBrowsing.dtd    pageReportFirstTime.dtd
aboutRobots.dtd            places aboutSessionRestore.dtd                 preferences aboutSupport.dtd                    quitDialog.properties
baseMenuOverlay.dtd        safeMode.dtd browser.dtd                       safebrowsing browser.properties                 sanitize.dtd
credits.dtd                search.properties engineManager.dtd            searchbar.dtd engineManager.properties          setDesktopBackground.dtd
feeds                      shellservice.properties history                sidebar migration                               tabbrowser.dtd
openLocation.dtd           tabbrowser.properties openLocation.properties</pre>
<p>As a localizer, you are responsible for opening each of the ".dtd" and ".properties" files to begin localizing.</p>
<h2>Directories to localize</h2>
<p>If you're starting from scratch, these are the directories you need to download and translate:</p>
<pre>mozilla/browser/locales/en-US/ 
mozilla/dom/locales/en-US/ 
mozilla/netwerk/locales/en-US/
mozilla/other-licenses/branding/firefox/locales/en-US 
mozilla/security/manager/locales/en-US/ 
mozilla/toolkit/locales/en-US/</pre>
<p>The localized files end up in the following directories, corresponding to the paths above (replace ab-CD with your locale code, possibly<br>
only two letters):</p>
<pre>l10n/ab-CD/browser/ 
l10n/ab-CD/dom/ 
l10n/ab-CD/netwerk/ 
l10n/ab-CD/other-licenses/branding/firefox/ 
l10n/ab-CD/security/manager/
l10n/ab-CD/toolkit/ </pre>
<h2>Translating</h2>
<p>To start editing the files necessary to localize, you should have a text editing application like &lt;a<br>
href="<a class=" external" href="http://www.barebones.com/products/TextWrangler/" rel="freelink">http://www.barebones.com/products/TextWrangler/</a>"&gt;"Text Wrangler"&lt;/a&gt;.  After you have downloaded your editor of choice, type the<br>
following command in the same path from above (~/mozilla-1.9.2/browser/locales/en-US/chrome/browser)</p>
<pre>$open aboutCertError.dtd -a [your text editing application's name]</pre>
<p>Read the top of the file to get any context on how to translate contained in the notes written by the developers or l10n-drivers.  Localization notes will look like the following:</p>
<pre>$&lt;!-- LOCALIZATION NOTES... --&gt;</pre>
<p>After the localization notes, you will see a list of &lt;!ENTITY&gt; strings like the following:</p>
<pre>$&lt;!ENTITY certerror.pagetitle  "Untrusted Connection"&gt;</pre>
<p>You should go through each entity, translating  the value in the parameters (i.e., "the content within the quotation marks").  Once you have translated all the &lt;!ENTITY&gt; strings in this file, you should save your work and open the next .dtd or .property file.  You will need to go through each and every file to in every directory in ~[ab-CD]/browser/locales/en-US/</p>
<p>The following "phase list" provides a very rough guide on where to start and how to proceed through localizing.</p>
<p><a href="http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phaselist?view= markup" title="http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phaselist?view= markup">http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phaselist?view= markup</a></p>
<p>with a description of the phases here:</p>
<p><a href="http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phases?view= markup" title="http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phases?view= markup">http://zaf.svn.sourceforge.net/viewvc/zaf/trunk/po/fftb/phases?view= markup</a></p>
<p>Land your translated files one by one, making sure it follows the *mozilla-1.9.2* structure.  This will familiarize you with our "Hg"<br>
commands and will get us something that we can import easily when you are done.</p>
Revert to this revision