Introduction to Internationalization (I18n)
Upcoming SlideShare
Loading in...5
×
 

Introduction to Internationalization (I18n)

on

  • 3,427 views

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

Statistics

Views

Total Views
3,427
Views on SlideShare
3,415
Embed Views
12

Actions

Likes
2
Downloads
90
Comments
0

1 Embed 12

http://www.slideshare.net 12

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introduction to Internationalization (I18n) Introduction to Internationalization (I18n) Presentation Transcript

  • Introduction to Internationalization
    Reaching worldwide markets with a single code base
    Presented by: Adam Asnes
    Lingoport, Inc.
  • Agenda
    • Internationalization
    • Key Internationalization (i18n) Concepts
    • Business Cases
    • Approaching Globalization
    • Architecture and Code Review
    • Scanning code for issues with Globalyzer
    • Building a plan
    • Ongoing Processes
    • 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
  • 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
    • Common abbreviation is i18n (i + 18 letters + n)‏
    • 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
  • I18n Cost/Benefit
    • One-time Higher Initial Cost
    • I18n as part of development process
    • Lower Overall Cost as End Result
    • Future releases incur only localization costs
  • New Globalization Requirement
  • 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
  • Sample Internationalization Technical Issues
  • 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.”;
  • 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}
  • Character Sets/Encodings
    • Character set
    • A set of characters used to support a given language or series of languages
    • Character encoding
    • 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)‏
  • Character Sets and Encoding
    • This is broken:
  • Internationalization Challenge
    Software Data Path - it’s not just the display
    Display
    Input
    Transform
    Store
    Retrieve
    Transform
  • 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
  • I18n Design Considerations Checklist*
    • Locale implementation (determination, tracking)‏
    • Character encodings
    • Strings
    • Externalization
    • Concatenation
    • Display/Layout
    • Date/time handling
    • Number handling
    • Currency handling
    • Sorting
    • Searching
    • Encoding conversions
    • Locale-specific functions
    • Address formats
    • Telephone formats
    • Page layout
    • Fonts and attributes
    • Images, icons, colors
    • Bi-directional support?
    • Reporting, workflow
    • Database enabling
    • Multi-byte enabling
  • Locale
    • Language + territory [ + variant ]
    • en_US = English (US)‏
    • en_GB = English (UK)‏
    • Combines language and territorial conventions for spelling, formatting, etc.
    • en_US = "color," mm/dd/yyyy, $1,234.56
    • en_GB = "colour," dd/mm/yyyy, £1.234,56
    • 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
  • Sorting/Collation
    • Which list is correct?
    Ångström Helsinki
    Helsinki Zürich
    Österreich Ångström
    Zürich Österreich
  • New Internationalization Project!
    • What to do?
    • Large amount of code
    • Change in requirements
    • Change in architecture
    • Change in development practices
    • Change in testing requirements
  • I18n Process
    • Planning
    • Market Requirements Analysis
    • Architectural Requirements Analysis
    • Code Review
    • I18n Design
    • I18n Implementation
    • Testing
    • And beyond…
    • Localization
    • Support
  • Code Review – what’s in the code that needs to be found and changed
    • What to Identify
    • Embedded strings
    • Unsafe methods/functions
    • Image references
    • Unsafe programming constructs (ex: regular expressions)‏
    • How to Identify
    • “Brute force” iterations
    • Engineers search for and resolve known issues
    • Globalyzer-assisted review
    • An I18n code analysis tool is employed to examine source code for a large range of potential and known issues
    • Issues can be identified and resolved in a more systematic fashion
  • Globalyzer Server and Clients
    Server
    Command Line
    Client
  • Example Project Plan
    Combine:
    • 1 Part Architecture
    • 1 Part Code Metrics
    • 1 Part Experience
  • Let’s Look at Some Code
  • I18n Testing
    • PseudoJudo Utility in Globalyzer
    • Pseudo-localization
    • A “pseudo-locale” is created and implemented with “pseudo-translated” content
    • 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:
    • String-length expansion issues
    • Extended character display/corruption issues
  • Keeping Software Worldready
  • I18n As An Ongoing Process
    • Pervasive influence on entire organization
    • Paradigm shift: not US-centric!
    • I18n Coding Standards
    • Quality Assurance
    • I18n software lifecycle tools: Globalyzer
    • Avoid code forks
    • New features with international focus to launch in ALL locales
    • Relationship with Localization partner
  • I18n As An Ongoing Process
    • Globalyzer Command Line
    • Automated i18n checking
    • Create i18n Standards
    • 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