FAQ Frequently Asked Questions


There are no special prerequisites for using Applanga but you need to have your App prepared for translation for the given Platform.

  • On Apple devices your strings need to be in a .strings file in order to be automatically uploaded to the Applanga Dashboard. In order to have your dynamic texts localized, you have to use NSLocalizedString in your source code. Additionally you need to have Base Localization enabled for .storyboard and .nib files to have their static texts localized. At runtime, all static and dynamic texts will be automatically synchronized with the Dashboard.

  • On Android devices your strings need to be in a string resource .xml file in the /res/values/ folder in order to be automatically uploaded to the Applanga Dashboard. To have your dynamic texts localized, you have to use getString in your source code. At runtime, all dynamic and static texts in your layout files will be automatically synchronized with the Dashboard.
Literally minutes.

There are some tweaks for the different platforms we support but in general there are two parts: the SDK and the Applanga Settings File. The first can be placed inside your app with a single line of code, while the latter needs to be downloaded and copied into a folder inside your project.
The Applanga Settings File combines two features:

  • For one, it is part of the regular integration and stores a unique identifier and some configurations to reduce the manual integration effort.

  • Additionally, all translations on the Dashboard are saved into the Applanga Settings File.
    Always include the latest version of the file within the build that you submit to the app stores to ensure that the translated content is available. If your users have insufficient internet connection for live updates, the SDK will revert to the translation inside the Applanga Settings File on the device.
The app uses locally cached translations, either from the last successful request to Applanga, from the Applanga Settings File or your actual string file within the app, so your users won’t recognize the difference.
There is a series of fallbacks in place and even if the SDKs can’t connect.

When the app is initially started, the Applanga Settings File is parsed and all contained strings are put into a cache database, which in turn gets updated on every successful request to the Applanga backend. If, for example, the app doesn't have network, it still has all the cached strings from the Applanga Settings File. When a string is not found, neither through an update request nor in the Applanga Settings File, the SDK falls back to check if the string is in the strings files from the app itself.

Your latest changes will be always available for the SDK to fetch. We use the Amazon content delivery network (CDN) to distribute your translation through data centers all over the world and therefore provide high reliability, availability and redundancy.
We implemented a series of systems that ensure service availability and so far experienced no outages. If you need a guaranteed uptime, that’s part of Enterprise-level plans only. Please get in touch.
We do not store any private data. All our traffic is encrypted and we use an additional hmac algorithm to make sure the data is not being tampered with.
Up to 10 minutes. That is the period of time in which the content delivery network (CDN) in front of our servers updates itself.
There are different ways how you can translate your app with Applanga's help:

  • You can simply translate it yourself, together with your team or even with remote, external translators. Simply add them to your Team in the Dashboard - the number of accounts is unlimited.

  • You can use the integrated machine translation tool (but we recommend you only use it for testing purposes or if you don’t worry about translation quality).

  • To get the very best quality of translation we recommend using our professional translation services. We will implement an order menu into the dashboard soon. In the meantime, we will handle your orders personally. Get in touch if you are interested in knowing more.
As a manager, admin or owner, you can add a description or even a screenshot to every entry, so that the translators are given greater awareness as to what the string-to-be-translated refers.
Yes! Our internal team of professional translators provide high quality translations and thoroughly review your content multiple times to ensure satisfaction. For more info, see the Translation Services section below or reach out to us.
Yes! The support for websites and an API are part of the Enterprise-level plans. Please get in touch.

Technical Issues & Platform Features

Make sure your app is set into Draft or Debug mode. If that’s the case, try refreshing the page - it may take up to 30 seconds for strings to be sent from the app. If you’re still running into problems, find more troubleshooting information in our Integration Guides.
This kind of IDs are generated by iOS and refer to the ObjectID of the Storyboard Element. Unfortunately, Apple doesn't allow to rename them.
It’s possible that the getString (Android)/ NSlocalizedString (iOS) method is called on an already localized string. The method normally expects an ID, but if it’s presented with a string, it will create an empty ID with the string as the ID name. Make sure that getString/NSlocalizedString is used correctly in the place where the described behavior occurs.
Yes, but you need at least one .string file in your project for every language. The file itself can stay empty.
Yes, but you need at least one .string file in your project for every language. The file itself can stay empty.
No. Applanga and Swift play nicely together.
Please contact us directly about integrating with other platforms. We can support tvOS, PHP, AngularJS or Javascript as well, for example.
You will need to create two separate apps - one Android and one iOS. The string IDs will be different, but if both platforms have the same source language text in an entry, we can match and import the translations from our side accordingly - you won’t have to do the same translation twice.
If you don’t want an entry translated in your app, you can leave it empty and lock it using the lock symbol in the upper right-hand corner in the detail view or as an Action to be applied in the list view.

