View
451
Download
0
Category
Preview:
Citation preview
Brenda InmanSt. Jude MedicalManager, Localization
Cultural Awareness, Localization, and Impact on Content Creation of User Information Destined for Overseas Markets
How St. Jude Medical has built localization into content creation
Best Practices•Facilitate localization•Reduce cost and effort •Reduce potential mistakes•Increase clarity for end-users•Optimize time to market for localized product
Examples•Cultural and linguistic differences that may not be immediately obvious
Best Practices
• Plan for localization, do not rush• Write code in a localization-friendly way• Perform "pseudo localization" to identify
hard coded strings• Never hardcode date, time, numeral
separators, or currency formats• More things to keep in mind
Plan for localization, do not rush• Localization scheduling and scoping
– Translation & review– Initial testing– Regression testing
Be prepared for multiple rounds of translation and testing. Often translated strings exceed character limits and must introduce abbreviations that aren’t necessarily common in that language.
Best Practices
• Plan for localization, do not rush• Write code in a localization-friendly way• Perform "pseudo localization" to identify
hard coded strings• Never hardcode date, time, numeral
separators, or currency formats• More things to keep in mind
Localization-friendly encoding Use Unicode … why?
Unicode provides a unique number for every character, no matter what platform, no matter what program, no matter what language
•Unicode supports most of the world’s scripts •UTF-8 encoding•www.unicode.org - search “Internationalization and the Case for Unicode”
Separate strings from code• More efficient
– Developing a new international version of the application only involves creating a new language resource file because each version has the same code
• Reduce cost & effort– Manage one set of code rather than a
separate set of code for each language
• Reduce risk– By placing all relevant string resources in one file, you ensure a
more efficient localization process and reduce the chance of leaving some strings un-localized
Source code & string resource files
Best Practices
• Plan for localization, do not rush• Write code in a localization-friendly way• Perform "pseudo localization" to identify
hard coded strings• Never hardcode date, time, numeral
separators, or currency formats• More things to keep in mind
Pseudo localization
If English text shows up in your pseudo localized UI, it means that the string ishard coded
Pseudo localization simulates translation by replacing text with test characters while preserving non-translatable code and simulating expansion and contraction
“Forgotten” strings
Best Practices
• Plan for localization, do not rush• Write code in a localization-friendly way• Perform "pseudo localization" to identify
hard coded strings• Never hard code date, time, numeral
separators, or currency formats• More things to keep in mind
Date formatEnglish (US) Wednesday, October 12, 2014
English (UK) Wednesday 12th October 2014
Spanish (Spain) miércoles, 12 de octubre de 2014
Japanese
German mittwoch, 12. Oktober 2014
Arabic 2014 أكتوبر، 12األربعاء،
English (US) 10/12/14
English (UK) 12/10/14
Spanish (Spain) 12/10/14
Japanese 2014/10/12
2014 年 10 月 12 日(水曜日)
• Date formats vary from language to language and if they are hard-coded they cannot be localized.
• They will appear wrong and confusing to the end-user
Time format• 24-hour clock • Colon, comma, or
period as separator• GMT (Greenwich Mean
Time) + or – • Some time zones use
30 or 45 minute offsets*• Avoid time references
to USA time (3 pm PST)
* India, Sri Lanka, Afghanistan, and Australia 30 minutes; Nepal and areas of New Zealand 45 minutes
Numeral separatorsStyle Country
1,234,567.89 China, Ireland, Israel, Japan, Korea, Malaysia, Mexico, New Zealand, Philippines, Singapore, Taiwan, Thailand, United Kingdom, United States
1234567,89
Albania, Belgium, Bosnia, Brazil, Bulgaria, Czech Republic, Denmark, Estonia, Finland, France, French Canada, Germany, Greece, Hungary, Italy, Latin Europe, Lithuania, Netherlands (non-currency numbers), Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden
1234567.89 Australia, English Canada, China
1.234.567,89 Brazil, Denmark, Germany, Greece, Indonesia, Italy, Netherlands (currency), Portugal, Romania, Slovenia
12,34,567.89 India*
1'234'567.89 Switzerland
* The Indian numbering system is used throughout India, Pakistan, Bangladesh, Nepal, and Sri Lanka. It is based on the Vedic numbering system in which numbers over 9,999 are written in two-digit groups (or a mix of two- and three-digit groups) rather than the three-digit groups used in most other parts of the world.
Numeral shape & correspondenceNumbers may be shaped differently or not have a one-to-one correspondence to other languages or locales
٠١٢٣٤٥٦٧٨٩Arabic
Japanese
CurrencyIn some languages the currency symbol is displayed before the numbers and in other languages is displayed after the numbers or even in between the number and the decimal
• 2€50 - France• $123.45 - Canadian English• 123.45$ - Canadian French• 1.000 TL or 1.000 - Turkish Lira₺
Hard coded font names• Do not hard code font names
– “Arial” font face name on an Arabic machineis “Arial, 178”
• Do not assume that a font is installed– The user might delete or uninstall fonts
• Do not assume a selected font supports the desired script– Miriam (a Hebrew font)
can’t be used to represent the Japanese hiragana script
Font sizes• Do not hard code
the font size used• Make this variable
customizable according to the script to be displayed
Font size
Best Practices
• Plan for localization, do not rush• Write code in a localization-friendly way• Perform "pseudo localization" to identify
hard coded strings• Never hardcode date, time, numeral
separators, or currency formats• More things to keep in mind
More things to keep in mind• Leave plenty of space for text expansion in
other languages• Avoid acronyms, concatenations, substitutions,
and reuse of single strings• Do not use (s) for plural • Beware of forced line breaks in text strings• Use caution when using symbols and
punctuation
Text expansionAvoid designing software so that the Englishstrings “just fit”•Some languages expand by 30%, some contract by 30%•Strings <7 characters can expand 100-300%
Use a dynamic UI to avoid issues with expansion and contraction
Avoid• Acronyms
– DOB = Date of Birth, common acronym in the US but not necessarily globally recognized
– Device S/N = “N. di serie del dispositivo” (Italian)
Avoid
1. The patient data folders 2. The patient data files
A. will be deleted one after the other
1. Las carpetas de datos del paciente
2. Los archivos de datos del paciente
A. séran eliminadas una después de la otra (if concatenated with 1), OR séran eliminados uno después del otro (if concatenated with 2)Use complete strings in resource files
The patient data folders will be deleted one after the otherThe patient data files
• Concatenations
Concatenated strings and strings that are used in multiple contexts are likely to have grammar and gender agreement issues
Avoid• Reuse of single-word strings
Use complete strings in resource files
Avoid• Substitutions
1. La stampante è accesa2. Il dispositivo è acceso
%s has %d minutes remaining to complete %n testsJohn has 5 minutes remaining to complete 10 tests
Use short descriptors rather than full sentences---User: %s Minutes remaining: %d Tests remaining: %n
จอหน์ม ี5 นาทีเพื่อใหก้ารทดสอบ 10
The %s is on1. Printer2. Device
Do not use (s) for plural• The red button turns the device(s) on• Il pulsante rosso accende il dispositivo• Il pulsante rosso accende i dispositivi
• The owner(s) must fill in the warranty form• El propietario debe rellenar el formulario de garantía• Los propietarios deberán rellenar el formulario de
garantía
• You have %s unread message(s)• Hai 1 messaggio non letto• Hai 5 messaggi non letti
Forced line breaks• With text expansion and different sentence
word order rules the line breaks might need the breaks in different locations – Chinese, Japanese, Korean, and Thai follow special rules
for line breaks and don’t necessarily indicate the distinction between words by using spaces. The Thai language doesn’t even use punctuation.
Insert USB flash drive:\nfrom sensor package or\nwith file from web site\nNOTE: Will take a few\n seconds to detect USB\nflash drive.
Inserire la chiavetta USB:\n dalla confezione del sensore o\n con il file dal sito web\nNOTA: Ci vorranno alcuni\n secondi per rilevare la chiavetta USB.
Use caution• Symbols
– Checkmark (), number sign/pound/hash (#):In Sweden and other countries, the checkmark indicates “wrong” (väärin) and “R” (rätt) indicates “correct”In Japan, Korea, and Taiwan “ ” is used◯
• Punctuation– Question mark (?)
In Greek “ ; ”In Arabic “ ؟ ”
• Emphasis– Bold can “muddy” complex Asian characters, usually replaced
with a larger size character or different font– Italic almost never used with Asian scripts as it destroys the
aesthetics of the characters, usually replaced with a larger size character or different font
Summary• Plan ahead for localization• Use Unicode UTF-8 encoding• Use a dynamic UI• Separate text strings from code• Be aware of cultural differences (date, time,
currency, numbers)• Avoid substitutions, concatenations, single-string
reuse, forced line breaks• Use caution with symbols and punctuation
Recommended