Integrate Localazy OTA updates without a single change of your source code. Learn more about why it’s only solution that can localize your app fully and completely on-the-fly.
No changes to the source code 🔗
Localazy is the only solution available to come with this benefit. Our Gradle plugin does all the work for you. It learns about your app structure and uploads your strings. It integrates updated translations to your resource files and injects our Android library automatically.
Except for adding a few lines to your build scripts, you don’t need to change anything in your source code or resource XML files.
The Localazy Gradle plugin never touches your source code and your resource XML files! Everything happens only during the build time on intermediate files. It’s completely safe, and you can turn it off anytime.
Our Gradle plugin is the only way to be sure that your app is fully translated over the air! See below…
Only solution to translate your app fully 🔗
Some other translation platforms offer similar features. It’s usually called Android SDK, and it’s a big lie! They claim that their SDK can localize your app, and it’s simply not true.
Usually, they suggest overriding attachBaseContext method and wrapping the Context object with their SDK. Sometimes, there are some additional steps necessary. There are two big issues about this approach:
- You need to change your source code! Do you really want to do it? What if you don’t have a single BaseActivity for the whole app? Do you want to make the necessary changes in all places? What if you forget to override the method somewhere in your app?
- Whether you change your source code carefully on all the possible places as instructed, you end up with a partially untranslated app that can behave unpredictably. Why? Keep reading…
Localazy OTA updates are the only fully working solution because:
The complete lifecycle 🔗
We take care of everything - uploading your strings, downloading them back, adapting your resources, injecting the Android library and initial translation data. It saves you a lot of time - there is no handling of XML files - and allows us to bring you the features described below.
Adapted resources 🔗
We adapt your resources during the build, and there is always the most recent version of translations as a fallback with no extra effort on your side.
Smart automatic injection 🔗
We automatically inject the library. It means that we make several hundreds of transformations across the whole bytecode of your app, injecting Localazy not only to Activity classes but also to Services, Receivers, Providers, and many other places.
Our injection process is complex and doesn’t consider only attachBaseContext method. It translates your apps fully, including menus, popups, dialogs, preferences, and other parts of your app that other translation platforms entirely ignore.
Product flavors and build types 🔗
We understand your app’s structure and translate your app correctly, including build types and product flavors. And that’s tricky because there are many rules for strings overriding. And Localazy is the only translation platform that can do it with no extra effort on your side.
Libraries and dynamic features 🔗
Localazy can also translate apps with libraries and dynamic features maintaining the correct strings overriding. Our Gradle plugin applies all the necessary transformations to libraries and modules, ensuring that your app is fully localized over the air.
Plurals on all Androids 🔗
We have our own plural system that works on all Android versions. We care and invested our time to bring this solution. Some other platforms use plurals only on Android 24+ because the plural API wasn’t available on earlier versions. Do you really want to sacrifice such critical functionality?
APK and app bundles 🔗
We fully support APK-based apps as well as app bundles and automatically handle deprecated phrases and app versions.
Smart library 🔗
We provide an extensive set of functions that you can use to get more contributors and volunteers in your app.
No unpredictable behavior 🔗
Now, you probably understand why I mentioned the unpredictable behavior. Just imagine that you use product flavors with different strings, which is pretty standard if you build your app for more than just Play Store and in tens of other situations. We have customized strings for Play Store, Amazon Store, Huawei Apps, and Samsung Galaxy Store in our apps.
We could adapt our apps, add tons of IF conditions, and bring all the strings together to the main flavor. But why? Do you really want to change your app for the translation platform? No! The localization platform should translate your app as-is.
As you can see, translating the app on-the-fly is not easy, and changing a few lines of the source code, as other platforms suggest, is not enough. It’s a complex problem, and we solved it from top to bottom.
No dependencies and extensibility 🔗
We love Kotlin here at Localazy, but we wrote our Android library in pure Java with no single dependency. It’s tiny and fast.
We have three different versions - the plain library with no dependencies, the AndroidX version, and a special version for legacy Support libraries. You don’t need to change or migrate your app because of us; you just pick the right library for you.
If there is something our library can’t translate fully, you can extend it with our own code .
And much more… 🔗
There is more to say about how you can configure Gradle plugin to suit your needs and use it for seamless localization of your app. Just try it out on your own!
And all above without a single change of your source code!
We are still not finished…
Optimized translations 🔗
We’ve designed Localazy with OTA updates in mind. It’s not an additional feature to get more money from you. It’s more than just publishing exported translation on Amazon’s S3, which some other translation platforms do.
It’s a pro-active tool that improves the user experience of your app and optimizes the hard work for you and your contributors. We don’t only deliver updated translations, but we also collect anonymous stats and use them for many internal optimizations.
In the realtime, we adapt the order in which phrases are translated by your contributors to maximize their impact. Unless your app is tiny, your contributors may not be able to translate it fully at once. Every single translation counts, and you want to have the most important phrases translated first. Who cares about error messages that your users are unlikely to see unless they run into an improbable error if the main menu of your app is untranslated?
And the same applies to the review process. If you have a spare minute, you want to invest it into making a visible impact. Therefore, in our review process, the phrases don’t come in the random order. You can be sure that one minute of your time is turned into a delightful experience for your app’s users.
Also, the collected stats help us prioritize processes in ShareTM, calculate distribution weight for phrases, understand the audience of your app, and provide meaningful insight.
For app developers, from app developers 🔗
We are app developers too, and we know what it takes to translate your app fully and completely. We struggled with app localization for so long that we decided to build Localazy… for the good of all of us.
We rely on Localazy with our own apps that are used by millions of users. And you can rely on it too!