Your SlideShare is downloading. ×
0
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to Internationalization (I18n)

2,861

Published 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.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,861
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
106
Comments
0
Likes
3
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<br />Reaching worldwide markets with a single code base<br />Presented by: Adam Asnes<br />Lingoport, Inc.<br />
  • 2. Agenda<br /><ul><li>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</li></li></ul><li>Internationalization and Localization Fit<br />Lingoport - Internationalization<br />Development oriented consulting and software<br />Adapt products so they are world ready<br />Localization<br />Translation specific to market needs<br />Coordinated management of strings for translation<br />Linguistic Testing and more<br />
  • 11. Internationalization (i18n)‏<br /><ul><li>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</li></li></ul><li>Business Case – why it’s important<br />Survival<br />Global Revenues<br />Key business partners<br />60% or more of revenues<br />Competitiveness<br />Strategic Growth<br />
  • 14. I18n Cost/Benefit<br /><ul><li>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</li></li></ul><li>New Globalization Requirement<br />
  • 18. I18n Needs – Biz vs. Tech<br />Our Software must be in Japanese, French, German, Chinese, and Spanish by November<br />Engineering thinks about…<br />Multi-tiered web application?<br />Complex Interface?<br />Database components?<br />Embedded Strings?<br />Locale aware application?<br />Can it manage multiple data formats?<br />I18n testing plan?<br />Tactics to get it done<br />
  • 19. Sample Internationalization Technical Issues<br />
  • 20. Example: Hard-Coded English Text<br />1 million lines of source code<br />Typically Found: <br /> At least 40,000 Embedded Strings which cannot be efficiently translated<br />String orderStatus = “Your order has been processed. A confirmation e-mail will be sent to you shortly.”;<br />
  • 21. 11<br />String Concatenation<br />Avoid Concatenation<br />Combining two or more text strings at runtime to form a single string<br />What order do these appear at runtime?<br />Are they switched around? <br />Do they combine with other strings that aren’t here?<br />fileActions = {1} file(s)<br />successfulAction = successfully {2}<br />locationAction = to {3}<br />
  • 22. Character Sets/Encodings<br /><ul><li>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)‏</li></li></ul><li>Character Encoding<br /><ul><li>The Binary Letter A</li></ul>The Letter:<br />A<br />Binary Encoding Examples<br />ASCII: 1000001 (7-bit)‏<br />ISO Latin 1: 01000001 (single-byte)‏<br />UTF-16: 00000000 01000001 (double-byte)‏<br />
  • 26. Character Sets and Encoding<br /><ul><li>This is broken:</li></li></ul><li>Internationalization Challenge<br />Software Data Path - it’s not just the display<br />Display<br />Input<br /> Transform<br />Store<br />Retrieve<br />Transform <br />
  • 27. I18n Architectural Challenge – what’s not in the code<br />Marketing Requirements<br />Locale behavior<br />Database<br />Character<br /> encoding <br />support<br />Application Code<br />e.g. Java, C++, VB<br />U/I<br />e.g. JSP,<br />ASP, ASPX<br />3rd Party Products<br />Business Logic<br />Platforms, Browser Support Requirements<br />
  • 28. I18n Design Considerations Checklist*<br /><ul><li>Locale implementation (determination, tracking)‏
  • 29. Character encodings
  • 30. Strings
  • 31. Externalization
  • 32. Concatenation
  • 33. Display/Layout
  • 34. Date/time handling
  • 35. Number handling
  • 36. Currency handling
  • 37. Sorting
  • 38. Searching
  • 39. Encoding conversions
  • 40. Locale-specific functions
  • 41. Address formats
  • 42. Telephone formats
  • 43. Page layout
  • 44. Fonts and attributes
  • 45. Images, icons, colors
  • 46. Bi-directional support?
  • 47. Reporting, workflow
  • 48. Database enabling
  • 49. Multi-byte enabling</li></li></ul><li>Locale<br /><ul><li>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 = &quot;color,&quot; mm/dd/yyyy, $1,234.56
  • 54. en_GB = &quot;colour,&quot; dd/mm/yyyy, £1.234,56
  • 55. A more accurate representation than language</li></li></ul><li>Locale<br />Short Date<br />Long Date<br />Number<br />Currency<br />English, US<br />05/06/02<br />May 6, 2002<br />1,234.56<br />$1,234.56<br />English, UK<br />06/05/02<br />06 May 2002<br />1.234,56<br />£1.234,56<br />French, France<br />06/05/02<br />6 mai 2002<br />1 234,56<br />1 234,56 €<br />Japanese<br />02/05/06<br />2002年5月6日<br />1,234.56<br />¥1,234.56<br />Locale-Specific Formatting Examples<br />
  • 56. Sorting/Collation<br /><ul><li>Which list is correct?</li></ul>Ångström Helsinki<br />Helsinki Zürich<br />Österreich Ångström<br />Zürich Österreich<br />
  • 57. New Internationalization Project!<br /><ul><li>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</li></li></ul><li>I18n Process<br /><ul><li>Planning
  • 63. Market Requirements Analysis
  • 64. Architectural Requirements Analysis
  • 65. Code Review
  • 66. I18n Design
  • 67. I18n Implementation
  • 68. Testing
  • 69. And beyond…
  • 70. Localization
  • 71. Support</li></li></ul><li>Code Review – what’s in the code that needs to be found and changed<br /><ul><li>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</li></li></ul><li>Globalyzer Server and Clients<br />Server<br />Command Line<br />Client<br />
  • 82. Example Project Plan<br />Combine:<br /><ul><li>1 Part Architecture
  • 83. 1 Part Code Metrics
  • 84. 1 Part Experience</li></li></ul><li>Let’s Look at Some Code<br />
  • 85. I18n Testing<br /><ul><li>PseudoJudo Utility in Globalyzer
  • 86. Pseudo-localization
  • 87. A “pseudo-locale” is created and implemented with “pseudo-translated” content
  • 88. Before pseudo-translation:</li></ul>UserNameLabel=Username<br />SomeMessage=The quick brown fox jumps over the lazy dog.<br /><ul><li>After pseudo-translation: </li></ul>UserNameLabel=縞Ùsèérnâàæmê史<br />SomeMessage=嚮Thëëëqúûîìckbröööwnfòöõxjüùümpsòvèèrthêêlãâzÿdõøg燭.<br /><ul><li>Tests for:
  • 89. String-length expansion issues
  • 90. Extended character display/corruption issues</li></li></ul><li>Keeping Software Worldready<br />
  • 91. I18n As An Ongoing Process<br /><ul><li>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</li></li></ul><li>I18n As An Ongoing Process<br /><ul><li>Globalyzer Command Line
  • 99. Automated i18n checking
  • 100. Create i18n Standards
  • 101. Training</li></li></ul><li>Contact Information<br />31<br />Questions?<br />Contact<br />Lingoport<br />http://lingoport.com<br />info@lingoport.com<br />+1 303 444 8020<br />Based in Boulder, Colorado<br />Visit lingoport.com for more articles, newsletters and whitepapers<br />Try Globalyzer – sign up at http://globalyzer.com<br />

×