Static Analysis for Internationalization and Localization


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Static Analysis for Internationalization and Localization

  1. 1. Static Analysis for Internationalizationand LocalizationThis article was authored by Lingoport CEO Adam Asnes and originally published in Net-Translators’ June2012 eNewsletter.The other half of localization: InternationalizationInternationalization is the other half of localization, and the two are like yin and yang, requiring differentbut intermingled tasks and knowledge. For internationalization I’m referring to developing software, sitesand applications so that they are capable of dynamically supporting any language or locale preferenceneeded for their marketing and use. That’s a bit of a difficult abstraction, and after all these years of medoing it, I’m pretty sure my mother still doesn’t really understand.Think of it this way: software doesn’t just work in another language because you localize the userinterface. If you want to globalize, you actually have to make source code so that it can support multiplelanguages without creating a new product. Software also doesn’t just display an interface. It deals withall kinds of data input, data manipulation, storage/retrieval, comparisons, calculations, reporting andmore. To support all that, the fundamental logic and processing of how software presents informationneeds to be adapted so it’s pretty flexible on issues like language, sorting, date/time presentation,numerical formatting, parsing addresses, phone numbers and more. Generally, for software localization towork at all, internationalization needs to be in place, and becomes an ongoing requirement for all newproduct development activities once a company takes on localization.Trouble is, internationalization can be very expensive in money and time if you haven’t built it into yourproduct in the first place, or it can be hard to maintain as your team pushes for new product features. It’sdifficult to quantify, test and verify internationalization issues and often there is only limited verificationafter localization is well under way. It’s no wonder global releases are often late, way over budget orworse, not really tested and just pushed out to market.Tracking down and measuring internationalization issuesA challenge with internationalizing existing applications is tracking down and measuringinternationalization issues when they are buried in hundreds of thousands to millions of lines of code.Most people take a testing route, but it is extremely difficult to test potential use cases and theirconceivable permutations. Additionally, by nature testing happens at a more costly time in thedevelopment process. Engineers usually have moved on to new features or other development effortsand tracking down and fixing bugs slows down releases.We use static analysis with our Globalyzer software to pinpoint internationalization issues right in thecode either during the development process or at staged intervals like a nightly build. Another advantageis instead of cataloging a bug, you are creating lists of exact issues exactly where they are in theapplication. Think of this as a very strong to-do list, guiding the developer through internationalization.This is not to say that testing isn’t needed, but it should be a last verification step, and not necessarily aninvestigative and scoping tool as it has often been used for internationalization.© Lingoport Page 1 Static Analysis for i18n and L10n
  2. 2. Static analysisWith medical products, using static analysis as a process is especially gaining acceptance. With aparticular emphasis on quality control, and consequences for bugs, examining code at the source level forconstructs, bugs and security is becoming a regular part of product verification. We know of one medicalproducts client that started working with Globalyzer directly because of a dangerous issue regardinglocale support that they missed in testing. It is very hard to recreate every possible user scenario formultiple locales, including misuse, so static analysis becomes a strong way to mitigate that risk.ConclusionMedical products offer a case where lives are potentially at stake, but given how global customers,revenues and organizations play such a strong role in so many companies, tools that quantify, monitorand help remedy internationalization issues efficiently should be important to every development team.About the AuthorAdam Asnes is President and CEO at Lingoport and enjoys investigating how globalization technologyaffects businesses expanding their worldwide reach. Adam is a sought after speaker at industry eventsand a columnist on globalization technology as it affects businesses expanding their worldwide reach. Heoften writes articles for localization, internationalization and globalization industry publications and enjoyscycling and Colorado’s Rocky Mountains.About LingoportLingoport helps globally focused technology companies accelerate and improve how software is built forworld markets. Lingoport’s suite of products is the market leader for companies looking to removesurprises in coding software for the world by automatically checking, measuring and fixing source codefor internationalization (i18n) defects. Combined with comprehensive outsourcing services, Lingoportofferings enable our clients to make world-ready software development a priority for their worldwidecustomers.For more resources on internationalization please visit or dive into Lingoport’s wiki Reading  Internationalization Management Tips: Ten Mistakes to Avoid© Lingoport Page 2 Static Analysis for i18n and L10n