Introduction to Internationalization (I18n)

  • 2,625 views
Uploaded on

"Introduction to Internationalization (I18n)" by Adam Asnes, President & CEO of Lingoport (lingoport.com), a software internationalization (i18n) tools and consulting company.

"Introduction to Internationalization (I18n)" by Adam Asnes, President & CEO of Lingoport (lingoport.com), a software internationalization (i18n) tools and consulting company.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,625
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
92
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introduction to Internationalization
    Reaching worldwide markets with a single code base
    Presented by: Adam Asnes
    Lingoport, Inc.
  • 2. Agenda
    • Internationalization
    • 3. Key Internationalization (i18n) Concepts
    • 4. Business Cases
    • 5. Approaching Globalization
    • 6. Architecture and Code Review
    • 7. Scanning code for issues with Globalyzer
    • 8. Building a plan
    • 9. Ongoing Processes
    • 10. Questions
  • Internationalization and Localization Fit
    Lingoport - Internationalization
    Development oriented consulting and software
    Adapt products so they are world ready
    Localization
    Translation specific to market needs
    Coordinated management of strings for translation
    Linguistic Testing and more
  • 11. Internationalization (i18n)‏
    • Engineering a product so it can be adapted to target languages and regions efficiently and without requiring subsequent engineering changes to the core product
    • 12. Common abbreviation is i18n (i + 18 letters + n)‏
    • 13. A product must be internationalized before localization can occur
  • Business Case – why it’s important
    Survival
    Global Revenues
    Key business partners
    60% or more of revenues
    Competitiveness
    Strategic Growth
  • 14. I18n Cost/Benefit
    • One-time Higher Initial Cost
    • 15. I18n as part of development process
    • 16. Lower Overall Cost as End Result
    • 17. Future releases incur only localization costs
  • New Globalization Requirement
  • 18. I18n Needs – Biz vs. Tech
    Our Software must be in Japanese, French, German, Chinese, and Spanish by November
    Engineering thinks about…
    Multi-tiered web application?
    Complex Interface?
    Database components?
    Embedded Strings?
    Locale aware application?
    Can it manage multiple data formats?
    I18n testing plan?
    Tactics to get it done
  • 19. Sample Internationalization Technical Issues
  • 20. Example: Hard-Coded English Text
    1 million lines of source code
    Typically Found:
    At least 40,000 Embedded Strings which cannot be efficiently translated
    String orderStatus = “Your order has been processed. A confirmation e-mail will be sent to you shortly.”;
  • 21. 11
    String Concatenation
    Avoid Concatenation
    Combining two or more text strings at runtime to form a single string
    What order do these appear at runtime?
    Are they switched around?
    Do they combine with other strings that aren’t here?
    fileActions = {1} file(s)
    successfulAction = successfully {2}
    locationAction = to {3}
  • 22. Character Sets/Encodings
    • Character set
    • 23. A set of characters used to support a given language or series of languages
    • 24. Character encoding
    • 25. A set of code points that defines numeric values for each character within a character set (coded character set)‏
  • Character Encoding
    • The Binary Letter A
    The Letter:
    A
    Binary Encoding Examples
    ASCII: 1000001 (7-bit)‏
    ISO Latin 1: 01000001 (single-byte)‏
    UTF-16: 00000000 01000001 (double-byte)‏
  • 26. Character Sets and Encoding
    • This is broken:
  • Internationalization Challenge
    Software Data Path - it’s not just the display
    Display
    Input
    Transform
    Store
    Retrieve
    Transform
  • 27. I18n Architectural Challenge – what’s not in the code
    Marketing Requirements
    Locale behavior
    Database
    Character
    encoding
    support
    Application Code
    e.g. Java, C++, VB
    U/I
    e.g. JSP,
    ASP, ASPX
    3rd Party Products
    Business Logic
    Platforms, Browser Support Requirements
  • 28. I18n Design Considerations Checklist*
  • Locale
    • Language + territory [ + variant ]
    • 50. en_US = English (US)‏
    • 51. en_GB = English (UK)‏
    • 52. Combines language and territorial conventions for spelling, formatting, etc.
    • 53. en_US = "color," mm/dd/yyyy, $1,234.56
    • 54. en_GB = "colour," dd/mm/yyyy, £1.234,56
    • 55. A more accurate representation than language
  • Locale
    Short Date
    Long Date
    Number
    Currency
    English, US
    05/06/02
    May 6, 2002
    1,234.56
    $1,234.56
    English, UK
    06/05/02
    06 May 2002
    1.234,56
    £1.234,56
    French, France
    06/05/02
    6 mai 2002
    1 234,56
    1 234,56 €
    Japanese
    02/05/06
    2002年5月6日
    1,234.56
    ¥1,234.56
    Locale-Specific Formatting Examples
  • 56. Sorting/Collation
    • Which list is correct?
    Ångström Helsinki
    Helsinki Zürich
    Österreich Ångström
    Zürich Österreich
  • 57. New Internationalization Project!
    • What to do?
    • 58. Large amount of code
    • 59. Change in requirements
    • 60. Change in architecture
    • 61. Change in development practices
    • 62. Change in testing requirements
  • I18n Process
  • Code Review – what’s in the code that needs to be found and changed
    • What to Identify
    • 72. Embedded strings
    • 73. Unsafe methods/functions
    • 74. Image references
    • 75. Unsafe programming constructs (ex: regular expressions)‏
    • 76. How to Identify
    • 77. “Brute force” iterations
    • 78. Engineers search for and resolve known issues
    • 79. Globalyzer-assisted review
    • 80. An I18n code analysis tool is employed to examine source code for a large range of potential and known issues
    • 81. Issues can be identified and resolved in a more systematic fashion
  • Globalyzer Server and Clients
    Server
    Command Line
    Client
  • 82. Example Project Plan
    Combine:
    • 1 Part Architecture
    • 83. 1 Part Code Metrics
    • 84. 1 Part Experience
  • Let’s Look at Some Code
  • 85. I18n Testing
    • PseudoJudo Utility in Globalyzer
    • 86. Pseudo-localization
    • 87. A “pseudo-locale” is created and implemented with “pseudo-translated” content
    • 88. Before pseudo-translation:
    UserNameLabel=Username
    SomeMessage=The quick brown fox jumps over the lazy dog.
    • After pseudo-translation: 
    UserNameLabel=縞Ùsèérnâàæmê史
    SomeMessage=嚮Thëëëqúûîìckbröööwnfòöõxjüùümpsòvèèrthêêlãâzÿdõøg燭.
    • Tests for:
    • 89. String-length expansion issues
    • 90. Extended character display/corruption issues
  • Keeping Software Worldready
  • 91. I18n As An Ongoing Process
    • Pervasive influence on entire organization
    • 92. Paradigm shift: not US-centric!
    • 93. I18n Coding Standards
    • 94. Quality Assurance
    • 95. I18n software lifecycle tools: Globalyzer
    • 96. Avoid code forks
    • 97. New features with international focus to launch in ALL locales
    • 98. Relationship with Localization partner
  • I18n As An Ongoing Process
    • Globalyzer Command Line
    • 99. Automated i18n checking
    • 100. Create i18n Standards
    • 101. Training
  • Contact Information
    31
    Questions?
    Contact
    Lingoport
    http://lingoport.com
    info@lingoport.com
    +1 303 444 8020
    Based in Boulder, Colorado
    Visit lingoport.com for more articles, newsletters and whitepapers
    Try Globalyzer – sign up at http://globalyzer.com