Localization for the Firefox for iOS project.
The application code with build instructions can be found at https://github.com/mozilla-mobile/firefox-ios.
Matrix channel: #fx-ios.
Automation is used to extract strings from the code repository, and expose them to all other locales.
- Strings are extracted and saved in the
en-USXLIFF file. - The updated
en-USXLIFF is used as a template. Existing translations are copied over if all these elements match:idattribute oftrans-unit.originalattribute offile.sourcetext.
As a consequence, the default update removes translations if:
- The source text was changed.
- The string was moved from one file to another.
This is not ideal when the change in the source text is trivial, or the string move is caused by code refactoring.
It’s possible to invoke automation manually, and use a different matching criterion:
nofilewill copy translations if the ID and source text match, ignoring the file. This is useful to minimize the impact of code refactoring.matchidwill ignore both file and source text, copying translations if the ID matches. This is useful for source changes that don’t require invalidating existing translations.
When opening a pull request that touches the en-US folder, a GitHub workflow is used to check for common issues in the reference strings (misused quotes or ellipsis, hard-coded brand names). It's possible to add exceptions in this JSON file.
Brand new locales might not be correctly imported in the product. This workflow tries to identify missing locales looking at .lproj folders in the product repository.
Translations in this repository are available under the terms of the Mozilla Public License v2.0.