Webinar: Software & Mobile App Localization Presented by: Jon Ritzdorf March 22, 2012
s2 Webinar Tips Minimize control panel To ask questions use Questions area
Slide 2 s2 Only use this slide if we're using GTM sengelsen, 3/19/2012
Presenter Jon Ritzdorf Globalization Architect
Agenda > Understanding Internationalization Common Challenges & Solutions Global Readiness Testing > Localization Process Preparation Translation/Review Testing > Checklist >Q & A
UNDERSTANDING INTERNATIONALIZATION
Illustrating Internationalization We color everything with our cultural norms Internationalization (i18n): Priming the walls to accept any color English becomes just another language
Internationalization > Focused on enabling your software to support global markets without engineering changes to the core application each time you add a market!
Two Core Enablements 1.Language 2.Locale
Language Pitfalls Strings & Display Input & Output Language Collation & Sorting Search > The most critical of all issues > Results in user abandonment of software
Strings: Externalization > Ideally, software strings are all externalized in a resource format Content in resource file separate from code Shared code Content in language X Content in language Y Content in language Z greetings= Hello. inquiry = How are you? farewell = Goodbye. greetings= Olá. inquiry = Como você está? farewell = Tchau. greetings= 你 好 inquiry = 你 好 嗎? farewell = 再 見 messages = ResourceBundle.getBundle(currentLocale); System.out.println(messages.getString("greetings")); System.out.println(messages.getString("inquiry")); System.out.println(messages.getString("farewell"));
Display: Expansion Browse Close Durchsuchen Schließen 20-50% > Give ample whitespace for UI controls (20-50%+ vs. English)
Display: Fonts & Corruption > Ouch! It was supposed to be Korean No font support Corrupted
Input: Alphabetic Languages European Korean
Input: East Asian Input Method Editors (IME) An interpreter between your typed output and the input that is entered into the system to point to to stab to insert to hold up, to offer 指 す to shine on to color, to pour into
Input: Support > Do all your input fields accept natural keyboard input for your desired language(s)?
Four Solutions for Language 1. Use interface fonts that support multiple languages 2. Use Unicode throughout 3. Flexible UI layouts or provide length limitations 4. Test for real language input
Locale Pitfalls Dates, Time & Calendars Personal Data Conventions Locale Number & Currency Conventions Icons/Graphics > High annoyance factor > Will be frustrating or offensive to the user, but it is still possible to use the software
Dates 03/01/12 USA: March 1, 2012 France: January 3, 2012 Japan: January 12, 2003 Taiwan (Political): January 12, 1914
Calendars > First day of the week? Sunday Americas East / SE Asia Monday Most of Europe Saturday Middle East
Times, Numbers & Currencies 12-hr. or 24-hr. Unit or currency conversion? Comma, period or space?
Personal Data: Names > Easy to fit a name into a compartmentalized data structure of 2 or 3 separate parts
Personal Data: Names China & Japan 2-5 characters, cannot be broken up, might have English and/or romanized name too 李 振 藩 (Lee Jun-fan) 本 田 宗 一 郎 (Honda Sōichirō) Bruce Lee Hungary last name first, no such thing as middle names Kovács Júlia Family name Given name Malaysia & Indonesia Anything goes, even given names with no family name Fam Khiuk Yen Finy Wirawan Suharto Megawati Soekarnoputri
Four Solutions for Locale 1. Know target languages and locales before development Français 中 文 2. Identify culturally specific areas in your app SSN: 3. Rely on existing APIs for date/time/number support 4. Get familiar with the conventions of the target locales
Global Readiness Testing Test the language and locale support of your software before going too far along INTERNATIONALIZATION Global Readiness Testing locale & languageneutral support LOCALIZATION Cosmetic Testing Linguistic Testing cosmetic UI checks; locale-specific functional checks In-context language verification within runtime UI
Global-Readiness Testing Looking for the ability of software to: Adapt to user locale preferences in target market(s) Adapt to user language preferences for intended market(s) Accept, parse and output language data for intended market(s)
LOCALIZATION PROCESS
Illustrating Localization Adding local color to our primed walls Localization (l10n): From the blank wall you create Chinese, French, Turkish English! Remember, English is just another language!
Localization > After internationalization > Focused on adapting your software to support local markets > Creating a look and feel appropriate for a specific market
Localization: In Three Steps 1 Plan Deliverables 2 Translate/ Review Cultural Assessment 3 Test Setup File Formats Resources Build Release & Update Schedules Language Assets Cosmetic & Linguistic QA
1. Planning Deliverables What needs to accompany the software? Release notes, EULA, ReadMe, Help system, Wiki, Documentation, Quick Guide, Packaging? Local requirements? Required by law that software/firmware sold in the target market be accompanied by {x}?
1. Planning File Formats Software strings are ideally delivered in a resource file specific to the platform Platform (Programming/Scripting Languages) Microsoft - Win32 (Visual C++, VB 6) Microsoft -.NET (C#, VB.NET, ASP.NET) Java (Java/JSP) Open-Source (Python/Tcl/awk/Perl/PHP) Ruby on Rails Resource.rc.resx.properties.po.yml DB Databases.csv,.xml
1. Planning Release Schedule Delayed Release English released 1 month French, German and Italian started French, German and Italian released Staggered/Consecutive Release English released French finalized and released 1 week 1 week German finalized and released 1 week Italian finalized and released Simultaneous Release Simship French, German and Italian released with the English
1. Planning Release Schedule English schedule = international? Cyclical ( Waterfall Dev.) Ex: two releases per year Rolling ( Agile Dev) Ex: {x} updates per year, every 2 weeks or so Sporadic/Random ( Ad hoc Dev.) Ex: on request from your customers
2. Translation/Review Culture Cultural considerations? Review UI images/icons esp. for Mobile! Does the icon make sense outside of the USA? Cultural, political or religious interpretation?
2. Translation/Review Resources Who will translate & review the content? A language vendor Internal employees Former employees Trusted end-users Resellers Combination
2. Translation/Review Assets Glossaries? Style Guides? Is this a gadget, doohickey, thingamajig or contraption? Formal: Proceed Casual: Next Intimate: Rock On! What register does your international audience use?
2. Translation/Review Assets Recyclability of translations for updates and future product releases? Translation Memory Terminology Databases
3. Testing Setup Platform, OS, Browser: Localized versions? Hardware and firmware?
3. Testing Builds Builds and versions can get complicated very quickly COMPILE Localized Resource file Localized Binary Build Tree = C#.NET
3. Testing Cosmetic & Linguistic QA The UI of software must be checked in context per language to catch any bugs INTERNATIONALIZATION Global Readiness Testing locale & languageneutral support LOCALIZATION Cosmetic Testing Linguistic Testing cosmetic UI checks; locale-specific functional checks In-context language verification within runtime UI
Going Global Checklist Pre-handoff Test pass(es) for potential internationalization issues completed beforehand All software strings externalized to resource formats Clear on what is to be sent for translation Clear on language & QA stakeholders
Going Global Checklist Handoff Include only what is relevant for translation Demo version of the English app for reference Special Instructions (as needed) Examples: String length limits Build instructions
Going Global Checklist Testing Set up? Platforms, OSes, browsers, localizations? Who does what? Scope? language-focused test script user test cases Bug tracking/logging?
Conclusion 1. Know your markets and their respective languages and cultural conventions 2. Internationalization 1 st, Localization 2 nd 3. Make sure you have defined everyone s role in the overall process (i.e., who does what?)
QUESTIONS
Resources Top 10 Software Localization Tips http://www.acclaro.com/software-localization-tips Top 10 Mobile App Localization Tips http://www.acclaro.com/mobile-application-software-localization Top 10 Software Globalization Testing Tips http://www.acclaro.com/software-globalization-testing-tips Software Localization Blog Posts http://www.acclaro.com/translation-localization-blog-category/software Software/Mobile Apps Websites Documentation Marketing Multimedia Jon Ritzdorf Globalization Architect jritzdorf@acclaro.com 914-433-4908 Based in Irvington, New York