UI Text
Most UI text is stored in a text localization file. The SDK references each UI text by a unique identifier (the identifier will often contain a name that helps determine the context in which the corresponding text is displayed, for example, PAYMENTS_ONBOARDING_PAGE1_HEADER
) and displays the corresponding text found in the text localization file.
A complete list of keys and their matching strings is found in client/default/strings/master/en-US.json
.
However, to change the text for any key in a text localization file, you must override it in institutions/mxmobile/strings/master/en-US.json
by adding the key (if it doesn’t already exist) and setting its value to your desired text.
Refer to each “UI Text” section in the features and views reference for a more complete listing of which text localization file keys correspond to which section of the user interface.
If you’d like to change the text for a particular entry in the text localization file:
- Open
institutions/mxmobile/strings/master/en-US.json
. - Find the key you’d like to change, or add it if it doesn’t exist.
- Set its value to your desired text.
- Run
./generate
to regenerateen-US.json
.
Here’s an example of adding and overriding the USERNAME
key:
institutions/mxmobile/strings/master/en-US.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"StringTable" :
{
"Config" :
{
"version": 2,
"last update": "0.0.0",
"package": "MoneyMobileX"
},
"Literal":
{
"APP_NAME" : "MX Bank",
"INSTITUTION_NAME" : "MX Bank",
"CLIENT_WEBSITE" : "Open an Account"
"USERNAME" : "Your Username"
}
}
}
FAQs
You can customize the FAQs section by changing the questions, answers, and by adding new sections.
The faqs.json
file defines the structure and content of the FAQs view found within the app (assuming the FAQs view is enabled or otherwise routable). The faqs_list
section is a list of sections under which related questions (and their respective answers) are listed.
Each value of header_title
and each entry in faqs
refers to a localization key found in the localization files (or their respective translation files).
client/default/config/faqs.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"faqs_list": [
{
"header_title": "General info",
"faqs": [
"App cost",
"Sign up",
"Login",
"Features"
]
},
{
"header_title": "Security",
"faqs": [
"Security measures",
"Financial info",
"Mobile device",
"Malware"
]
}
]
}
Questions and their respective answers are split into two sections (“FAQ question” & “FAQ answer”) in the localization file.
When editing or adding text for section titles or questions and answers, you may use a placeholder (for example, {APP_NAME}
) to substitute any other localized text with the text for that key name (for example, “APP_NAME”). The placeholder must be enclosed in curly braces.
client/default/strings/master/en-US.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
"FAQ question": {
"file": "src/screens/help/faq_presenter.cpp",
"Table": {
"App cost": "Is {APP_NAME} free?",
"Sign up": "Do I have to sign up for online banking to use {APP_NAME}?",
"Login": "Do I use the same User ID and Password for {APP_NAME} that I use for online banking?",
"Features": "What can I do with {APP_NAME}?",
"Security measures": "What security measures help protect my financial information?",
"Financial info": "How can I be sure that my financial information is safe if my mobile device is lost or stolen?",
"Mobile device": "Does save any information on my mobile device?",
"Malware": "Should I worry about malware or viruses on my mobile device?"
}
},
"FAQ answer": {
"file": "src/screens/help/faq_presenter.cpp",
"Table": {
"App cost": "Yes, {APP_NAME} is free. There are no fees or charges — though you should check with your wireless service provider to see if their usage costs apply.",
"Sign up": "Yes, you must sign up for online banking before using {APP_NAME}. Simply go to our website, and sign up for online banking. Once you sign in you’ll see a link to {APP_NAME}.",
"Login": "For security purposes, {APP_NAME} requires that you link your device directly with your online banking account. That way only you have access to your information. Here’s how to link your account: 1. Sign in to online banking 2. Click {APP_NAME} 3. Click Settings 4. Click Mobile Devices 5. Click Generate Access Code 6. Return to the {APP_NAME} app and enter the access code. Once you’ve done this, you shouldn’t need to do it again. Now the software knows that you’re the owner of your {APP_NAME} account.",
"Features": "{APP_NAME} allows you to view all of your financial accounts in one location, including those with other financial institutions. Check account balances, recent transactions and even review spending and budgets. Every transaction is automatically categorized so you can easily monitor spending. Bubble Budgets help you understand the health of your spending instantly.",
"Security measures": "We use industry accepted standards, protocols and precautions to protect your Personally Identifiable Information from loss, misuse, or unauthorized access. We maintain physical, electronic, and procedural safeguards, including using firewall barriers, encryption techniques, authentication procedures, and 256-Bit SSL (secure socket layer) encryption.",
"Financial info": "We allow you to create a special passcode for this app. To set this up, go to Settings > App Lock and follow the prompt. Once you create this passcode, no one but you will be able to access your financial information. If your device is stolen, you can delete the device from your account within {APP_NAME} in online banking.",
"Mobile device": "For quick access to data, some data is stored on your device. Data on your device is encrypted and can be further protected by setting a Passcode on the app as well as a Passcode on your device. Unlinking or logging out of the app removes data from the device and requires a full sync the next time you link your device.",
"Malware": "Malware and viruses can affect any computer system, even mobile devices. To protect yourself, always be sure to keep your device up to date and only install apps from well-known sources such as the Apple App Store or Google Play."
}
...
To add a new FAQ:
- Copy
client/default/config/faqs.json
toinstitutions/mxmobile/config/faqs.json
. - Add a key to an existing section or create a new section and add your key there.
- Open
institutions/mxmobile/strings/master/en-US.json
. Copy theFAQ header
,FAQ question
, andFAQ answer
objects fromclient/default/strings/master/en-US.json
. - If you added a new section, search for the
FAQ header
object. Add your key for this new section in itsTable
object. - Search for the
FAQ question
object. Add your key in itsTable
object and enter the text for your question. - Search for the
FAQ answer
object. Add your key in itsTable
object and enter the text for your matching answer. - Run
./generate
.
Localize Text
When a user changes the language on their mobile device, the app will use the respective translation file.
Translation files in the client
folder:
- English (Canada) —
client/default/strings/translated/en-CA.json
- French (Canada) —
client/default/strings/translated/fr-CA.json
- Spanish (United States) —
client/default/strings/translated/es-US.json
Translation files in the institutions
folder:
- English (Canada) —
institutions/mxmobile/strings/translated/en-CA.json
- French (Canada) —
institutions/mxmobile/strings/translated/fr-CA.json
- Spanish (United States) —
institutions/mxmobile/strings/translated/es-US.json
The default translation files in the client
folder contains translations for some of the most frequently used UI text. Compare the keys to client/default/strings/master/en-US.json
and ensure all strings are there. If they are not, add them. If you do not, you risk your UI displaying any non-defined strings in English.
The translation files in the institutions
folder is where you enter specific keys and their strings to override the default text that’s displayed. This involves copying the contents from the translation files in the client
folder.
OS Modals (iOS)
Some text is displayed by the respective operating system (Android or iOS):
- When the mobile app requests the user’s permission to complete a task, such as accessing contacts or requesting biometric access.
- For Android shortcuts or iOS quick actions.
To change or localize this text for iOS, you must change it in proj.apple/Localizations/<.lproj_file>/InfoPlist.strings
.