The custom translation strings feature allows you to translate and customize strings visible to protected app users. You can upload a JSON file containing strings to replace default strings. This feature allows you to specify language and region codes and specify non-American English prompts, or to replace default strings with your organization's preferred terminology. The JSON file must be encoded as UTF-8 to handle non-ASCII characters such as Cyrillic or Hindi. 

These translations appear when the user sets the device to the appropriate language.

Note: On Android, users must restart apps after setting the device language for the change of language to take effect.

Process overview

To add translated strings to an App Customization profile, follow this procedure:

Download the template file provided in the injectable.

Edit the file and make a copy of the default English strings.

Edit the values of the language, region, and strings keys. 

Upload the customized strings file to the App Customization profile.

Details for each of these steps are described below.

Downloading the template file

On the App Customization profile details page:

Under Translation Strings, select Use custom translation strings.

Click Download to download the current translation strings JSON file. 

  • If you are creating a new App Customization profile, this button downloads the default strings file. The name of the default file does not appear, but the file is available for download.
  • If you are editing an existing profile with customized strings, this button downloads the custom file. The filename appears next to the Download button.

Editing the translation strings file

To create a set of strings for a new language, make a copy of the American English section, including the language, region, and strings. Then edit the values in the new section. If you do not expect to need a translation for a string, you can translate it anyway or leave the English string, but do not remove the entry from the strings object. 

To customize the English strings, edit the en-US section. You can use your organization's terminology or customize in other ways, but you must retain all of the entries in the strings object.

JSON file format

Use a JSON file to specify the strings. The translations file includes an array of translation locales, where each locale includes language code, region code, and a strings object with key/value pairs for each string.

Note: The JSON file must use UTF-8 encoding to display non-ASCII characters such as Cyrillic, Greek, and Asian languages.

  "translations": [
     "language": "en",
     "region": "US",
     "strings": {
       "OK_STR" : "OK",
       "CANCEL" : "Cancel",
       "ERROR" : "Error",
       "DONE" : "Done",
     "language" : "es",
     "region" : "US",
     "strings" : {
       "OK_STR" : "Aceptar",
       "CANCEL" : "Cancelar",
       "ERROR" : "Error",
       "DONE" : "Listo",

Uploading the customized file

To upload a customized file, on the App Customization profile details page:

Under Translation Strings, select Use custom translation strings.

Click Choose File and select the custom file.

Click Save changes. The console evaluates the uploaded file. If a section exists for a locale and does not contain entries for all of the expected keys, the console displays a warning.

Resolving missing string entries

If the uploaded JSON file is missing any string key/value pairs, the console displays a notification at the bottom of the App Customization policy page. This warning alerts you to any untranslated strings for specified locales. If you do not supply values for these strings, you also see a warning when applying this policy profile to an app. To resolve this issue:

Download the translation strings file in this profile.

  • Note: The name of the downloaded file is set by the console, based on the profile name, not on what you uploaded. Thus, you can upload the same file to different profiles, and they are stored separately.

Search the downloaded file for the "untranslatedStrings" object within each locale.

Copy the strings from "untranslatedStrings" to "strings", and provide values.

Upload the new translation strings file to the console.

Atlas strings

Certain strings that show up in the mobile user interface are delivered dynamically over the network from the Atlas Gateway. By default, these Atlas (server-side) messages are used, including any customizations made on Atlas, or dynamic strings returned from external servers. Values specified in the App Customization profile (client-side) override the server-side strings, thus changes to strings such as the login-prompt or acceptable-use-policy in the Atlas default authentication group do not appear.

To translate the strings into other languages and override the values that come from Atlas, use the strings within the atlasServerTranslations section of the custom translation strings file. All Atlas server strings are prefixed with "ATLAS_"; replace them by copying the values into the strings object of an existing translation.

Atlas strings only appear in the "untranslatedStrings" list if at least one Atlas string has been customized.