are you ready for a global audience
TRANSCRIPT
Are You Ready For A Global Audience?Understanding the process and importance of internationalizationAre You Ready For A Global Audience?Understanding the process and importance of internationalizationUnderstanding the process and importance of internationalizationUnderstanding the process and importance of internationalization
Presented by Jeff KnorrModerated by Kevin Perry
October 22, 2008
What Is Internationalization?What Is Internationalization?
Internationalization + Localization = Globalization
Globalization (G11n): The total effort required to prepare your product for the rest of the world. Internationalization and localization are essential to any successful software globalization plan.
Internationalization (I18n): Designing, building, and/or re-engineering products so they can be easily adapted into target languages and regions without requiring subsequent engineering changes to the core application.
Localization (L10n): Adaptation of a product to a particular language & culture. Translation & content adaptation required to meet cultural needs.
Internationalization?You keep using that word.
I do not think it meanswhat you think it means. *
* The Princess Bride, 20th Century Fox, 1987
Software Globalization (Breaking It Down)Software Globalization (Breaking It Down)
L10NL10N
G11NG11NG11N
I18N
Should I Consider Internationalization?Should I Consider Internationalization?
You should if any of these statements apply to you…
“I h“I have never gone global with my product
before.”
“I have a product with language-specific functionality that needs to
be modified for new markets.”
“I want to address l10n support/efficiency issues “I want to support
“I do not have enough
experienced in past efforts.” locales beyond Western Europe.”
“I am developing new product and want to do it
right the 1st time!”
I do not have enough resources internally to
internationalize my product.” right the 1st time!p
Why Internationalize?Why Internationalize?
Internationalization Helps Your Bottom LineImproving the end-user’s experience will sell products.
Allows simultaneous release of your product in all targeted markets.
No software development needed for localized versions
Saves time and money in localization In some cases localization is not technically possible w/out i18n
Allows streamlining of localization; minimizing manual tasks
Maintenance pertains to all language versions instantlyp g g y
Move to additional markets is relatively easy
Internationalization Return on Investment (ROI)Internationalization Return on Investment (ROI)
Overall Costs of Classic Development vs. Internationalized Development
• Low-level Software
Development/Bug-fixing
• New Locale• New Locale Feature
Development
• UI Re-engineering
• Localization Effort
• Testing Cycles
Classic Development InternationalizedDevelopment
Goals of InternationalizationGoals of Internationalization
Increase return on investment
Improve time-to-marketp
Reduce internal costs
Create higher quality products customized to global end-users
Become self-sufficient in developing internationalized products from the start
Successfully & efficiently localize into global marketsy y gwithout external internationalization support
Pitfalls of Not InternationalizingPitfalls of Not Internationalizing
Poor quality localized product
Potentially impossible to support more complex languages y p pp p g g(Asian & Bi-directional)
Increased costs and duration for L10n effort
Increased involvement of product developers in L10n effortsIncreased involvement of product developers in L10n efforts
Simultaneous release in multiple languages not likely
Product maintenance challengesg
InternationalizationInternationalization
Assessing support for international markets- Base functionality y
features in product that are locale-specific?features to be externalized or packaged?
Currency date/time formats address formats graphics colors numeric- Currency, date/time formats, address formats, graphics, colors, numeric formats
must be internationalized or customizablei d t b l tf h l b l f tmany programming or database platforms have global features
England: 12,345.67Germany: 12.345,67Switzerland: 12’345,67Swiss money: 12’345.67Swiss money: 12 345.67France: 12 345,67
Types of Internationalization Support IssuesTypes of Internationalization Support Issues
String Externalization (resourcing infrastructure)
Font SupportGUI ModificationsCharacter handling g(Far East characters, Arabic)- Multiple-Byte Support- Bi-Directional Support- Unicode Migration
Locale/Language-specific features- Input methods- Input methods - Sorting- Searching
B i l- Business rules
Types of Internationalization Support IssuesTypes of Internationalization Support Issues
Database modifications to support & store international data
Data Presentation / User interfaceData Presentation / User interface
Translation Process Support (Localization Readiness)
Custom Development to support international data handling, storage, & retrieval
Visualizing the Software Globalization ProcessVisualizing the Software Globalization Process
“Cl i ” P (I18 P llI18 PTranslation
L10 PP d t Gl b li d!“Classic” Process (no i18n)
The typical development scenario is one where an English version
product is developed with little or
I18n ProcessWith Internationalized
Development (i.e. i18n of an already developed product), the core product is generalized so
that it can utilize OS level
HelloI18n ProcessOnce the core application is internationalized, all locale-
specific functionality is isolated to locale specific resources that can be modified without affecting the
こんにちはL10n
Engineering
L10n ProcessResource files (UI strings) are
translated, UI is “resized”, images are re-designed, and localized software versions are tested.
Product Globalized!Internationalize ONCE
Localize MANY
no consideration for international design & support. After an
English version is released, separate versions are re-
developed for each language and market by local distributors or
that it can utilize OS-level international capabilities, and
allow for the easy adaptation of locale-specific areas of the
software (i.e. strings, graphics, and locale-specific functions).
gcore functional code. The UI
strings and locale-sensitive code elements are handed off to L10n
in the form of resource files. Localization
日本語
Oi Bonjourysales offices. Hello
Internationalization
Bonjour
OiこんにちはHello
Core Product
Original Product
Standard I18n ProcessStandard I18n Process
Engage developers in i18n process
If no internal i18n expertise considerexpertise, consider partnering with experts
Ensure knowledge gained duringgained during process is leveraged to forward development & ptesting efforts
I18n Process - Phase 1I18n Process - Phase 1
Phase 1: I18n Audit- High level code & architecture
analysis; Product-needs assessment
- Locate all I18n issues with product, where they exist, & determine best approach for resolving them
- Define all i18n tasks/effort requiredDefine all i18n tasks/effort required to Enable product (code mods)
- Devise Implementation plan- Start scoping L10n effort- Assess ROI
I18n Process - Phase 2I18n Process - Phase 2
Phase 2: I18n Implementation- Address all issues identified during
Phase 1Establish comprehensive set of i18n- Establish comprehensive set of i18n requirements
- Proto-type i18n solutions before making global changesR i d t d f- Re-engineer product code for ease of L10n and global support
- Train development staff on i18n strategy, best-practices, and techniquestechniques
- Document all code mods; leverage to new product development
- Generate L10n Kit
I18n Process - Phase 3I18n Process - Phase 3
Phase 3: I18n Testing- Ensure intl functionality (incl. L10n
features) conform to internal & industry specs y p
- Develop international test approach
- Generate i18n test plans & test cases (leveraging from current QA strategy)strategy)
- Pseudo-localize test data
- Execute tests of international issues/functionality
- Resolve any/all i18n defects identified
Variations on Internationalization EnablementVariations on Internationalization Enablement
I18n is not an All-or-Nothing proposition!Multiple ways to phase into i18np y p
- Implement according to language/locale priority- Implement priority components/modules first (front-end) others later (backend/admin)- Implement according to functional priority (i.e. intl data handling, l10n-readiness, etc.)
Strategy contingent on current state of product- Stage of development (design, beta, release, etc.)- Product lifespan (legacy, migration plans, etc.)- In-country demands & requirements
Why Some Globalization Efforts FailWhy Some Globalization Efforts Fail
Internationalization issues are not considered part of the initial development cycle & specification -- it’s an “afterthought”
International requirements do not take local user-requirements into account
Development team is not familiar with international development issues, or how to deal with them
QA team is not familiar with international testing issues, and products aren’t tested on localized platforms & devices
Time required for the internationalization & localization process are under-Time required for the internationalization & localization process are under-estimated
Allowing non-qualified in-country distributors to internationalize, localize, and/or sell the productand/or sell the product
I18n Implementation ScenariosI18n Implementation Scenarios
Team up with I18n Partner to ready products for i18n along side internal development and QA teams from anal sis thro gh testing
Partnershipanalysis through testing
Hire outside i18n experts to fully implement product i18n with knowledge transfer on backend; internal staff Outsource gfocuses on new product development
Engage i18n experts to conduct i18n analysis & offer d d lti /t i i ll i l t ti &Due Diligence as-needed consulting/training; all implementation &
testing executed internallyDue Diligence
Case Examples- Partnership ScenarioCase Examples- Partnership Scenario
PartnershipConducted Phase 1 (product audits) on all productsMarket demand & ROI analysis showed no need for L10n I18n plan to support international data handling only (no L10n-readiness required)Trained majority of development & QA on i18n bestTrained majority of development & QA on i18n best practicesParticipated in Phase 2 (implementation) and Phase 3 (testing) while freezing new product development
Case Example- Outsource ScenarioCase Example- Outsource Scenario
OutsourceConducted Phase 1 (product audit)Fully outsourced Phase 2 (code implementation) in parallel ith for ard de elopmentparallel with forward developmentReceived handoff & documentation to support i18n-related product maintenanceMerged i18n modifications to new code branch & ginternationalized diff internally
Case Example- Due Diligence ScenarioCase Example- Due Diligence Scenario
Due DiligenceI18n expert conducted Phase 1 (product audit) and devised implementation strategyAll i l t ti & t ti ( h 1 & 2)All implementation & testing (phases 1 & 2) executed entirely using internal resources
Support Concurrent Product Development & I18nSupport Concurrent Product Development & I18n
Train development team & finalize requirements (minimize new i18n defects)No requirement to freeze codeBranch code & schedule merge/code review milestonesShare source mgmt system with i18n implementation teamg y pAgile, RAD & other iterative development methodologies support i18n well
In SummaryIn Summary
Internationalization is a precursor to Localization that generalizes a product so it can handle multiple languages & cultural conventions w/o need for re-design
Internationalization addresses several support issues
Internationalization lowers cost, increases efficiency, & improves quality of Localization
Internationalization costs are a fraction of initial English-only product development
Every internationalization plan can be customized to meet specific market, industry, and company requirements