1.. role:: bash(code) 2 :language: bash 3 4.. role:: js(code) 5 :language: javascript 6 7.. role:: python(code) 8 :language: python 9 10============================================= 11Migrating Strings From Legacy or Fluent Files 12============================================= 13 14Firefox is a project localized in over 100 languages. As the code for existing 15features moves away from the old localization systems and starts using 16`Fluent`_, we need to ensure that we don’t lose existing translations, which 17would have the adverse effect of forcing contributors to localize hundreds of 18strings from scratch. 19 20`Fluent Migration`_ is a Python library designed to solve this specific problem: 21it allows to migrate legacy translations from `.dtd` and `.properties` files, 22not only moving strings and transforming them as needed to adapt to the `FTL` 23syntax, but also replicating "blame" for each string in VCS. 24 25The library also includes basic support for migrating existing Fluent messages 26without interpolations (e.g. variable replacements). The typical use cases 27would be messages moving as-is to a different file, or changes to the 28morphology of existing messages (e.g move content from an attribute to the 29value of the message). 30 31.. toctree:: 32 :maxdepth: 2 33 34 overview 35 legacy 36 fluent 37 testing 38 localizations 39 40How to Get Help 41=============== 42 43Writing migration recipes can be challenging for non trivial cases, and it can 44require extensive l10n knowledge to avoid localizability issues. 45 46Don’t hesitate to reach out to the l10n-drivers for feedback, help to test or 47write the migration recipes: 48 49 - Francesco Lodolo (:flod) 50 - Staś Małolepszy (:stas) 51 - Zibi Braniecki (:gandalf) 52 - Axel Hecht (:pike) 53 54.. _Fluent: http://projectfluent.org/ 55.. _Fluent Migration: https://hg.mozilla.org/l10n/fluent-migration/ 56