Localization used to be a part of the app scaling strategy. But not anymore. Today, when users download a mobile application, they already expect it to match their language preferences. So no matter what stage of the app development you’re in, localization should be part of it. The good news, localization is no longer a process that slows down everything. If done with the right technology, it is smoothly integrated into the development process and becomes an integral part of the app life cycle.
Let’s discuss automation in the app localization, sharing translations between Android and iOS projects, and providing context for translators. You’ll also learn how to localize strings without resource files and export Android XML and Strings files if the sources were uploaded in other formats.
Continuous Localization Is What You Need
If you’re new to the topic, the best idea to start with is that localization is an integral part of product development, the same as prototyping or testing. So localization will require some additional setups at the beginning to ensure continuous workflow later on.
If you’re in the middle of the mobile app localization process, you, probably, already understand that simply downloading resource files, sending them to translators, and integrating translations into the codebase is easier said than done. First of all, it’s a total waste of time with all the manual work. Secondly, with even the slightest change in the source texts or when a new copy arrives, you need to repeat the process of downloading, sending, and integrating all over. And finally, when you send a spreadsheet with strings to translators without any context, be ready to receive myriads of lack-of-context-related questions that are multiplied by the number of target languages.
How to Automate Content Synchronization?
There are a variety of continuous integrations you can set up with Crowdin, and they all do a great job of synchronizing content between systems you use. There are integrations with GitHub, GitLab, Bitbucket, and Azure Repos. Integration with GitHub Actions is supported as well. You can also use the Crowdin CLI or Android Studio plugin to automatically get source files uploaded to Crowdin and integrate translations into the codebase effortlessly.
How to Speed Up Localization Even More?
Developers fear localization because it can slow down even the most speedy teams. From our experience, localization does slow down the development when localization of a feature starts after its release in the source variant. In other words, when translators can access content only after the deployment.
With Crowdin, you can configure different branches for each app version in your Crowdin project, then test and release multilingual versions of your app right away.
Check out the case study and learn how Aviasales, a tech company that develops travel software, managed to localize apps in the agile environment.
Shared Project for Both Android and iOS Apps
Usually, iOS and Android app versions have much of the same content. In Crowdin, you can easily detect duplicate strings and not translate the same content twice.
You can localize both apps within the same project. Or even localize either the Android or iOS app first, and then download translations in the necessary format, either Android XML or Strings.
Hide Duplicates Not to Translate Content Twice
When configuring the project settings, enable the Hide duplicates option, and similar strings will be shown only once for translators. The duplicated strings will get the translation of the master string automatically. In this case, a master string is the one that was added to the project first.
Unify Placeholders for iOS and Android Strings
To treat more strings as duplicates, you can unify placeholders within iOS and Android strings used in the same project. For example, Hello, %s! (Android) and Hello, %@! (iOS) will be matched as duplicates and will be shown to translators as Hello, [%s]! On export, you’ll get files with the placeholders in their original formatting.
Learn how to unify placeholders in Android and iOS localization.
Launch Custom File Exporters
You can also translate your Android app in Crowdin without uploading the resource files for the iOS and then launch a custom exporter via Crowdin API or CLI to get the source and translated files in the Strings formats. Or vice versa, translate the iOS app and export translation in the Android XML format.
You can export strings in the Android XML and Strings formats regardless of the initial source file format, including CSV, DOCX, XLSX, and more.
What if I Want Two Separate Projects?
It’s also an option. In this case, to save translation cost, you can reuse the Android version’s translations in the iOS project or vice versa. For this, enable Translation Memory (TM) Sharing in the Project Settings. You then can pre-translate content with the Translation Memories you have or allow translators to use TM suggestions while translating.
Mobile App Localization Without Resource Files
Traditionally localization of apps starts when the resource files are handed off to translators, either by email (we cry typing that in) or automatically. In other words, first comes the resource file, and then you can proceed with localization.
How about we reverse this workflow a bit and send strings for translation directly from your design tool (like Figma, Sketch, or Adobe XD)? Localization without resource files is a new approach we offer the design and development teams that collaborate on UI localization in Crowdin.
With it, designers working on the prototypes in Adobe XD, Figma, or Sketch send strings for translation with the keys and text segmentation rules.
Because each string has its unique identifier, development teams then can integrate both source and translated content in the codebase effortlessly.
Besides, if the source files in Crowdin will be of other formats than Android XML and Strings, engineers will also be able to launch custom exporters we’ve mentioned earlier and download files in the necessary format. They can use either Crowdin API or crowdin download targets command of the CLI 3.4.0 version and higher.
For designers, the integration between Crowdin and their design tools is a great opportunity to preview translated mockups, customize them if necessary, or notify engineers on the elements that should scale.
Over-the-Air Updates With Translations
To update content within a mobile application, you need to roll out a new version on the App Store or Google Play. The process seems straightforward, and waiting for the app verification doesn’t cause much trouble if the updates happen occasionally. But when you manage a multilingual app with constant updates in 20 languages, for example, rolling new versions each time new translations arrive is not an option.
To make translations available for users much faster, we recommend using Over-the-Air technology. Create a distribution in your Crowdin project and install Crowdin SDK on the mobile app (Android or iOS). Distribution is a CDN vault that mirrors the translated content of your project. You can create separate distributions for different files or one distribution per project.
After you’re done with the settings, each time you’d like to update translations in your app, you can create a release within the required distribution and get translations in front of your users in minutes.
Learn more about Crowdin Over-the-Air Content Delivery for Android and iOS apps.
Context for Translators – the More, the Better
Of course, the quality of translation depends on the proficiency of the translation team, either your in-house or the one you hire. Yet, even the best of the translators might interpret the sources wrongly if no background information is available.
Providing context should not become an overlooked step when you set up a localization project. Crowdin offers you a variety of options on how to give context for translation.
Screenshots With Tagged Strings
In Crowdin, translators work in the online Editor. Along with fields for the source and translated content, there is also a field with the context added from the comments to each string in the codebase.
Besides, if a string was tagged on any of the screenshots you’ve uploaded, the screenshot will be shown right under the source string. Learn more about using screenshots in application localization.
Integration with Appetize.io
You can use the Appetize.io emulator not only to test your app but also to provide context for your translation team. To enable integration, install the Crowdin app for Appetize. It will let translators run your app directly in the Editor and see strings in action. The app will help you take screenshots of the app quickly as well. Applicable for both Android or iOS app localization.
Glossary With Terms
To explain product-specific terms, you can create a project Glossary. You can also get it translated (with the help of the Translate Glossary app, for example).
Once you have glossary terms translated, we also recommend enabling QA check for Consistent Terminology. This way, Crowdin will notify translators every time a term is translated improperly and suggest the preferred variant. Learn more about Glossary.
Real-Time Preview and Screenshots Features of Crowdin SDK
When you set up Crowdin Mobile SDK, you can also configure two additional features – Screenshots and Real-Time Preview.
- To quickly add app screenshots to the Crowdin project, configure the Screenshots feature and get the necessary app version installed on your device. Then open the app, sign in to your Crowdin account, and click through the app interface, taking screenshots where necessary. The images will be automatically added to your Crowdin project with all the strings tagged.
- With the Real-Time Preview feature configured, translators will work on source strings in Crowdin Editor and get the app preview either on the app emulator or their devices. The string in the app will change in real-time as translators start typing in the translation.
Learn more about providing context with Crowdin Mobile SDK.
You Know the Tricks Now
We’ve discussed all the aspects you should consider when you start customizing your app for each target market. To sum up, there are two common misbeliefs to avoid. Assuming that everyone will use your app in English is the first one. And that you can handle localization without technology would be the second.
Crowdin is designed to automate localization, help you release multilingual versions of your app, and meet the expectations of your global users. To get started, register a Crowdin or Crowdin Enterprise account. If you like to learn more best practices and discuss the peculiar workflows you have, book a personal demo with our tech manager.