SILICON VALLEY LOCALIZATION FORUM

Quality Issues in Internationalization (I18N) and Localization (L10N)

Authors: E.Uren, R.Howard and Tiziana Perinotti

Publisher: The LISA Forum Newsletter, Volume III Number 3, August 1994
Copyright by E.Uren, R.Howard and Tiziana Perinotti 1994. All right reserved. No part of this work covered by the copyright herein may be reproduced or used in any form or by any means, graphic, electronic, or mechanical, including photocopying, recording, taping or information storage and retrieval systems, without the written permission of the authors, who may quote passages to be printed in a magazine or newspaper.

1. INTRODUCTION & DEFINITION
In our experience, there is a large discrepancy between the ways that translators and engineers view the question of quality; translators appear to be concerned with the accuracy of translation while engineers are more concerned with functionality. An American dictionary gives the following definitions (among others):
QUALITY
Degree of Excellence
Degree of Conformance to a Standard
Inherent or Intrinsic Excellence

ASSURANCE
Certainty
Freedom from Doubt
Quality of State of Being Certain
Something that inspires Confidence

The purpose of a SW Quality Assurance function in a SW developer's organization is to help answer the question "Is this product sufficiently error or anomaly free that it may be released for use?"

For the purpose of this article, we will focus on I18N issues, those features that must be added to American code so that it may be adapted easily for use in other locales. We will assume that the reader has some familiarity with Testing or Quality Assurance procedures as used in American SW companies. Time and money spent up front in planning and technical reviews usually pays off in the form of fewer mistakes and changes later on in development. Some companies involve their best domestic customers at the design stage and this may be desirable with overseas customers too. Keeping things short and simple is a good strategy too. Part of the Quality Engineers' role is to play Devil's Advocate to developers and like everyone else in Marketing, International, Documentation and Technical Support the earlier they are involved in a project, the better. But Quality Assurance engineers who have only worked on US code need to verify features that their US experience does not prepare them for, and it is those features that we discuss below. We do advise you to keep track of what problems you find during development and localization. Then it may be possible to figure out either ways to prevent these anomalies occurring again or ways to automate finding them in your next project. Have a project post-mortem with all parties that were involved.

Quality Engineers sometimes use automated regression suites; there is an opportunity here to localize them too for testing localized SW. Some translation tools extract and replace text strings, handle increased space considerations, merge new engineering releases with previous translations and pseudo-translate. Some have versions for SW, documentation and Help that can consistent terminology in all three. We do not have space to discuss any of these tools.

2. "FIRST-TIME" FUNDAMENTAL ERRORS
In our experience, US programmers involved with I18N features for the first time can make some fundamental mistakes. Therefore particular care should be taken to verify the basics. Are strings hard-coded rather than placed in resource files, are hot-keys in resource files as they should be, and are dialogue/message boxes dynamically sized? Are extended characters used as word delimiters, are all characters imported and exported correctly, do decimal tabs work, is case conversion correct, and does sorting conform to a locale's rules? What about basic numeric, date, time and currency formats? Do they conform to the orthographical rules of the target language? Spell checkers, hyphenators and other third party SW need to be verified as do kerning and leading. Concatenated strings and strings with two or more variables might ignore gender variations and plurals or result in a sentence order that is incorrect. Printing and displaying characters for all fonts, displays and printers is basic. Can you input characters, parse input strings, and are character and word boundaries correctly defined? Are measurement scales and page sizes appropriate and is clipart acceptable? Testers need to verify that there are no errors in these basics.

3. ADDITIONAL TESTING PROCEDURES
In testing a localized product's functionality, a tester has two additional procedures when compared with testing the US product. First, there is a "sibling" product available which itself has undergone testing and whose functionality is available for comparison. Therefore a suspected anomaly can be verified on the other product. Second, resource files from different localizations can be swapped. It should be possible to swap French and German and US versions of resource files, for example, and that can assist greatly in focusing on a problem area in the code.

One of the most difficult test in retrofitted code is to ensure that all necessary strings have been identified for translation. We know of no structured procedure for detecting all strings although some companies do have proprietary tools.

Of course, here should be consistency of translation, that is in the terms used, between the major components of a SW product, namely documentation, Help and Software.

