INTERNATIONALIZATION & LOCALIZATION HUY T. VU
DEFINITION Internationalization: deploying a computer software internationally Localization: adapting an internationalized software for a specific region by translating into different languages and modifying contents to target the local market ***Problem in software industry: popular apps should be used internationally, but not everyone speaks the same language.
EXAMPLE: THE FIFA WORLD CUP national teams participate in one of the world largest sport events Millions of fans WILL gather in Brazil & billions watching at home Demand for mobile apps: Info, results, venues, analyses… Travels, hotels, restaurant…. Photos, clips…. *** very diverse languages and cultures
HOW TO LOCALIZE RESOURCES? When localizing, there are 2 types of resource Changing resources: String, Drawable, Animation, Audio…. Unchanging resources: Layout Solution: create sub-folders with codes (normally follow ISO standard)
SAMPLE: INTERNATIONAL APP Create an empty app and define strings.xml as in the picture
Make a Japanese version Step: 1.create a sub-folder “values-ja” under folder “res” 2.within that folder, create strings.xml file and prepare texts for 4 different string variables *** ja is ISO code for Japanese, list of language codes can be found here: 1_codes
Use custom locale on emulator
TYPICAL ISSUE #1 NOT all languages are supported on every devices (especially lesser popular languages such as those used by African nations) Need another approach
CHANGE LOCALE DYNAMICALLY STEP 1: for simplicity, create a RadioGroup of languages (this works better with Spinner in Android, but for simplicity, I use RadioGroup)
STEP 2: modify the AndroidManifest.xml file by adding android:configChanges=“locale” to every activity that intends to change locale dynamically
STEP 3: add codes in the activity to change locale and update configuration
TYPICAL ISSUE #2 Both England and the USA are qualified for the World Cup. Both countries use English, but… England Football WC Plaza Fuel … USA Soccer Restroom Mall Gas …
Localization: Make another subfolder specifying Great Britain Assuming the default values are for US-localization Only include the strings that are different res/values/strings.xml res/values-en-rGB/strings.xml
Folder name convention: values-xx-rYY xx is ISO language code (2 letters) r is region (must have) YY is ISO country code (2 letters) Use Locale constructor to interpret the code
People would like to see information about their national team localize “drawable” resource TYPICAL ISSUE #3 For images, it’s a little different, the previous resource must be nullified before setting new resource
TYPICAL ISSUE #4 Date and Time format varies between countries To localize date and time format, add the following codes
DESIGN STANDARDS FOR INTERNATIONALIZATION Names are NOT translatable or localizable Internationalized conventions are used by default (SI units, symbols,…)
WHAT ABOUT THIS? Design’s rule of thumb: ROMANIZATION Texts should be displayed in Romanized form
THANK YOU