Static Analysis Internationalization I18n Software Localization

download Static Analysis Internationalization I18n Software Localization

of 23

  • date post

  • Category


  • view

  • download


Embed Size (px)


One of the challenges of any internationalization effort is precisely locating internationalization issues buried in large amounts of source code and turning that data into an achievable plan. In this session, we’ll work with some open-source code using Globalyzer, a tool to evaluate the code base and categorize internationalization issues. We’ll then look at using this data to build and execute an internationalization plan among developer teams. There will also be an emphasis on maintaining code over its development life cycle so that new internationalization issues don’t begin to crop up and create costly iterative delays during localization. The session will share some of the very same proven and repeatable approaches that Lingoport has used to effectively scale and perform extensive internationalization implementations on large applications in a wide variety of programming languages and technologies.

Transcript of Static Analysis Internationalization I18n Software Localization

  • 1. Static Analysis for I18n
    Adam Asnes
    President and CEO
    P: 303.444.8020
    Lingoport, Inc.
    3980 Broadway
    Boulder, Colorado
    USA 80304
    +1 303 444 8020
    Monday, April 05, 2010
  • 2. Presenters
    Adam Asnes
  • 3. Agenda
    Business Case
    Traditional Approach
    Static Analysis Demonstration
    ROI: Implications and Examples
    Questions and Answers
  • 4. Business Case:
    Nothing gets internationalized or localized
    just because it would be cool
  • 5. Business Case why its important
    Global Revenues
    Key business partners
    60% or more of revenues
    Strategic Growth
  • 6. Business Case
    Localization Support
    U/I and data management/presentation
    Enterprise Customer Support
    Global enterprise customers need Unicode support
    DB and presentation must support client needs
  • 7. Is It Internationalized?
    Developers often underestimate i18n requirements
    Most dont know the answer
    Agile or other feature and release requirements often overrun less formally measured i18n requirements
    There is a Management Value in being able to confirm global readiness
  • 8. Traditional Approach - repeat, and repeat,and repeat, and repeat
  • 9. Tiers and Technologies
    Time and effort increase
  • 10. Traditional Approach
    Tedious Search hunt and peck
    Simple scripts and pseudo-localization testing is insufficient and iterative by nature
    IDEs are poor at finding i18n issues and across programming languages
    Finding issues too late
    Ugly surprises during localization
    or worse, after release
  • 11. Testing
    Architectureand Design
    Source: Software Internationalization Tools and Solutions - XeroxCatch Bugs Early!
    30 x
    15 x
    7 x
    4 x
    2 x
    Development Phase when
    an I18N bug is detected
  • 12. Testing vs. Static Analysis
    Testing only validates what can be easily exercised
    Hard to cover error messages and all aspects of the interface
    Expensive and inefficient process
    Static Analysis
    Evaluates issues at the source level
    Covers the entire application
    Guides development through solutions
  • 13. Static I18n Analysis
    Frequent i18n analysis speeds the process and
    Measures how coding practices are in compliance with i18n standards
    What gets measured improves
    $$$ value in answering management that the software is global and meets a set of standards
  • 14. Examples of what to look for?
    Embedded Strings
    E.g. Calendar, numerical formatting
    Processing e.g.
    String processing logic
    Character encoding
    Pattern matching for special cases
  • 15. Globalyzer
    Manage, perform and track internationalization so youre ready for localization
  • 16. Globalyzer Server and Clients
    Command Line
  • 17. Static Analysis Example
    With Globalyzer 3.2
  • 18. Detection
    Embedded Strings
    Locale-unsafe methods, functions, classes per programming language
    Locale-unsafe programming patters
    Conditional using regex
    Dictionary matches for strings
    Special exceptions
    Individual issue status
  • 19. Building your own Tools
    Painful to consider, especially over multiple programming languages
    How do you search for strings?
    Research and find methods/functions/classes across programming languages
    Difficult to gain intelligent results that can be built upon for precise direction during implementation
    Hard to track issues
    You now have to support it!
  • 20. Obstacles to Acceptance
    False Positives too many issues detected overwhelms developers
    Globalyzer filtering
    Globalyzer project files
    Globalyzer DB tracks issues and exceptions
    Auto-magic solutions usually dont work in a highly variable environment. Adaptation is a better solution.
  • 21. Cost of Fixing I18N Issues During Localization
    • When I18N issues are discovered during L10N testing, time is spent by 5 different groups of workers
    • 22. If we avoided I18N errors, we could save $762K /yr
    • 23. If we caught I18N errors at the source, we could save $420K/yr