When locked, a string will then default to the Base Language and if there is no Base value either, to whatever value the operating system returns for that key. On Android you have the option to mark strings with the 'translatable="false"' attribute. Those strings won't be uploaded to the dashboard.
No need to delete strings! Simply lock your strings using the locking functionality and they can’t be edited anymore. There is a filter function to hide them for a cleaner general view afterwards. You can only delete strings in the Base Language but If you delete them from the Dashboard and they are still present in the app, they will be reuploaded.
Simply remove the current target value of the ID in question and save it with an empty value. Next time you start the upload, the dashboard will replace empty values with values found in the SDK.
Nope. If you foresee character limits within your app’s elements, such as buttons or menu items, there is a description field for each entry that can come in handy during the translation process to avoid overruns.
Yes! Please follow the Integration Guides for iOS or Android.
In order to make sure your app’s offline users receive the latest content available, we recommend you update the Applanga Settings File whenever significant changes to your app are committed in Applanga.
It should only a take a few minutes to download the latest Applanga Settings File from the Dashboard and insert the file into your project. We are working on a solution to automatically pull the latest version into your app every time you make a new build.
Advanced versioning options are currently in development; however, in the meantime here are a couple options to go about supporting different localized versions of your app:

  • Support outdated IDs - Because some of your users might still use an older version of your app, you can just leave them in the Dashboard. This way, Applanga will maintain these string IDs, and they will not be deleted automatically. Newly added string IDs will be found, synced and added regularly to the same app on the Dashboard. They must be translated so that the localized versions containing these string IDs will have the localized content.

  • Support different versions of the same IDs - If you have multiple versions for a single string ID, you should copy the current version of your app into a new app in the Dashboard and then edit and manage the string IDs in that app for the new version. Entries associated with the newly versioned string IDs can then be edited without affecting the original version of your app. Make sure to include the new Applanga Settings File into the newer version of your app.
If the design of your app changes between each version, make changes to the original text in the strings after copying the original strings into a new app created for the new version.
The content of the target text field represents what is currently live inside your app. If it that content is edited, the changes will be pushed to the users to be available the next time the app starts. The second method to push translations is by approving the current Draft for a given entry. If approved, the Draft field content will move to the Target field.
The Draft field is used for translation in an unapproved state. It is not visible to your users yet, but already can already be revised, tested and QAed in the Dashboard or directly inside the app with Applanga Draft Mode.

Since it is not possible to perform the four-finger gesture on the simulator screen, we use other methods to start the Draft mode.

On iOS: while the app is running, hold Alt and click on the screen. Hold for four seconds.

On Android: while the app is running, click on the screen and hold for four seconds

Yes! We provide a range of team and user management feature that you can use to ensure that only certain persons can approve translations to go live inside your app. Learn about the different Roles here.
Using Roles, admins and owners are able to assign the Translator role to other users that is unable to alter the source or target text.
The language shown inside the the app (through the Applanga SDK) is determined by the phone language. If you want to see another language, you will need to go to your phone’s settings and switch languages. If there is no translation available for the language selected, the Applanga SDK will always show the Base Language (most commonly English) as a fallback. See more here.
The SDK will fall back to the Base Language and, if that is not available either, to the original string that is present in the app data locally.
There are basically two ways to go about fixing this: 1) try to shorten the translations to match the length of the source entry or 2) use a smaller font size for particular languages.

NOTE: A good way of averting risk here is to use the description field associated with each text entry before translation. Insert character limits and/or screenshots when applicable.
iOS has two language lists: iPhone languages & preferred languages. Some languages, including Latvian, are only present in the preferred languages list.

Yes! We do support regional dialects.
If you want your app to be translated in Portugal (PT) as well as Brasil (PT-BR) you should add both languages to the Applanga dashboard.
If an app requests a dialect (e.g. PT-BR) the SDK will first check if there are translations in that language-dialect (PT-BR) but if a string is empty or the dialect does not exist it will fall back to the superordinated language (PT). If the string is empty there as well it will fall back to the base language.

If you only create and translate the regional dialect (eg. PT-BR) and not the original language (eg. PT), only users with their phone set to the region will get the translation. Everybody else that is requesting the original language or another regional dialect will get the Base Language localization.

Translation Services

Not at all! If you have your own translators (internal or external), you can create an account for them and add them to your app’s Team with the role “Translator.”
Yes. Applanga allows you to add unlimited number of resources to your projects, so you can create and add administrators, managers and translators for each of your app Teams.
Sure, no problem. Just remember to add target keywords for search as well, so your target audience can find your app in other languages as well.
Our team of professional translators are handselected based on their translator qualifications, previous experience in app localization, tools certifications and having passed a translation test for vetting their abilities.
Typically our translators turn projects around within two days. However, if you are under the gun, translations can be expedited.
Our professional translators have been working in the field for at least five years with additional experience in app localization. They hold extended degrees and/or certifications in translation services and only translate into their native languages.
If you would prefer to have our translators test your app in their native language, that is no problem. Just let us know.
Applanga’s translation services offer various degrees of translation support starting from 20c per word.
No. We use industry standard CAT (computer-assisted translation) tools to develop translation memories for each project to ensure the best possible quality and price. Just let us know and we merge translations into other apps of yours.

Billing & Payments

Yes, of course. You can test and evaluate all features of Applanga for free.
See Applanga’s full pricing structure, click here.
MAU stands for [M]onthly [A]ctive [U]sers and counts how many individuals use your app per month. These individuals are not recounted if they use the app multiple times.
Upgraded features are immediately available, and your account will be prorated for the current month. Downgrade changes will be enacted the following month.
When you're logged into your account, you can change your subscription in the Billing Menu.
We'll get in touch before that happens and, with your consent, move you onto a higher plan.
Paypal and credit card by default but feel free to contact us for other payment options.
Yes, we offer invoicing for Enterprise-level plans. Please get in touch with us.
Please send an email with your questions to sales@applanga.com