software localization: what you need to know to effectively go global
TRANSCRIPT
SOFTWARE LOCALIZATION: WHAT YOU NEED TO KNOW TO EFFECTIVELY GO GLOBAL
Preparing for Software Localization
Defining Localization
Localization: the process of adapting a product or content to a specific locale or market.
• Translation is one of several localization elements• Give product the feeling it was created specifically
for a target market
Elements of Localization
Adapt graphics to target markets
Modify content to suit consumption habits of other markets
Adapt design and layout to properly display translated text
Convert elements to local requirements (i.e. currency, units of measure)
Use proper local formats for dates, addresses and phone numbers
Address local regulations and legal requirement
Why Localize?
Increase Global Sales
Increase Revenue
Increase Market Share
Customer Experience
Customer Loyalty
6 Steps to Establishing Presence in Your Organization
1. Consider your global culture2. Bring localization to the forefront 3. Develop with localization in mind4. Think outside the development group5. Connect to existing projects6. Source in-country reviewers
Budgeting for Localization
• Determine who pays for localization– Corporate versus regions
• Determine cost, considering:– Translation– Testing– Engineering– Project Management
What can you do with what you have?
Defining Internationalization
Internationalization: makes localization possible by ensuring your architecture and code are global-ready.
• Prerequisite vital to translation process• Deliver a higher return on investment• Define training and standard operating procedures
Avoid concatenation.
Design with language in mind.
Build a library of internationalized
objects.
12 Best Practices Before Starting Software Localization
Use pseudo-localization.
Plan for at least 30% text
expansion.
Keep text short.
Don’t use acronyms.
Don’t reuse the same text in
different context.
12 Best Practices Before Starting Software Localization
Build a library of internationalized
objects.
Don’t hardcode text or
punctuation.
Make sure to use UTF-8 encoding.
If in doubt, consult with a Localization
Expert.
12 Best Practices Before Starting Software Localization
Why Design for Localization?
• Prevent errors, such as:– Replication of source bugs– Avoidable translation
mistakes– Common localization issues
1 LOCALIZABILITY BUG
……N languages later
English
Japanese
French
PolishGerm
an
Prepare for Text Expansion
Have a nice day!
English 16 characters
Ich wünsche Ihnen einen schönen Tag!
German 36 characters (125% length increase)
Prepare for Text Expansion
Possible Solutions: Text Reuse• Don’t use the same string in different
contexts• Write every instance of the string• Specify the content of each in the
string ID– <string name=”CategoryAll”>ALL</string>– <string name=”BuyingFormatAll”>ALL</string>
Mapping out the Workflows
• Content flows determined by the team
• Identify content locations• Where can automation be
inserted– No cut and paste– Full import export function at a
minimum• Plan for testing
Test Readiness
• What and how much testing is required
• Test Plans and Test Cases• Pinpoint gaps in your team• Identify your:
– Hardware– Localized software– Localized test beds
• What is the plan for updates
Release Strategy
SIMSHIP
DELAY
SUPPORT MATERIALS
UPDATES
Executing an Agile Software Localization Program
Becoming Part of the Agile Team
• Mature program localization is a component of the team
• English is just another language• When to translate?
– Is code complete?– Sprints identified?– UI complete?
Typical Software Localization Process
• Initially you need– Glossary and Style Guides– Translation Memories– Financials – Automation
• Schedule Builds– Which go to translation?– Which build gets tested
An Example Process Flow
ExportFunction
TranslationProcess
Review
Import ImplementChanges
Testing Release Repeat
Technology and Tools
• Consider the following when executing your localization program:– Translation memory systems,
portals, and or TMS – Purchasing tools vs managed
services• Asses current tools, and plans for
the foreseeable future
Creating Automation
• Identify all systems– Connectors, APIs, CLI– Determine UI needed– Automate in-context review
Automation Goal: smallest amount of possible human intervention
Simple Automated Round Trip
Build Tree
Translation
API
Flexibility and Localization
Add Languages
Ensure Variable Capacity
Document Everything
Add Products
How and When to Test
Internationalization Validation – Preparation
• Internationalization testing– Install English onto localized environment– Install pseudo translated files into build
• Test automation of connectors and API’s • Compile a bug database
Pseudo LocalizationPseudo localization is a localizability testing technique where localizable text is replaced with dummy, automatically generated “translations”.
Replace characters with special characters
ŘéƤļäçê
Add special characters/ encodings required in target locales
ŘéƤļäçêݜݤ
Expand strings according to rules to approximate length differences in translations
ŘéƤļäçêݜݤ!!!!!!
Include character markers at beginning and end of strings to indicate string boundaries
[ŘéƤļäçêݜݤ!!!!!!]
Example: Visual Studio
Testing Coverage and LanguageA Coverage Matrix
25Languages
3Hardware
2Third
Parties
4Browsers
Possible number of configurations
What type of testing is needed on these
configurations?
• Functional• Localization• Linguistic• Compatibility• Updates
Language types
• Latin• Multibyte• Bidirectional• Cyrillic
Determine Test Threshold Points (ROI)
The point of diminishing returnsCost vs Quality
First Pass Second Pass Third Pass Release
Cost Quality
Insource vs Outsource Testing
Recommended Hybrid Approach
Current set in house set up
Hardware Headcount
Thank You