Android and iOS Apps Localization

Effectively manage localization for iOS and Android apps without translating the same strings twice.

Localization Management within a Single Project

Translate iOS and Android files within one Crowdin project. Select one of the options suggested below, depending on your project specifications.


  • Place iOS (iOS Strings, iOS XLIFF) and Android (Android XML) app files into different locations (folders) in the Crowdin project
  • Use Duplicate Strings option to manage duplicates
  • Use Unify Placeholders option to manage Android and iOS placeholders

Hide Duplicates

Upload iOS and Android app files to one Crowdin project and select the Hide option in the Settings tab.

File Settings

Usually, the app developed for iOS and Android platforms share most of the source strings for iOS and Android files. So once you select the Hide option, the system will detect the duplicate strings for both types of files (iOS and Android) and hide them while keeping visible only strings in the files that were uploaded first.

Once the string that was uploaded first is translated, the hidden duplicate will get this translation automatically due to the selected Hide option. This way, translators will translate only the unique visible texts. When the translation of the visible string is updated, its hidden duplicates will also get the updated translation. Project owner and managers can easily distinguish duplicate strings with the help of labels HIDDEN and DUPLICATE, which are automatically added by the system. On export, you’ll get both iOS and Android files with the necessary translations.

For more advanced project management, consider using version branches, but select the Hide option instead of Show within a version branch. This approach will allow developers to download separate branches for iOS and Android with all the translated texts whenever necessary.

Note: Suggested variant may affect translation accuracy, as all the duplicate strings independently of their context will share the same translation.

Unify Placeholders

If some source strings for iOS and Android are the same but differ only in terms of the placeholder, it’s recommended to select the Unify Placeholders option in the Settings tab.

For example, you added the iOS string Hello, %@! and a similar one to Android Hello, %s!. The Unify Placeholders option will convert both of them to Hello, [%s]!, so translation from the Android file can migrate to iOS. On export, you will get translations with the original placeholders.

It’s also possible to add/modify new strings online in the project for both Android XML and iOS Strings files via the Strings section of the project. Read more about String Editing.

Custom File Export

Localize the resources of just one application within Crowdin, and download different file formats for both your Android and iOS apps.

For example, you can upload an XML file to Crowdin for Android localization and receive two files on export: XML for Android and Strings for iOS. Translations keys will remain the same as in the Android file, so you’ll need to configure them for the iOS file separately.

Contact our support team, and we’ll gladly help you set up the necessary export option.

Localization Management within 2 Projects

Create two separate projects for iOS and Android applications.


  • Connect iOS repo to a project in Crowdin
  • Connect Android repo to a project in Crowdin
  • Enable the Share TMs option
  • Create an automatic workflow for pre-translation or use manual pre-translation
  • Use option for duplicates management Show within a version branch

Enable Translation Memory (TM) Sharing. This way, you can reuse common string translations in several projects.

For example, while localizing the Android XML file, the project TM will be filled out automatically. Then you can use the Android project TM to run pre-translation of the iOS project, which will apply translations to the strings that both projects share.

Using this approach, you can set up a specific workflow for all new strings to be automatically pre-translated by TM.

Also, you may enable auto-substitution to substitute some non-translatable elements like placeholders while using TM. Auto-substitution extracts a translation from TM and then replaces Android placeholders into iOS and visa versa (depends on what type of project is used). Translation with Android placeholder automatically transfers into translation with iOS placeholder and can be automatically applied with the help of pre-translation via TM.

Next Steps in Mobile Apps Localization

Here are the next steps you might consider while localizing your mobile apps. As an alternative to a more traditional approach when dealing with source files, you can send strings for translation directly from your design tools with the help of Crowdin plugins. Another good option is to use Over-the-Air Content Delivery to update translated strings of your mobile apps instantly without a need to roll out a new version on the App Store or Google Play.

Read more about Android or iOS mobile app localization on our blog.

See Also

Was this article helpful?