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