Internationalization • The process of designing a service so that it can potentially be adapted to various languages and region without engineering changes. a.k.a. i18n
Localization • The process of adapting internationalized service for a specific language or region by adding locale specific components or text. a.k.a. l10n
Localized version was released 2 months later What’s the difference between the original version and the localized version? " Released on November 2014 # Released on January 2015
Each country has different rules https://support.google.com/googleplay/answer/6209544?hl=en Content Rating in Google Play • North & South America • Europe & Middle East • Germany • Australia (Games only) • Brazil • South Korea • Other countries
These movie posters are for the same movie. The poster designed in Japan has much more information. A closed-room mystery made by Quentin Trantino Who will be able to survive? 8 ruffians, all of them are liar This movie should be an Academy Award winning
Opportunities and Challenges • Language • Religion • History • Industry • Legal issues • Climate • Infrastructure • … Big opportunities and big challenges
Localize your app • LTR, RTL • Locale • Format • Performance • APK size • Traffic • … Only in the field of Android development, there are many things to consider • Writing system • Character • Encoding • Font • Text size • Grammer • Text length
How to support RTL The cost of supporting RTL was not so high than I expected • layout_marginLeft => layout_marginStart • layout_marginRight => layout_marginEnd • layout_alignParentLeft => layout_alignParentStart • layout_alignParentRight => layout_alignParentEnd • … android:supportsRtl=“true” … >
Locale • A set of parameters that defines a user language and country. • It is used to identify user’s environment. Identifying the user environment is important to provide optimized content. Locale.getDefault()
Language != Country Spanish is spoken widely. We have 4 translations only for Spanish. en-US American English en-GB British English es-ES Spanish Spanish es-419 Latin American Spanish pt-PT Portuguese in Portugal pt-BR Portuguese in Brazil zh-CN Simplified Chinese zh-TW Traditional Chinese
Format We should use formatters. Don’t write it by hand, it couldn’t make sense in some counties. US English French German Spanish Italian Japanese Time hh:mm:ss am/pm (12- hour clock) hh:mm:ss (24-hour clock) hh:mm:ss (24-hour clock) hh:mm:ss (24-hour clock) hh:mm:ss (24-hour clock) hh:mm:ss (24-hour clock) Decimal Separator period (.) comma (,) comma (,) comma (,) comma (,) period (.) Thousand Separator comma (,) space ( ) space ( ) or period (.) space ( ) space ( ) or period (.) comma (,) Number Example 12,345.67 12 345,67 12 345,67 or 12.345,67 12 345,67 12 345,67 or 12.345,67 12,345.67 Currency $12,345.67 12 345,67¢ 12 345,67¢ 12 345,67¢ ¢12.345,67 ¥12,345 Ordinal 1st 2nd 3rd … 1er 2e 3e … or 1re 2e 3e … … 1o 2o 3o … or 1a 2a 3a … 1o 2o 3o … or 1a 2a 3a … 1ͭ 2ͭ 3ͭ …
How many problems can you find? MARY + “ added ” + 7 + “ person to his list” Should be “her” Plurals Number could be changed Female / Male Don’t concatenate string
“Premium Service” • Cookpad Premium • Cookpad Prime • Cookpad Elite • Cookpad Deluxe • Cookpad Extra • Cookpad Select • Cookpad First Class • … “Premium” could give negative impression. But in Spanish, it’s a familiar word.
Unified logging layer for mobile apps Puree guarantees that logs are sent correctly even if the device is not connected • Buffering • Filtering • Batching • Retrying • Pluggable