Localizing mobile apps for international audiences
Make your mobile app more accessible for your international audiences by localizing the UI text for specific countries and regions.
For example, uPlus bank plans to open a new company branch in Spain. To ensure that employees can efficiently submit local expenses in their native language, uPlus bank translates the UI labels and messages of their Pega app into Spanish and uploads the compressed localization package to Pega Platform.
- Go to Branding assets templates for Pega Mobile Client and download the simplified assets
.zip
file that matches your version of Pega Mobile Client. - Extract the contents of the
.zip
file. - Open the folder with the extracted files.
- Translate the UI labels and messages:
Choices Actions Translate UI text for Android apps - Open the
android
folder. - Create a copy of the
values-en
folder.The folder contains thestrings.xml
file. Make sure that you copy the folder together with the file. - Rename the folder that you copied by replacing
en
in the folder name with the ISO-639-1 code of the target language.For a list of ISO-639-1 codes, see Library of Congress: Codes for the Representation of Names of Languages. - In the folder that you copied and renamed, open the
strings.xml
file. - Translate the English UI text into the target language.
- After translating the UI text, save the
strings.xml
file. - If you want to include another localization pack, repeat the above steps for each new language.
Translate UI text for iOS apps - Open the
ios
folder. - Create a copy of the
en.lproj
folder.The folder contains thelocalizable.strings
file. Make sure that you copy the folder together with the file. - Rename the folder that you copied by replacing
en
in the folder name with the ISO-639-1 code of the target language.For a list of ISO-639-1 codes, see Library of Congress: Codes for the Representation of Names of Languages. - In the folder that you copied and renamed, open the
localizable.strings
file. - Translate the English UI text into the target language.
- After translating the UI text, save the
localizable.strings
file. - If you want to include another localization pack, repeat the above steps for each new language.
- Open the
- Select the folders that you extracted from the
.zip
file that now contain the localization files, and then compress them into a single.zip
file. - Open your mobile channel:
- In the navigation pane of App Studio, click Channels.
- In the Current channel interfaces section, click the tile that represents a mobile channel for your app.
- On the mobile channel page, on the Layout tab, click Branding.
- In the Branding section, click the Configure advanced branding icon, and then select the Advanced Branding check box.
- In the Upload custom branding file section, click
Choose file, and then select the
.zip
file that contains the localization files. - Confirm your selection by clicking OK.
- Click Save.
Downloading the template localization file
Creating localization files
Uploading the localization package to Pega Platform
Configuring localization for offline-enabled mobile apps
Configure localization in your offline-enabled mobile app to give users a consistent experience regardless of network connection status, and enable them to change languages within the app at run time without losing data.
For example, when surveying individuals who speak different languages, survey takers can easily switch languages by selecting a language option in the language list of the offline-enabled app.By default, when you configure offline localization for your app, the system packages and makes available offline only those field values and paragraphs that the UI directly references. The system also packages field values with parameters.
Auto-generated controls also support offline localization. For more information, see Creating auto-generated custom controls.
- In the header of Dev Studio, click .
- On the Offline configuration tab, in the Configuration template section, click the template that you want to use with your offline-enabled mobile app.
- On the Resources tab, add the locales that you want to
support in offline mode:
- In the Locales section, click Add locale.
- In the dialog box, enter the names of the locales that you want to add, and then click Add.
- In the upper-right corner of the offline configuration template form, click Save.
- Decide how you want users to switch locales at run time, and based on your
choice, add a button, a link, or a drop-down list to your section.For more information, see Adding UI components to a view.
- Configure the following action sets for your control:
For more information about configuring action sets for a control, see Adding action sets to a control.
- In the action set table, click Add an event, and
then based on your choice of control, define the event:
- For a Button or Link control, select Click.
- For a Dropdown control, select Change.
- Click Add an action, and then select the Run script action.
- In the Function name field, enter the
switchLocale function to run the provided
API.For more information, see Enabling case processing in offline-enabled mobile apps.
- In the Parameters table, define a parameter name and value. For example, enter Locale and de_DE.
- Configure the Refresh-Other section action
set.For more information, see Adding action sets to a control.
- Click Submit.
- In the action set table, click Add an event, and
then based on your choice of control, define the event:
- Optional: To package and make available offline field values that are no UI section
directly references, for example, the case status, or to package field values
that are dynamically resolved (through a property reference), add these field
values to the allow list by performing the following actions:
- On the Allow list tab, click Add field values.
- Populate the auto-complete field with the field values that the UI does not directly references but which you want to include in packaging, and then click Add.
- If multiple classes reference a field value, click Add field values with multiple runtime class.
- Populate the Field Value auto-complete field with the field value.
- In the Run time classes list, select the classes that reference the field value, and then click Add.
Debugging techniques in offline localization
Ensure that offline localization of your app works as intended by applying the recommended debugging techniques.
Your application UI is not translated in offline mode
Resolving issues with offline localization
- In Dev Studio, check the
configuration of the field value associated with the untranslated text
to determine whether the field value is dynamic (a property reference),
or static.
- Depending on how the system references the field value, ensure that you
have the correct configuration:
- If the text is retrieved dynamically from a property reference, ensure that the required field values are present in the pyFieldValueWhitelistForOffline HTML rule. For more information about adding dynamically referenced field values to the allow list, see Configuring localization for offline-enabled mobile apps.
- If the field value that is associated with the untranslated text is static, check the section and the field value classes. Ensure that the field value is present in the section class or in the inheritance of the section class.
- If steps 1 and 2 are ineffective, in the console, run the following
script to fetch the localization object, and then verify whether the
required field values are available in the correct class:
- To fetch all the field values,
enter:
pega.offline.clientstorehelper.getLocaleData(localeName, /* success */ function(data) { console.log(data); }, /* failure */ function(error) { console.log("An error has occurred"); } );
- To fetch a single field value,
enter:
pega.clientTools.getLocalizedTextForString(fieldName, FieldValue)
- To fetch a paragraph,
enter:
pega.offline.clientstorehelper.getParagraph(pxInsName, /* success */ function(data) { console.log(data); }, /* failure */ function(error) { console.log("An error has occurred"); } );
- To fetch all the field values,
enter:
Previous topic Testing the translation package Next topic Configuring an accessible UI