tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

singlel10nsource.rst (2595B)


      1 ==============================================
      2 Single localization source for multiple builds
      3 ==============================================
      4 
      5 Firefox uses one localization source for all of its build versions.
      6 
      7 There's a number of upsides to this:
      8 
      9 * Localizers maintain a single source of truth. They can translate Nightly,
     10  while updating Beta, Developer Edition or even Release and ESR.
     11 * It extends the window of time localizers can work on strings before deadlines.
     12 * Uplifting string changes has less of an impact on the localization toolchain,
     13  and their impact can be evaluated case by case.
     14 
     15 So the problem at hand is to have one localization source
     16 and use that to build multiple versions of Firefox. The goal is for that
     17 localization to be as complete as possible for each version.
     18 
     19 The process to tackle these follows these steps:
     20 
     21 * Create resource to localize, `firefox-l10n-source`_.
     22 
     23  * Review updates to that resource in a *quarantine*.
     24  * Expose a known good state of that resource to localizers.
     25 
     26 * Get content localized in Pontoon.
     27 * Write localizations back to `firefox-l10n`_.
     28 * Get localizations into the builds.
     29 
     30 firefox-l10n-source repository
     31 ==============================
     32 
     33 `firefox-l10n-source`_ acts as a unified source string repository for all
     34 shipping Firefox versions (nightly, beta, release, ESR, etc.).
     35 The repository consists of two branches, ``main`` and ``update``.
     36 
     37 The ``main`` branch contains all final ``en-US`` strings. Pontoon syncs from
     38 this branch exposing any new strings committed to this branch to Localizers.
     39 
     40 The ``update`` branch acts as a quarantine. Scheduled GitHub actions are used
     41 to regularly extract new messages from the Firefox source code in ``gecko-dev``
     42 and add them to the ``update`` branch. Changes in the ``update`` branch are
     43 merged into ``main`` after the Localization Team review.
     44 
     45 .. note::
     46 
     47   The concept behind the quarantine in the process above is to
     48   protect localizers from churn on strings that have technical
     49   problems. Examples like that could be missing localization notes
     50   or copy that should be improved.
     51 
     52 
     53 firefox-l10n repository
     54 =======================
     55 
     56 `firefox-l10n`_ acts as the source of truth of all localized strings. Once
     57 the translation of a string is completed in Pontoon, the content is stored
     58 in the associated sub-directory for each locale. These strings are then used
     59 during build to create builds and langpacks for all shipping Firefox locales.
     60 
     61 .. _firefox-l10n-source: https://github.com/mozilla-l10n/firefox-l10n-source
     62 .. _firefox-l10n: https://github.com/mozilla-l10n/firefox-l10n