3.1. SW Testing
3.1.1. "Localizability" Testing on International English version
It is possible to test whether the Software contains many of the internationalization or "localizability" features on the basic US version before any actual localization has taken place. And it is an article of Quality Assurance faith that the earlier an anomaly is found, the easier and cheaper it is to fix. Basically, what the testers can do with the internationalized, but not localized, code is test whether all the additional features work correctly.
The scope of this testing can be greatly enhanced if there is a tool available that can:
extract text strings,
perform a pseudo-translation incorporating both the anticipated extra characters and taking additional space,
and then insert the pseudo-translated strings back into the code.
Use of such a tool assists quality engineers to test the display and printing of characters, the anticipated sizes of menus and dialog boxes, string resourcing and basic functionality at a very early stage in the development process, even before a version of the code has been given out to translators. This reduces both the amount of time and the number of times that there are two different versions of the code, the one that engineers are developing and the one that translators are translating. And there will probably be fewer engineering corrections to make later in development, after real translations are re-inserted into the code.

In the realm of text processing, test the input, display and output of characters (including their order and direction if dealing with non-European languages), the import and export of characters to other applications, the processing of Multi-Byte and Double-Byte and Single-Byte character strings, the use of concatenated strings and strings with embedded parameters (in particular verify that word order is grammatically correct in the target language). In testing multi-byte strings, areas of interest include verification that characters are correctly deleted, that they copy and paste correctly, that searches perform correctly and finally that lines break correctly on the screen and in printing.

3.1.2. Localized versions
Localized resource files, being of a different size than basic US versions, are arranged differently on disks and so it is necessary to test installation procedures. Depending on the strength of your overseas organization, arrange for some beta testing. An advantage to localizing in the target country is that it provides the opportunity to verify the localized product's functionality on more of the typical computer environments than may be available in the US home office and with more localized versions of third-party SW.

3.1.3. Subtleties There is an increasing tendency these days to use the operating system's I18N support. One subtle issue as a result is whether it is "all right" for I18N features to change with the OS or not. For example, a Parisian French localization might take on some German characteristics (currency or numeric formats to name two) under a German OS even though menus may still be in French. So it may behoove testers to test the application under a localization of the operating system different from the one planned to see if the application's I18N support overrides the OS's support.

The increased pressure to produce localized versions within at most a month after the completion of the basic US version intensifies the following predicament for localizers. They will have started to localize incomplete engineering releases of the product; as bugs are discovered in the basic code and corrections are made to the code, documentation and Help, new engineering releases get out of synchronization with the releases being translated. Merging the two can be difficult and therefore can easily introduce errors unless a rigorous oversight of resource ID numbers and a rigorous build transfer process is maintained.

The DTP package used for documentation must handle all contemplated target languages. Even when it appears that a package does fulfill this requirement, it is possible that different releases exist for different languages, a compatibility problem. For example, the French version of a DTP package may be two engineering releases later than the Japanese version and therefore may contain features that are just not present in the Japanese one. One obvious strategy is to keep everything as simple as possible, including the requirements on the DTP package itself.

3.2. Translation Errors There is no alternative to using Native Speakers in the translation process. In other words, the translator should be able to pass for a native of the target locale. Such a person can recognize if the language is from another locale (e.g. France, Quebec, Switzerland, Belgium). And of course, the translator should be up-to-date in the application's terminology. The conventional method for verifying translations is for an editor or proofer (in other words, another person) to review the translations; another method that is rarely used is to have another translator reverse-translate a small sample back into English so that the original author can compare that with the original. A reasonable similarity may induce a "warm fuzzy" in any mono-lingual developers. In certain cases, the question of translate versus re-write arises. Purely American examples need to be replaced by examples that are more appropriate to the target locale. It is entirely possible that a Japanese reader would expect more graphics and less text than an American is accustomed to, so perhaps the Japanese version of documentation should be re-written rather than translated.

The use of hypertext adds a dimension that needs to be checked after translation, namely, are the hypertext jumps preserved? Less obviously, spurious leading and trailing blanks may be introduced during the translation process, hot-keys and quotation marks may be mismatched or hot-keys may not be unique.

Note: Tiziana Perinotti, creator of the Silicon Valley Localization Forum Web Site and co-author of the article "Quality Issues in Internationalization (I18N) and Localization (L10N)", has been quoted several times in the article "Successful On-Demand Multilingual Web Publishing" on LISA December 1996 Newsletter.

LISA Secretariat
7 Route du Monastere 1173 Fechy, Switzerland.
Tel: +41 21 821 3210
Fax: +41 21 821 3219
E-mail:
admin@lisa.org



Copyright © 1996-2003 TGP Consulting