An open source translation editor specifically designed having in mind the issues localizers of native mobile apps (Android and iOS apps) have to deal with in their everyday tasks.
After the translation is complete, the files can be exported backwards to native formats (.xml
or .strings
) for each individual language so that translators can work to one language at a time.
Placeholders, for which the standard is the Android format in the editor, are converted back to iOS conventions when exporting to a stringtable.
MetaPhrase is designed to work with the standard localization formats used for mobile application development: string tables (aka Localizable.strings
) files on iOS and XML resource files on Android. It is specifically designed to import and export to those formats and to manage the properties allowed by theser formats (e.g. marking some messages as untranslatable).
Special care has been taken to provide only the information needed for the translation task without cluttering the UI with too much information (e.g. not showing local variants for other languages) but at the same time all that is really needed, such as keys for context and source messages for reference.
If you want to know more about the design choices of the app and a comparison with the existing alternatives, please check out the project homepage.
If you are interested in an in-depth description of the features, please refer to the user manual.
The application main screen is the translation editor, where localizers can insert and review the translation of each message.
The bottom part of the main screen contains an expandable panel which gives access to useful features to make it easier to deliver high quality work for localizers such as:
- fuzzy matches in translation memory
- placeholder validation
- browse translation memory content
- glossary
- machine translation
Currently supported files:
- Android XML
- iOS stringtables
- Windows resx
- angular-translate JSON
- Flutter ARB
- Gettext PO
- Java properties
If you are a developer and would like to know more about the technologies involved, here is a short list:
- Kotlin (multiplatform)
- Jetpack Compose
- Decompose
- Koin
- H2 DB
- JetBrains Exposed
- Redundent XML
- AndroidX datastore (preference based)
- Ktor client
- sl4j + log4j
More on this in the tech notes section of the project homepage.