Internationalization & localization

Preview:

DESCRIPTION

Internationalization & localization. Huy T. vu. DEFINITION. Internationalization : deploying a computer software internationally - PowerPoint PPT Presentation

Citation preview

INTERNATIONALIZATION&

LOCALIZATIONHUY 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: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 639-1 code for Japanese, list of language codes can be found here:http://en.wikipedia.org/wiki/List_of_ISO_639-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 #2Both 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

• 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

Recommended