190 likes | 327 Views
Internationalization & localization. Huy T. vu. DEFINITION. Internationalization : deploying a computer software internationally
E N D
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 2014 • 32 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 639-1 standard)
Sample: international app Create an empty app and define strings.xml as in the picture
Make a Japanese version Step: create a sub-folder “values-ja” under folder “res” within that folder, create strings.xml file and prepare texts for 4 different string variables *** ja is ISO 639-1 code for Japanese, list of language codes can be found here: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
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 639-1 language code (2 letters) • r is region (must have) • YY is ISO 3166-1 country code (2 letters) • Use Locale constructor to interpret the code
TYPICAL ISSUE #3 • People would like to see information about their national team localize “drawable” resource 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