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