Skip to content

diegoberaldin/MetaPhrase

Repository files navigation

MetaPhrase

kotlin kotlin compose license gradle_build

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.

Rationale

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.

Main features

The application main screen is the translation editor, where localizers can insert and review the translation of each message.

base_language
target_language

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
panel_validation_placeholders_full

Currently supported files:

  • Android XML
  • iOS stringtables
  • Windows resx
  • angular-translate JSON
  • Flutter ARB
  • Gettext PO
  • Java properties

Technology

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.