Be sure that strings are translated #️⃣

Usually, when you didn’t plan to translate your app from the start, you may end up externalizing strings to XML resources later as you decide to make your app available in more languages.

This can be a source of many problems, and some strings may be left in the code or XML layouts. And Localazy can’t translate strings that are not obtained by the localization mechanism.

Verify the integration with Localazy prefix #️⃣

Android imposes several limitations to OTA updates, and so Localazy uses many different mechanisms to translate your app on-the-fly.

It’s always a good idea to test whether the integrated Localazy library is able to translate the whole app correctly. Our Gradle plugin comes with an option called addPrefix that adds [LL] prefix to all strings that go through our OTA mechanism.

With this option enabled, the app looks like:

Enabled addPrefix option

From the first sight, you can see whether everything is processed correctly or not.

Check custom views #️⃣

As mentioned in the previous chapter, OTA updates are not easy on Android, and custom views may need extra care on your side.

We provide the implementation for all views, menus, preferences, popups, etc. available in Android, AndroidX, and in the Support libraries. Also, all custom views that extend those or are compounded from those are covered too. It means that 99% of all apps are translated automatically with Localazy.

If it happens that your app uses a custom view that is not fully supported by Localazy, you can easily write our own custom view transformer.

If you find some missing pieces, let us know and we add support for it.

Automatic vs. manual publishing #️⃣

By default, automatic publishing of changes is enabled for your app. When a translation is added, updated, or reviewed, your app is scheduled for publishing, and in about 15 to 30 minutes, changes are processed and made available through our update servers.

This is perfect when your app is in production. If you have trusted translators or reviewers that help you, their work automatically makes your app better even if you are not around.

However, when testing the integration of Localazy, you may instead use manual publishing. It allows you to control the exact moment when the new update is available.

Just go to Localazy, open your app, navigate to Settings, and disable automatic publishing.

Disable automatic publishing

From that moment on, the option to publish changes is available above the list of languages in Translations. There are three different states:

There are unpublished changes

Image for unpublished changes

Localazy is processing the latest changes

Image for publishing

All changes are published

Image for published

If the state doesn’t change automatically, try to reload the page.

Bypass caching with the Localazy Developer app #️⃣

The Localazy Android library uses an internal cache mechanism which may not be desired when testing translations.

1. Download Localazy Developer from Play Store to your testing device.

2. Start the Localazy Developer app. It’s very simple and just show a few lines of instructions and log.

The Localazy Developer app is simple but powerful

3. Start your app that integrates the Localazy Android library. It’s detected by the Localazy Developer app. If the detection is not successful, force stop your app and start it again.

The app is detected by Localazy Developer app

4. From the notification bar, you can force your app to update strings from our servers.

Force update of strings of your app

5. The last log message is displayed in the notification, and more log messages are available in the Localazy Developer app.

Log messages from Localazy Developer app

The Localazy Developer app is also a great way how to test LocalazyListener and @StringLoaded annotation.

If you have any idea how to improve our tools, we would love to hear about it.