screen supp 47

Upload: mydays31

Post on 08-Aug-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/22/2019 Screen Supp 47

    1/25

    INTERNATIONALIZATION

    The Annual Guide from MultiLingual Computing & TechnologyThe Annual Guide from MultiLingual Computing & Technology

    GETTINGSTARTEDGU

    IDE

    IntrIntroduction to Interoduction to Internationalizationnationalization

    SS uuzz aa nnnnee TToo ppppii nngg

    Developing S oftwa rDeveloping S oftwa re We With Interith Internationaliza tion in Mindnationa liza tion in Mind

    BB ii ll ll HHaa ll ll

    Why Unic ode Is ImporWhy Unic ode Is Important for Intertant for Internationalizationnationalization

    KKee nn LLuunndd ee

    Des igning User InterDes igning Use r Interfac es for an Interfaces for an International Audiencena tiona l Audience

    AAnndd rree aa SS .. VVii nnee

    55

    88

    1144

    1515

    Apri l/May 2002Apri l/May 2002#47 Supplement#47 Supplement

    GETTINGSTARTEDGU

    IDE

    contents

    contents

  • 8/22/2019 Screen Supp 47

    2/25

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    Publisher /EditorDonna Parrish

    Editor-in-Chief

    Seth Thomas Schneider

    Associa te PublisherJennifer Del Carlo

    Managing Editor

    Laurel Wagers

    Associa te EditorJim Healey

    Editorial BoardJeff Allen

    Henri BroekmateBill Hall

    Andres HeubergerChris Langewis

    Ken LundeJohn OConner

    Mandy PetChris Pratley

    Reinhard Schler

    StaffBecky Bennett

    Sandy ComptonKendra GrayOlya Helms

    Cecilia HowardDoug JonesJerry Luther

    Courtney McSherryBonnie MerrellDavid Shadbolt

    Aric SpenceKevin Watson

    MultiLingual Computing, Inc.319 North First Avenue

    Sandpoint, Idaho 83864 USA208-263-8178 Fax: 208-263-6310

    [email protected]

    Printed in the USA

  • 8/22/2019 Screen Supp 47

    3/2533

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    Lets say you have a product to sell . It might be software; it might be equipmentthat has user information displays and documentation; it might be electronic gadgetr yfor the end user. This is a good product, and you think i t would sell well in certain othercountr ies and cultures. Do you realize you have already localized the product? It i salready designed to be usable by your home market!

    The real questi ons are: How adaptable is it for other languages and cultures? Canyou easily change the language and script of the display or written text? Can you changeany culture-specific graphics to adapt to meaningful images for other cultures? Canyour product handle other number, currency, date, time, address and telephone num-ber formats? In other words, have you internationalized the product?

    In this supplement, we present advice on gett ing started in internationalization some of the questions you should ask, things you should keep in mind, pitfalls to watch

    for, checklists for action, and what resources are available.Even if you think yourself anexpert in this area, a li tt le review of the basics never hurts!Suzanne Topping introduces us to the topic of internationalization not just as a

    programming style, but also as a corporate strategy. She points out considerations foran international product such as the development process itself, testing and support. Itis important to place yourself in the right mindset before even start ing to internation-alize, and this article will help get you there.

    Once you have your mind in the right place, what is next? Bill Hall gives us morebackground. He describes an unfor tunately typical development cycle and how to avoidit and if it wasnt avoided, how to recover from it. His checklist for internationaliza-tion gives good general rules for any development platform.

    No discussion of internationalization is complete without at least an introductionto Unicode. Ken Lundes bri ef descripti on explains what Unicode is and why it is so

    important in internationalization.Once the conceptual issues are covered, it is time to roll up your sleeves and seejust what software internationalization involves. Andrea Vine describes good archi-tectural considerations, sound programming practi ces and t ips for creating softwarethat is truly internationalized.

    Congratulations on getting started in your internationalization effort! Knowing whatquestions to ask, how to structure business processes,how software should be designed, andwho can help along the way will prove invaluable.And once it is accomplished, you will beready for localization! But thats a story for another time. Donna Parr ish, Editor

    BILL HALL is a globalization consultant with Convey Software and a m ember ofth e MultiLingual Computing & Technologyeditorial board. He can be reached [email protected] or [email protected]

    KEN LUNDE is head of CJKV font development at Adobe and is a member ofth e Mult iLingual Computing & Technologyeditor ial board. He can be reachedat [email protected]

    SUZANNE TOPPING is vice president of BizWonk, Inc., and communicat ions

    officer of the Professional Association for Localization. She can be reached [email protected] or [email protected]

    ANDREAS. VINE is a software internationalization architect at Sun Microsystems.She can be reached at [email protected]

    Hall VineLunde Topping

    LOCALIZATIONI N S T I T U T EI 1 8 N En g in e e r i n g

    The Loc a l i za t ion Ins t i tu te4513Vernon Boulevard | Suite 11Madison WI 53705 USA

    608.233.1790| FAX 608.441.6124

    w w w . l o c a l i z a t i o n i n s t i t u t e . c o m

    We offer on-site trainingcourses for internationalizationengineering and focused con-

    sulting. Our instructors areexperts in the field who arealso available for consulting in conjunction with formaltraining or stand-alone.

    Bill Hall Internationalizationfeaturesof thenewMicrosoft

    .NET platformwith applications to Web andapplication programming in C# and VisualBasic.NET.

    Anin-depthlook at theWin32 internationaliza-tion model, includingprogramming in Unicode,

    workingwith localesandmanagingresources.

    Anintroductionto internationalization, includingmethodologies,character setsandUnicode,localeissues,andUI design for aworldmarket.

    Asmus Freytag Internationalization architecture and design

    review, from the ground up, identifying theappropriatetechnologiesandinternationalizationapproaches and mapping out theproject.

    Gettingyour teamuptospeedwithinternational-izationrequirementsandfundamental technologies,

    suchasUnicode,withdirect interactionor on-sitetrainingcourses.

    Detailed consultingon technical strategies andimplementations for the support of Unicodeand other internationalization engineeringrequirements,onavarietyof platforms,languagesand environments, such as Windows, Java, ICU,usingC/C++/C#.

    For acompletelistingof I18nseminarsandconsultingoffers,seewww.localizationinstitute.com/i18n

    or call thephonenumber below.

    Getting StarGetting Started Wted Withith

    InterInternationalizationnationalization

    authors

    authors

  • 8/22/2019 Screen Supp 47

    4/25

  • 8/22/2019 Screen Supp 47

    5/2555

    GETTINGSTARTEDGU

    IDE

    This article acts as a high-leveloverview of internationalization. It doesntdeal with the specifics of individual pro-gramming languages or even cover basicprinciples such as separation of code fromcontent. Sources for that information are,

    however, provided. Instead, it focuses ongetting you into the right mindset forundertaking the endeavor.

    Fundamental TFunda menta l Trruthsuths

    Lets start with a few basic truths.Pay now or pay later. When it comes to

    international product development, you can payearly and do things right, or you can pay later(and probably more) through increased local-ization costs,increased engineering involvementto firefight localization problems, and delayed

    shipment. Not to mention that youll probablyship a shoddy product,which some markets willnever forgive.

    Localization and internationalization aresymbiotic. Without localization, there is noneed to internationalize. Without interna-tionalization, youll wish you never attemptedto localize. When discussing internationaliza-tion basics, the eventuality of localizationmust therefore be kept in mind.

    The greater the complexi ty, the greaterthe need. The more complex the product,the greater the need for a solid internation-

    al architecture. A simple product and struc-ture will most l ikely be easy to locali ze. Acomplex multimedia application withthousands of fi les is another story. Theseproducts require sound internationaliza-tion of the product and processes, or local-ization will be a nightmare.

    The more you outsource, the greater theneed. When handing off raw code andresource fi les for localization, you need asolid internationalization approach.If soft-ware strings are merely exported to aspreadsheet and sent out for translation,

    with internal engineers doing all the workwith the actual fi les, creating the builds andso on, you may be able to get by wi th akludged approach.But i f you dont have the

    internal bandwidth to allow engineers tomuck around wi th localization tasks, yourproduct should be reasonably bulletproof.Otherwise, your engineers will spend anexcruciating amount of time dealing withbugs and last minute changes needed to

    support localization efforts. This ties backin wi th the first point: either pay your engi-neers to work on architecture and designonce or pay them to perform localizationtasks many times.

    It It s a Big Changes a Big Change

    A common problem for international-ization newcomers is underestimating thechange required to do things ri ght. There isa tendency to gloss it over by saying thingslike, All I have to do is separate code from

    content. In reali ty, you need to focus onthe concept of global product delivery, andthis has a much broader impact than mere-ly exporting strings into text-only resourcefi les. Delivering global products requireschanges to the overall software develop-ment process and means planning for addi-tional players, milestones, builds, QA stepsand so on.

    If you are extremely lucky, you may beable to convince all the appropriate playersand decision makers to do things right upfront. But chances are that wont happen,

    and the process will be evolut ionary. Try tolook at it as a continuum and work onincremental improvements if you cant doit all the first time out.

    Get PrGet Professional Helpofessional Help

    Theres undoubtedly a lot you canteach yourself, but there are two big rea-sons to seek help from those who specializein internationalization. First, learning onyour own is slow. It takes years to learn bytr ial and error. Engaging an international-

    ization consultant can jump start theprocess and save you time. Second, con-vincing management to make broadprocess changes can be daunting. External

    expert s can go a long way in adding cred-ibi li ty to your recommendations.

    A good starting point for workingwith a consultant is to request an interna-tionalization audit. Youll get tangibleresults which can direct your further

    research and software or process changes.Proceed with caution! You are enter-ing the internationalization arena at atumultuous time. Multi lingual softwarehas become a hot topic, result ing in aboom of newcomer consultants. You needto be methodical when choosing someoneto work wi th. Dont simply do a Websearch for internationalization consultantsand pick one out of the stack. Instead, tr yto get recommendations. Spend a li tt letime reading through archived notes oninternationalization-related discussion lists,

    and identify people whose approach you l ike.Ask them for recommendations.If you have arelationship with a localization vendor, youcan ask its representatives as well. Manylocalization companies offer international-ization consulting services themselves. Sinceyoure reading MultiLingual Computing &Technology, pick out an author or two that yourespect and ask them for recommendations.People are generally glad to help.

    What GetsWhat Gets

    InterInternat ional ized?nat ional ized?

    So youre ready to get internationaliz-ing? Lets talk about the pieces youll needto change.

    Core software product. During local-ization, youll send files off to people whoknow nothing about your product. Itsalmost inevitable that something will be bro-ken when you get the localized version back.In order to minimize breakage, you shouldspend a bit of time figuring out where themost likely breaking points are and make

    changes so that they are better protected.Forexample, if your build process is so complexthat your own developers have trouble withit, it should probably be simplified. If all the

    INTERNATIONALIZATION

    IntrIntroduction tooduction to

    InterInternationalizationnationalizationSuzanne TSuzanne Toppingopping

  • 8/22/2019 Screen Supp 47

    6/25

    text is buried in html, you should probablycreate a tagging method for identifyingtranslatable and non-translatable strings.In the worst case, if you dont know whereto begin with internationalization activi-ti es, consider passing the files to your

    localization vendor for suggestions onwhat you should change.

    When researching specific internation-alization techniques for software, youl l findtwo levels of information. Some guidelineshave general dosand dontswhich apply to allsoftware. Other information is specific to apart icular operating system, environment orprogramming language. You should read upon both levels.

    Other product components. A softwareproduct includes more than just the coreapplication i tself. Youll also need to consider

    internationalization of installers,help systems,tutorials, documentation, training materials,packaging, marketing materials and so on.

    Processes. If your focus is only on soft-ware, you could end up with a beautifullyinternationalized product and localizedversions which ship painfully late and overbudget. The enti re product developmentprocess must be updated. You can learn thisthe long, hard, expensive way or face themusic up front, define processes logically,and save time, money and frustration.

    If your organization has a software

    process improvement initiative in place (theCapabili ty Maturity Model, for example),make sure that each process area covers inter-national product development issues.

    Here are some specific functions toconsider.

    Configuration management. What isyour current source control approach? Wil lthe localization process use the same sourcecontrol system? Does the system suppor t a

    wide variety of fi le types so that it can be usedfor documents and graphics? How wil l filechanges be tracked before and after files aresent for localization? How does the releaseprocess need to change to include localiza-tion stages?

    Build process. How will your buildprocess need to change to accommodate thecreation of localized versions? Is your buildprocess complex or simple? Is it well docu-mented, or is it stored in the heads of a fewkey developers?Will vendors do builds?If so,what files and directory structures will you

    need to send them?Can tools like CATALYSTbe used to modify .dll files so that rebuildsare not necessary?

    Testing. What is your current testingprocess?Can the bug database support a widerange of scripts, or wil l bugs in non-Latin-based versions have to be entered as screenshots?Can the database support screen shots?

    Do you use automated test scripts?Can they suppor t a wide range of charactertypes, and will using them be effi cient fortesting localized versions? If not, how willtesti ng be performed?

    Is your lab set up to provide testing inthe languages that you need?Do you have allthe localized operating systems, applications,input method editors and other elements

    needed to perform testing of your localizedproduct? Do you have processes establishedfor how systems wil l be maintained, howscheduling will be handled, how testing willbe staffed and so on?

    Operational functions. Barry Caplan,

    founder of the www.i18n.com site, oncereferred to the functional areas required forinternational product delivery as the SevenOrganizati onal Fingers. These areas areProduct Development, Operations,Marketing,Sales, Finance, Customer Support, andAdministration. The idea behind this con-cept is that when changing your softwaredevelopment approach for international-ization, you also need to consider how tosupport customers who speak other lan-guages, how to handle funding and budget-ing for localization activities, how to make

    marketing changes for regional customersand so forth. You cant simply i nternation-alize the software and consider yourselfdone. The focus must be on creating aglobal product delivery organization.

    PrioritizePrioritize

    Obviously the optimal approach is to doeverything right the first time. Unfortunately,real-world demands prevent companies fromdoing things perfectly.We often have to makecompromises and gradually work our way to

    doing it r ight. Given the likelihood thattheyll be required, its best to find compro-mises which introduce the least risk to prod-uct delivery.

    For example, if your bui ld processes arecomplex and you need to hand off the buildtask to a localization vendor, it probablymakes sense to work on restructuring thebuild rather than adding comments inresource fi les to make translation easier. Youcan deal with that task later on. Or i f you aredeveloping a plan for testing localized ver-sions of software, you may want to consider

    outsourcing the activity initially so that youdont have to deal wi th the process of organ-izing a multilingual lab and test approachright away.As time allows,you can create newprocesses to move toward higher levels ofinternationalization sophistication.

    In ConclusionIn Conclusion

    Internationalization is a critical stepin making sure you can fill your customerneeds in countr ies far from home. Butremember: the software itself is just one piece

    of the puzzle. Approaching the challengesystemically will dramatically decrease thepain level youll experience during thelearning curve.

    66

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    Resources for Learning More

    Web Sites

    www.globalization.com

    Your portal to information aboutglobalization, internationalization,localization and translation.

    www.i18n.comNews | Tools | Process for global

    software (in Beta as of earlyFebruary 2002).

    www.i18ngurus.comOpen directory of links to

    internationalization (i18n)resources and related material.

    www.w3.org/International/W3Cs effort to make WWW technologywork with the many writ ing systems,languages, and cultural conventionsof the global community.

    Discussion Lists

    http://groups.yahoo.com/group/i18n-prog/

    List for programmers and Web program-mers to discuss programming topics relat-ed to internationalization.

    http://groups.yahoo.com/group/nelocsig/Designed to be an information sharingforum for people who are interested inlocalization, internationalization,and product globalization issues.

    http://groups.yahoo.com/group/I18NdotNET/Designed to act as an information sharingforum for people interested in .NETinternationalization and localization issues.

    www.w3.org/International/www-international.html Mailing list forthe development of all aspects of interna-

    tionalization and multilingualism on theWorld-Wide Web.

  • 8/22/2019 Screen Supp 47

    7/2577

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    i18N5318 De Lanaudire

    Montral, Qubec, Canada H2J 3R3514-526-4629 Fax: 514-526-7045

    [email protected] www.i18n.ca

    InternationalizationTraining & Consultingi18N offers on-si te consult ing and tra in ing on:

    M u l t i li n g ua l W e b si t e s Gl o ba l iza t i on m a n ag e m e nt sys tem s Windows and Unix software internationalization In te rna t iona l iz ing embedded systems Doub le -byte and b id i rect iona l languages

    Our work shops provide a unique, high-qualitylearning experience. W e use visually compellinggraphical models and animation to make richer content

    easier to understand. See us all year at LISA.Our hands-on consulting services include:

    Br ief d iscovery sessions Deta i le d a sse ssm e nts Arch i tec tu re and des ign

    Globalyst Corporation

    39 Tam OShanter RoadAlamo, CA 94507925-855-1038 Fax: 925-820-7139

    [email protected] www.globalyst.com

    Its All in the NameProduct glo bal ization is a m ult i - level process,

    requir ing expert solutions in di fferent f ie lds.We br ing i t a l l together under one name

    Globalyst.From beginning to end, the Globalyst team

    wil l help you adapt, local ize and test yourproduct for any locale. Located in the SanFrancisco Bay Area, Globalyst w as foundedby industry veterans who understand theimportance of your global objectives to yourproducts success. And we have what i t takesto successful ly manage the entire global izationprocess.

    Logrus International Corporation

    Suite 305, 2600 Philmont AvenueHuntingdon Valley, PA 19006215-947-4773 Fax: [email protected] www.logrus.ru

    Multilingual LocalizationEngineering and TestingLogrus International Corporation is focused on soft-

    ware localization and translation for the IT industry,

    as well as on multil ingual engineering and testing. Unmatched bus iness t rack record Reliable, prompt , t op-notch and affordable services Thorough experience with large projects Un ique qua l i ty / p r ice ra t io fo r eng ineering and

    testing services World-class project management Russian and Uk rainian languages for localization Al l Western European languages for engineering

    and testing with Spanish as our favor i te

    Web of Culture113 Anita Road, Suite 6Burlingame, CA 94010

    408-273-6074 Fax: [email protected] www.webofculture.com

    Web Site GlobalizationGuidance Solutions.Certification. Service.

    Web of Culture provides global ization manage-ment expertise and an international ly-recognizedcerti f ication to mult inational corporations seeking toimp lement Web g loba liza t ion best p ract ices. OurGlobeMark Web Site Certi f ication Program reviewsand analyzes corporate Web si tes for mult i l ingualand mult icul tural accuracy and functional i ty. Our

    GlobeMark Certi f ied Web Global ist Exam is forindustry prof essionals. Harvard Business Schooldeems our WorldSm art Resource Center a treasuretrove o f use fu l in fo rmat ion . Contact us to gu ideyou through the Web global ization process.

    Skandis Systems International, Inc.75 S. Broadway, 4th Floor, White Plains, NY 10601

    914-304-4001 Fax: [email protected] www.skandissystems.com

    Skandis Systems has built their success on highstandards, quality service, and technical and culturalexpertise, providing complete globalization servicesto Fortune 50 0 and startup companies.

    WebGlobalization offers clients ongoing multilingual,Web-enabled application development, managementand translation.

    SoftGlobal ization o f fe rs c li e nts I1 8 N / L1 0 Nservices to rapidly analyze, implement, QA and deliver

    internationalized software products. W ith m ulti-language and state-of-the-art development labs, allengineering is performed under native environments.

    Experts in international issues and softwaredevelopment, we provide global solutions with inyour budget.

    Globalization Experts Superior Service

    LingoPort, Inc.

    1734 Sumac AvenueBoulder, CO 80304303-444-8020 Fax: 303-442-1413

    [email protected] www.lingoport.com

    Internationalize WithGlobal Investigator

    Find internationalization (i1 8n) issues in sourcecode fast

    And get help f ixing them Coordinate i18n across your development

    organization Make i18 n review a part of your build processes Visi t our si te for a free tr ial

    LingoPort, mak er of Global Investigator software,provides i18n software and services, and partnerswith leading localization companies, helping youefficiently meet w orld market goals.

  • 8/22/2019 Screen Supp 47

    8/2588

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    What are internationalization, local-ization and globalization?

    Internationalizationis the engineeringand design aspect of creati ng a world-readyproduct. Internationalization work proper-ly starts in the design phase and lasts untilthe product has been localized and

    released. Localization is the term mostoften used for the task of adapting a prod-uct to one particular target market.Localization includes translation of user-interface str ings, adjusting culturally sensi-tive elements and any other task requiredto make the product usable in a particularworld region or locale. A locale is typicallyidentified by language and region identi-fiers, such as English US, German Austr ia and so on. A product isglobalizedifit is both internationalized and localized. Ifwe wri te G11N for globali zati on, then

    G11N = I18N + L10N.In simpli stic terms, internati onal-izati on is a job for programmers, andlocalization falls to the linguists.Int ernationalizati on and locali zati on areonly l oosely related; a product can befully internationalized without havingbeen translated into another language.

    Why is internationalization important?If the software has been properly

    internationalized, locali zati on (transla-tion) can proceed quickly, effi ciently andat a reasonable cost, and the product can

    be sold in other world regions. But if theproduct is not internationalized, the trans-lation step can be hampered substantiallyas program bugs are detected, reportedback to the development staff, fi xed andreturned to the translation and qualityassurance (QA) teams. The results aredelayed releases and missed sales opportu-nities that are seldom recouped.

    Where does internationalization belongin the software development cycle?

    Internationalization is a component ofsoftware engineering that should be applied

    to a product throughout the developmentcycle. Many development organizationsnaively believe that internationalization canbe added at the last minute. Unfor tunately,

    internationalization is not a coat of paintthat is applied to the surface of the product,as is localization. It is much more like oilthat lubricates the whole system.Internationalization errors tend to be foundthroughout the system and at every level.They can be as varied as incorrect uses of

    library and system calls, improper pointerarithmetic, embedded user interface items,inattention to rendering locale sensitivedata correctly and erroneous assumptionsabout character encoding. Internationa-li zati on omissions and oversights can causesubstantial rewrites of large blocks of codeand brisk renegotiation with third-partysuppli ers of key modules.

    What does internationalization cost?Large companies that routinely devel-

    op with internationalization in mind findthat development costs can increase by 10%

    to 20% or more since developers must beeducated, internationalizati on phase checksmust be added, and QA plans modified forthe additional testing required. Fortunately,those costs can be amortized over multiplelanguage releases, reducing the effectiveuni t cost. But costs can easily double ifinternationalization is left to the lastminute, many errors are not found, andawkward compromises are often necessaryto meet release schedules.

    What is a typical first-time interna-tionalization experience?

    It goes something like this. Lets sup-pose the sett ing is the Uni ted States. Anidea for a product i s conceived; develop-ment begins apace; version 1.0 is releasedin English; and work immediately starts ona bug fix release simultaneously with thenext version. Throughout, no thought i sgiven to internationalization mainlybecause no one on the staff really knowswhat it means. One day a Japanese compa-ny calls up to say that i t wants the product.The product manager asks if English wil lbe OK, and the Japanese company replies

    absolutely not! At this point, the entiredevelopment cycle becomes completelydisrupted as company management tries todecide how to handle the situation.

    Any number of paths can be followed,but usually the worst possible decision ismade: a separate thread of developmentbegins with the code branching to get theJapanese release out while US developmentproceeds toward its next version. Unlesscompany behavior is modified, the cycle

    continues of an English release followedmuch later by releases in other languagesone by one. In the meantime, the maindevelopment group continues to make thesame internationalization mistakes releaseafter release. The whole process is veryexpensive, maintenance and patchesbecome dif ficult to provide, and the sub-stantial benefits of simultaneous release areconsistently missed.

    How can a company avoid repeatingthis depressing experience?

    Many companies have recognized the

    futil it y of the approach I have just describedand wi ll take the time to merge the interna-tionalized code into a single, worldwidebase. From that point they follow a strategyof developing code that is independent oflanguage and locale along with supportingmodules that manage language and localespecific issues. Locale-neutral escape mech-anisms are developed that provide meansfor accessing supporting modules handlinginternationalization i ssues. As a simpleexample, a module might contain the userinterface for a part icular language, and the

    escape mechanism would be a call to get astr ing indexed by a number or a hash value.Another example could be the need to ren-der di splay of data in a way suitable for agiven world region (locale). In thi s case theescape might be to use the information pro-vided by the operating or runtimesystem itself. Taking advantage of such sup-port is one of the most powerful ways tointernationalize a program with a mini-mum of effort. It i s all a question of modu-lar development and design.

    What kinds of internationalization mod-

    els are used,and what are the merits of each?This is a complex topic that dependsenti rely on the platforms on which the appli-cation runs. However, all systems provide

    Deve loping S oftw a rDeve loping S oftw a re We Withith

    InterInterna t iona liza t ion in Mindna tiona liza t ion in MindBill HallBill Hall

  • 8/22/2019 Screen Supp 47

    9/2599

    GETTINGSTARTEDGU

    IDE

    such guidelines, and these must be thoroughlystudied. First-t imers are often overwhelmedby what has to be learned another reasonwhy you start the internationalization effortearly in the development cycle.

    How does a developer learn about

    internationalization?Unfortunately, it i s nearly impossibleto find schools or universities anywherethat are either interested in or qualified to

    teach internationalization as a part of anormal computer science education. It is aserious failure by those who otherwise doan excellent job of teaching the art and sci-ence of programming and programminglanguages. Companies are therefore forced

    into educating their staffs or drawing uponoutside experti se. Locali zati on companiesand independent internationalizationengineers often provide such services.

    As a developer, do I have to be able tospeak four languages in order to learninternationalization?

    Internationalization is an engineer-ing effort. An appreciation of the factthat cultural and linguistic differences

    exist and that software needs to com-pensate is enough. It also helps if thedeveloper gives some thought as code isbeing written as to its possible effect on

    INTERNATIONALIZATION

    The program design team considers internationalization from thebeginning of the project.

    Icons, cursors and bitmaps are generic,are culturally acceptable and donot contain text whenever possible.

    If ethnocentric graphics, colors or fonts are used, they can be replaceddynamically using locale-sensitive switch statements.

    Menus,dialogs and Web layouts can tolerate text expansion.

    Development language strings are reviewed for meaning and spelling toreduce user confusion and lessen translation errors.

    Strings are documented using comments to provide context fortranslators.

    Strings or characters that should not be localized are clearly marked.

    Shortcut-key combinations are accessible on all international keyboards.

    International laws affecting design and operation are considered.Third-party software used in the product is examined for international-ization support.

    Consistent terminology is used in messages.

    The product runs properly in its base language in all target locales.

    Strings are not assembled by concatenation of fragments.

    Source code does not contain hard-coded character constants,numericconstants, screen positions, fi lenames or pathnames that assume aparticular language.

    String buffers are large enough to handle translated words and phrases.

    Program handles input of international data.

    All language editions can deal with one anothers documents.Program contains support for locale-specific hardware if required.

    Program depends on operating or runtime system functions for sorting,character typing and string mapping.

    Program takes advantage of generic text layout functions when available.

    Program responds to changes in the users choice of interna-tional settings.

    Program handles user keyboard layout changes.

    Far East editions support input method editors (IME), vert ical text andline-breaking rules.

    All international edit ions of the program are compiled from one set ofsource files.

    Localizable items are stored in resource fi les, message tables ormessage catalogues.

    All language editions share a common file format.

    Code is generic enough to handle a suitable range of character sets.

    Code properly handles all characters in the programs character set.

    Program handles non-homogeneous network environments wheremachines are running different code pages.

    Code processes all character sets correctly regardless of character widths.

    Code supports Unicode or conversion between Unicode and any localcode pages.

    No assumptions are made that one character storage element representsone linguistic character.

    Code uses generic data types and generic function prototypes if availablein compiler.

    Code does not use embedded font names or make assumptions aboutparticular fonts being available.

    Program displays and prints text using appropriate fonts.Program meets international testing standards.

    Text is translated and meets the standards of native speakers.

    Dialog and forms are resized, and text is hyphenated appropriately.

    Translated dialog boxes, toolbars,status bars and menus fit on the screenat different resolutions.

    Menu and dialog-box keyboard assignments are unique.

    User can type all supported characters into documents,dialog boxes andfilenames.

    User can successfully cut, paste, save and print text regardless oflanguage.

    Sorting and case conversion are culturally correct.Application works correctly on localized editions of the target operatingsystem.

    These considerations apply specifically for Web internati onalization:

    Make sure your presentation tier is ready to manage multiple characterencodings correctly in a variety of browsers.

    Check all your forms and other input fields for encoding compatibility.

    Follow all the rules for internationally portable design as listed earlier.

    Check your middle-tier components for internationalization compli-ance. Ensure that information about encoding and locale of data ispassed correctly between presentation and backend tiers.

    Validate databases to make sure that schemas,data types and table designare ready for a multi-locale environment.

    Check database client calls for use of built-in National Language Supportto return properly encoded and sorted record sets.

    Some Principles for Internationalization

  • 8/22/2019 Screen Supp 47

    10/251010

    GETTINGSTARTEDGU

    IDE

    MULTILINGUAL CONTENT MANAGEMENTINTERNATIONALIZATION

    internationalization. Coding for interna-tionalization is more a matter of att itudeand mindset rather than linguisticexperti se. The most important step that adeveloper can take is to learn about theNational Language Support available on

    the platform on which he or she works.Such knowledge can be acquired throughreading, traini ng and learning to wri tesmall sample applications that exerciseone or more of these functi ons.

    Is there some kind of checklist forinternationalization?

    The problem with checklists is thatone can find important excepti ons for eachrule. As stated above, internationalizationis more a matter of att itude and program-ming skil ls. Ask yourself if you write C++,Perl , VB, Java or C# using a checklist. Most

    li kely you dont. But there are some princi-ples. The accompanying chart shows somegeneral rules culled from many sources.The statements are rather broad and needexpert interpretation and illustrations butshould give you an idea. The base develop-ment language is assumed to be English.

    We did not pay attention to interna-tionalization during development. Whatdo we do?

    Get an audit by an experienced com-pany or individual who knows about thistopi c. An audit can identi fy the issues and

    help you prioritize what needs to be doneand how long it wi ll take. The ideal auditwill usually take three to five days or moreand should i nvolve several members of thedevelopment team. Be prepared to briefthe auditing team on the main features of

    your product and have someone whoknows the system very well show the audi-tors how the product works. Expect theauditors to do things you probably neverthought about such as changing the sys-tem, user and input locales to see how well

    the program handles different keyboards,fonts, date and time formats, numbers,currency, calendars, sort ing and the li ke.Have a machine ready with source codeand build tools for viewing. If you havealready isolated the user interface, makesure the audi tors can read through str ings,view dialogs and menus, and check cli p artfor everything from text in bitmaps tostr ings assembled by concatenation. All owdirect access to developers; it i s especiallyuseful for an auditor to sit with a pro-grammer and view his or her particular

    contribution at runtime as well as examinethe underlying code. Keep in mind that t heauditors are applying their experiences ininternationalization to mentally runthrough the items listed above to see howwell your product meets these cri teria. Ofcourse, the auditors wil l tailor their actionsbased on your program.

    What are the deliverables from theinternationalization audit?

    The auditors will present you with areport detailing problems found duringrunt ime, possible problems in the source

    code they examined (down to the proce-dure level with suggestions for repair ), gen-eral recommendations about what needs tobe done in the short and long term ( if youare going to Western Europe first and theFar East or bidirectional languages later,

    you may be able to delay some work for awhile), and an estimate of how long theinternationalization task might take. Keepin mind that such estimates are often verydif fi cult to quantify, as are all such deter-minations about software. It can happen

    that errors are buried so deep and so tan-gled that major architectural changes arerequired. In other instances, if developershave used good coding practices even with-out having considered internationalization,the work may be no more complex thangetting strings and other user interfaceitems out of code and fixing up problemswith incorrect API use. It should be no sur-prise that well-written code is often veryeasily fixed to meet internationalizationrequirements and badly written code canbe pure hell to rewri te. Internationalization

    engineers call this the good-code-bad-codephenomenon.What do we do after reading the report?Decide as soon as possible whether

    you wil l perform the work in-house, out-source it or do a combination. The best isto do the work in-house since the develop-ers will learn the steps to coding interna-tionalization as a natural part of coding.But even this approach will require somementor ing by experts, and for a while youmay want to have an internationalizationconsultant on hand to identi fy,explain and

    help correct the code. You may also want toget two or three days of seminar t rainingfor all of the development staff in order toacquaint everyone with the basics.Seminars rarely teach technique, but theydo raise awareness. If you decide to out-source the job, tr y to work out a methodwhereby the internationalization work canbe done on the main development line.Otherwise, the organization wi ll have to doone or more possibly large merges andin the meantime, the development staffwill continue to introduce international-

    ization errors that will have to be correct-ed again and again.What do we do after release?Resolve never to overlook interna-

    tionalization when wri ting code. Addinternationalization phase checks and QAto normal development and train any newengineers. Reinforce good programmerbehavior and do the opposite with bad.Most of all, expect that internationaliza-tion will cost you something in extradevelopment and allow for the time andexpense. Remember that this cost wil l be

    amortized over several localizations andthat the internationalization costs perrelease will be much lower. Enjoy the rev-enue received from abroad.

    T o l l F r e e :

    8 0 0 . 8 8 0 . 0 6 6 7

    P h o n e :

    5 1 2 . 8 2 1 . 1 8 1 8

    F a x :

    5 1 2 . 8 2 1 . 1 8 8 8

    1 0 4 3 5 B u r n e t R d .

    # 1 2 5

    A u s t i n , T X 7 8 7 5 8

    1 Internationalization, Localization, & Software Language Testing

    for simultaneous worldwide release.

    2

    Turnkey Solutions for Localization of Software, Technical

    Documentation, Application Help, Web Pages, & Training Materials.

    3

    Centralized Expert Project Management for clear & detail

    oriented communication.

    4

    Customized & Proprietary C.A.T. processes for consistent

    quality & on-time delivery.

    5 Culturally Sensitive Layout, Postscript for Press, Pre-Flight Check,

    Functional PDF, HTML Functional Test, & Certification.

    6

    Centralized Linguistic & Technical Quality Assurance with

    worldwide network of technology & C.A.T. qualified translators.

    O u r L a n g u a g e i s E x c e l l e n c e

    With 20 years in localization services

    ADAMS is available to meet all your needs.

    Top6 Reasons to localize with

    A D A M S

    w w w . a d a m s t r a n s . c o m

    1010

    GETTINGSTARTEDGU

    IDE

  • 8/22/2019 Screen Supp 47

    11/251111

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    Welocalize241 E. 4th Street, Suite 207

    Frederick, MD 21701301-668-0330 Fax: 301-668-0335

    [email protected] www.welocalize.com

    I18N Engineering andTesting Services

    Welocal ize provides comprehensivein te rnat iona l iza t ion ( I18 N) eng ineer ing andtesting services which prepare our cl ients forstreamlined and eff icient local ization efforts.

    By working with our cl ients to develop asingle, international ized code base, includingUnicode enablement, we are able to help ourcl ients achieve much faster international t ime-to -marke t .

    Our unique International ization methodologyoffers organizations a new way to accelerate theglobal del ivery of mult i language products andgain an edge over the competi t ion.

    HighTech Passport, Ltd.1590 Oakland Road, Suite B202, San Jose, CA 95131

    408-453-6303 Fax: [email protected] www.htpassport.com

    Customized & TurnkeyInternationalization

    Quality, reliability and creativity are daily realities atHighTech Passport.

    State-of-the-art tools empower our highly skilled,multifaceted engineers and project managers to

    meet the I18N requirements of increasingly complexsoftware applications.

    Long-term partn erships wit h clients from start-upsto m ultinational corporations validate our customizedapproach to:

    Co n su l t in g Code and Web si te review So f tware and Web s i te eng ineering So f tware and Web si te tes t ing and QA Tra in ing

    We thrive on solving your internationalization challenges!WH&PEspace Beethoven BP 102

    06140 Sophia Antipolis, France33-493-004-030 Fax: 33-493-004-030

    [email protected] www.whp.net or www.whp.fr

    Why Should You

    Work With WH&P?Our network of dedicated localization experts is

    used to tight deadlines, high-end technology andtop quali ty you have read that before.

    Well, we do it consistently:WH&P has beenbenchmarked Best LocalizationCompanyfor the second time in 3 years!

    Based in Sophia Antipolis, France, WH& P islocated in the heart of Europe. Since 19 94 , wehave provided turnkey localization services toFortune 5 00 corporations.

    We help them to enter the complex and verydemanding European market smoothly and tostay on top.

    VistaTECVistaTEC House, 700 South Circular Road

    Kilmainham, Dublin 8, Ireland353-1-416-8000 Fax: 353-1-416-8099

    [email protected] www.vistatec.ie

    Mobile, Desktop andInternet Globalization

    International ization and local ization are key togett ing your product to local worldwide marketsquickly and efficiently. With VistaTECs comprehensivesuite of g lobal ization services, our network of in-country language experts and a team of industr ia lstrength Engineers, QA Specialists and ProjectManagers, we wi l l make your international productreleases a real i ty .

    Advice on cross-border trade issues

    Internationalization analysis, audits and seminars Internationalization and certification testing Local ization 30 + languages Cross-platf orm engineering and QA

    Everlasting Systems LimitedSuite 120, 21710 Stevens Creed Boulevard

    Cupertino, CA 95014408-253-2933 Fax: 408-253-9233

    [email protected] www.everlastingsystems.com

    Everlasting Systems Limited provides both productsand software outsourcing services in software and Webapplication internationalization.

    Products Our SGIL softw are tools allow you todevelop systems for the global marketplace more quicklyand cost effectively than your competition. SGILenables you to internationalize softw are writtenin Java, C, C++, Visual Basic and JSP.

    Services Our comprehensive portfolio of I18 N

    services includes: Consulting, design and development Project management and monitoring Quality assurance and testing

    InternationalizationTools and Services

    Eriksen Translations Inc.32 Court Street, 20th Floor

    Brooklyn, NY 11201718-802-9010 Fax: 718-802-0041

    [email protected] www.erikseninc.com

    15 Years of Excellence

    Eriksen Translations first entered the market as aservice provider specializing in Scandinavian languages.

    Today, with an ever-expanding list of client referralsand 15 years of industry experience, Eriksen providesmultil ingual document translation (double-byte, bi-directional and other non-Western languages included);Web site globalization; graphics localization; DTP; andtranslation and localization of e-learning and LMScontent. First-rate project management guaranteessuperior QA and on-time delivery.

    Services include terminology database creation andmaintenance and CAT tool expertise. WBE certified.

  • 8/22/2019 Screen Supp 47

    12/251212

    GETTINGSTARTEDGU

    IDE

    1212

    INTERNATIONALIZATION

    1-for-All Marketing, Inc.www.1-for-all.com

    ABLE International, Inc.www.ableintl.com

    Adams Translation

    www.adamstrans.com

    Basis Technologywww.basistech.com

    BizWonk Inc.www.bizwonk.com

    Bowne Global Solut ionswww.bowneglobal.com

    Convey Softwarewww.conveysoftware.com

    Enso Companywww.enso-company.com

    Everlasting Systems Limitedwww.everlastingsystems.com

    Globalyst Corporationwww.globalyst.com

    GlobalSight Corp.www.globalsight.com

    G.Watson Internationalization Services

    HighTech Passport

    www.htpassport.comNancy Hoft Consultingwww.world-ready.com

    i18N Inc.www.i18n.ca

    Idiom Technologies, Inc.www.idiominc.com

    LangBox Internationalwww.langbox.com

    LingoPort, Inc.www.lingoport.com

    Lionbridge Technologies

    www.lionbridge.com

    Localization Insti tutewww.localizationinstitute.com

    Moravia ITwww.moravia-it.com

    Pretty Objects Computers Inc.www.prettyobjects.com

    SDL Internationalwww.sdlintl.com

    SinoMetricswww.sinomet.com

    Skandis Systems International, Inc.www.skandissystems.com

    SkySoft Corporationwww.skysoft.com

    Communications,development tools

    E-business solutions,enterprise and packaged software

    IT, technical documentation

    Globalization, internationalization,Unicode-enablement, localization

    Product and process globalization

    International API architecturedesign and implementation

    Web and software world-readinessassessments

    Integration, data centers,Webapplications, int ranet, extranet

    Internationalization, e-commerce,system software,middleware

    Enterpr ise, consumer andembedded software,e-commerce

    Retail, travel, banking, telecommu-nications, network solutions

    Enabling clients to use current staffto implement internationalization

    Information technology and

    medicalWriting and designing forlocalization and globalization

    Internationalization, globalization,arabization and bidirectional

    E-business globalization

    Localization, internationalization

    Software,systems internationaliza-tion, architectural consult ing

    Software,hardware,instrumentation,

    financial services,telecommunications

    All localization and internationalizationservice areas

    Localization and internationalization

    General consulting,Delphi andC++Builder developers

    Windows desktop,Web-based solu-tions,active server pages,CRM

    Microsoft desktop applications

    Computers,software, financial, bank-ing,manufacturing,engineering

    Internet applications, servers andsites, interactive TV,wireless

    Consu

    ltingS

    ervice

    s

    Projec

    t Mana

    gement

    Softw

    areEngin

    eering

    Softw

    areTestin

    g,QA

    Web S

    iteTestin

    g,QA

    Devel

    opme

    ntTools

    Conte

    ntDevel

    opme

    nt

    Graph

    ic Desi

    gn

    Training

    Servic

    es

    Trainin

    gProd

    ucts

    Small-large

    Small-medium

    Small-large

    Medium-large

    Varies

    Small-large

    Medium-large

    Small-large

    Medium-large

    Small-large

    Small-large

    Small-large

    Small-large

    Small-large

    Small-large

    Large

    Small-large

    Small-large

    Small-large

    Small-large

    Large

    Small-medium

    Small-large

    Small-large

    Small-large

    Small-large

    Typica

    l Clien

    t Size

    Qualcomm,Computer Associates

    Sterling Commerce,Corporate Express

    Dell, HP

    Amazon, Cisco,Google, Lycos

    Motorola, Vanteon,Eastman Kodak

    PowerTV,WebTV,Palm, Network Assoc.

    Interwoven, Kanisa

    Not available

    Not available

    Not available

    Nike, LOral, Hil ton,Alcatel,AltaVista

    Not available

    Not available

    Not available

    Translation Bureau ofCanada, TRIDION

    Travelocity, GE,Adobe,PTC, Xilinx

    Not available

    arcadiaOne, Clarus,Itron

    Amazon, Biogen,

    Cisco, Cognos, HP

    Not available

    Not available

    Not available

    Compuware,Liffe,Morgan Stanley, HP

    Microsoft, Konami ofAmerica,Kasenna

    Autodesk, Mi tsubishiTrust & Banking

    America Online,Sun,Disney Interactive

    Company Fields/Industries Served Clients

    A Survey of Internationalization CompaniesFor informati on, see www.mult il ingual.com/specialSupplements/i18nDetai l

  • 8/22/2019 Screen Supp 47

    13/251313

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    STAR-USA, LLCwww.star-usa.net, www.star-group.net

    Symbio Groupwww.symbio-group.com

    Uniscapewww.uniscape.com

    VistaTECwww.vistatec.ie

    Venturi Technology Partnerswww.infotechcs.com

    Web of Culturewww.webofculture.com

    Weblationswww.weblations.com

    Welocalizewww.welocalize.com

    XA Internationalwww.xai.com

    WH&Pwww.whp.net

    ZeeSoft, Inc.www.zeesoft.com

    Technical translation, localizationof software and Internet content

    International product developmentstrategy, internationalization

    Software and Web siteinternationalization

    General high tech

    Software and medical

    Website globalization cert if icationand consultation

    Web site consultation in all fields

    ERP, e-learning, data storage,data security

    Unicode engineering, globaliza-tion, ICU implementation

    IT, travel, financial, manufacturing

    Internationalization, application,server, UI development consult ing

    Consu

    ltingS

    ervice

    s

    Projec

    t Mana

    gement

    Softw

    areEngin

    eering

    Softw

    areTestin

    g,QA

    Web S

    iteTestin

    g,QA

    Devel

    opme

    ntTools

    Conte

    ntDevel

    opme

    nt

    Graph

    ic Desi

    gn

    Trainin

    gService

    s

    Trainin

    gProd

    ucts

    Large

    Medium-large

    Small-large

    Medium-large

    Small-large

    Small-large

    Small-large

    Medium

    Small-large

    Medium-large

    Small-medium

    Typica

    l Clien

    t Size

    Not available

    Citibank, Vali ty,Witness Systems

    CommerceOne,GEIS,Documentum, Vignette

    Not available

    Adobe, Autodesk,eBay,Microsoft, Siebel

    Not available

    Delta Air,GMX, IBM,Network Solutions, 3M

    Blackboard,KnowledgePlanet,GE,webMethods

    IBM, Microsoft, HP,Fuji tsu, Nintendo

    Amadeus, Compaq,Dell, IBM, Xerox

    Network Associates,eCode,webMethods

    Company Fields/Industries Served Clients

  • 8/22/2019 Screen Supp 47

    14/25

    Why Unic ode Is ImporWhy Unic ode Is Importanttant

    for Interfor Internationalizationnationalization

    Ken LundeKen Lunde

    As you read the art icles about internation-alization in this supplement, you will find acommon theme: Unicode. Unicode, which iskept in a lock-step relationship with the ISO10646-1 and ISO 10646-2 standards, is the firstinternational character set standard that haseffectively bridged the many, and sometimesconflicting, national character set standards.Unicode is not merely a massive enumeration ofcharacters. As of this writing, the latest versionof Unicode is 3.1, which includes a staggering94,140 characters in its repertoire but it isalso a standard that defines useful properties forits characters, along with clear-cut algorithmsfor handling some of the more complex scripts.

    As you engage in reading this issue, youwill discover that Unicode brings to the tablefour great advantages.

    First, one encoding (or representation)can be used regardless of language or script.While Unicode has three types of encodings UTF-8, UTF-16 and UTF-32 they are allcompletely interoperable. Each of these encod-ings can support up to 1,112,064 code points.63,488 of these code points are in the first planecalled the Basic Multilingual Plane (BMP), andthe remaining 1,048,576 code points are in theremaining sixteen planes.

    Second, the fact that a single representa-tion can be used, it allows companies to devel-op a single binary for all of their localizedproducts. This not only significantly reducesdevelopment time, which translates to fastertime-to-market, but also eases and simplifiestesting,which is a critical step for ensuring thatthe software is of high quality.

    Third, it allows applications and fonts tobe developed that can simultaneously handlemultiple languages and scripts, due to the factthat each language or script has its own unique

    set of code points.Before Unicode, the encod-ings for languages or scripts often conflicted,making it difficult to build single fonts thatsupported multiple scripts,which thus made itdifficult for applications to support multiplelanguages or scripts.

    Finally, Unicode is kept up to date. Asnew national character set standards emergeor existing ones are updated, Unicode isupdated as appropriate. This ensures thatapplications and fonts based on Unicode canalso be kept up-to-date.

    If you havent done so already, I strongly

    encourage you and your company to explorewhat Unicode has to offer. I am confidentthat you wi ll find Unicode to be the best pos-sible solution.

    1414

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    Checklist for Internationalizing HTML HelpCopyright 2001, Oracle Corporation. All rights reserved.

    Character Sets and Character Entities

    Explicitly set the Character Set tag

    (do this last, without re-opening any filesin an editor).

    Set character entities instead of using sym-bols (example:use instead of ).

    Files and Directories

    Separate source images from final gif images.

    Clearly mark old or no-longer-being-usedimages, or delete them.

    Use all lower case names for files anddirectories.

    Dont put spaces in file or directory names;use underscores instead.

    Keep file and directory names short, or evenuse the 8.3 convention.

    If possible,make file names of images reflectwhat the image is (example:use dlg in thefilename of a dialog box image).

    Use ISO codes for naming language folders.

    Make directory structures so that, under thedoc folder, there is an en folder that can bereplicated to other language folders.

    Deliverables and Change Control

    Use source/change control this will allow

    the translation process to work.Dont make small editing changes in themiddle of the translation process.Do sanity checks between the English sourceand the language folders that contain the

    translated versions; make sure they are thesame; use checkdiff.

    AuthoringDont use applied styles within the HTMLitself; export styles to style sheets.Review raw HTML source for uninten-tional attribute assignments made bythe HTML editor.Provide source files for graphics.Allow up to 30% more space for text ingraphics, since it wil l expand in otherlanguages.When designing graphics, use call-outs fordescriptions if possible.Use descriptions instead of screen shotswhenever possible.Make text files for screen shots thatdescribe where and how the shot was cap-tured so that the process can be duplicatedin other languages.If putting text into graphics,use Greek text.Use internationally acceptable graphics.Explicitly set directionality in theelement.Check the doc for bidi compatibility.Keep the layout designs simple, and keepin mind the effects that text expansion wil l

    have on them.Check hyperlinks to make sure that they arenot broken; use HTMLIA.Use lower case in file naming.Use forward slashes in all hyperlinks.

  • 8/22/2019 Screen Supp 47

    15/251515

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    One of the problems software engineersface when internationalizing a product isdiscovering too late that the product designcannot accommodate international require-ments. This arti cle is to help designers,architects, implementers, testers and wri tersunderstand the areas where international-

    izati on can affect appearance and structure.Common misconceptions about interna-tionalization will also be discussed.

    A general comment about universaldesign: making one product with the sameinterface for the entire world will meansome sacrifices in usabil it y for specif ic local-it ies and cultures. This is a known trade-off.The alternative is to have many customizedinterfaces and task flows designed for vari-ous markets around the world. For mostproducts, this is fiscally unrealistic. In somecases, companies prefer to maintain a stan-

    dard look regardless of where the product issold. If your company plans to localize theproduct, including images, for every marketthe product is sold into, then you dont needto consider universal design for the visualaspects of the user interface. But the archi-tectural considerations will sti ll be the same,since the goal is to create a single code basefor easy maintenance.

    Charsets a nd Loca lesCharsets a nd Loca les

    Charsets and locales are the two basic

    elements or building blocks of international-ization. Charsets are character encoding schemenames; each is a bytecode representation of acoded character set. For more information oncharacter set terminology,please seeRFC 2130- The Report of the IAB Character Set Workshop,29 February - 1 March, 1996. Locales are indi-cators of language and cultural formatting.

    For more detailed information on locales,see the chapter on locales in the Solaris 8International Language Environments Guide(http://docs.sun.com/ab2/coll.45.13/I18NDG/@Ab2PageView/555).

    All textual data has a charset associatedwith it,and that charset must be known in orderto process the data correctly. Any time data ispassed from one program module to another,

    the charset must be indicated either explicitly orimplicitly.The charset can be defined as part ofthe protocol or API, or can be explicitly provid-ed in a header or descriptor area. Note that itmay still be too soon to serve UTF-8 or UTF-16to end users,although this can be acceptable forsophisticated corporate users.

    Data formats, especially numeric for-mats, are frequently based on locale.Locale ismost often a user property. As a result, localeformatting should be dynamic. Instead ofputt ing formatting into a localizable resourcefi le, the program should determine the localeof the current user and format the dataaccordingly. The key is detecting what thecurrent user locale is not always a straight-forward task. Sometimes the locale must bespecified by the user in some sort of prefer-ences area in order to find out the correctone,and this must be designed into the prod-

    uct. Formats should be taken from theunderlying platform, for a couple of reasons:1) the platform groups have spent quite a lotof time researching and assembling thisinformation; and 2) there are no official stan-dards for locale formats, since even withinsome national standards bodies the memberscannot agree.

    Platform locales do not include every-thing you may need for a locale.For example,address, telephone number and propername formats are not usually available.There are some centralized sources for this

    sort of information on the Web; they aremostly not author itative, but are usuallybased on solid research.

    Note: The locale information from oneplatform to another, even within the samecompany, does not necessarily correspond.For example, Solaris locale formats are notidentical to Java locale formats.

    Data FlowData Flow

    Consider the enti re flow of data throughthe product. For example,in a calendar appli -

    cation, the data might go through a series ofprocesses:The user creates a new calendar entry:

    data input in a part icular charset.

    The submitted entry is processed intoprotocol format: possible charset conversionand data parsing issues, protocol parametersett ing according to language or charset.

    The protocol stream is then sent to theserver for entry into the calendar: protocolparameter interpretation, charset acceptance,

    storage tagging.The user views a calendar: request sentto server for calendar.

    The request is formatted: date rangewhich may require date format parsing,otherspecifics sent to server.

    The server returns the requested informa-tion: data formatted into protocol stream withparameters set to describe language,charset orother areas affecting international data.

    The protocol stream is reformattedfor output back to the user: charset con-version may be necessary, locale-specifi c

    formats for dates and other fields areapplied, data parameters for output formatmust be included.

    Obviously a calendar application hasmany more areas of data flow and process-ing, but this is the approach to take wheninspecting for design issues in the data pro-cessing port ion of the product. Remember,everywhere data is touched, be i t from theuser, from another product such as a dir ecto-ry, or fr om the program resource files, int er-nati onali zation must be considered.

    User InterUser Inter f acefaceThe user interface is the most exposed

    and obvious portion of any software package.As a result, it tends to be the fi rst componentpeople think of when they think of interna-tionalization. And so it is the birthplace ofmany myths and misconceptions.

    The user interface may receive a dis-proportionate amount of attention tointernationalization from its creators aswell as from international users. If some-thing is wrong in the user interface, users

    will notice it immediately and probablyreport it almost as fast.So it is important to design the user

    interface correctly from the beginning.

    Designing User InterDesigning User Interfacesfaces

    for an Interfor an Interna tiona l Audienc ena tiona l Audienc eAndrAndrea S . Vea S . Vineine

  • 8/22/2019 Screen Supp 47

    16/25

    Aspects of user interface design are coveredthroughout this article.

    SharShared Librariesed Libraries

    One of the easiest ways to ensure

    product interoperability is to shareli brari es. Since processing internationaldata can be accomplished numerous ways,sharing libraries is essential to ensure theintegri ty of the data.

    There are a couple of public cross-platform internationalization interfaces orlibraries: Java and International Componentsfor Unicode (ICU). Java is,of course,an enti relanguage and platform. It contains a tremen-dous number of classes and methods formanaging international data,making interna-tionalization easy, although not foolproof.

    ICU is an open-source library in C/C++which is based on IBM code and is now aworldwide collaborative effor t. ICU can beconsidered a C/C++ counterpart to the Javaclasses and methods; it i s a cross-platformlibrary that includes locale-specific format-ting, language-specifi c sorting and searching,and a resource fi le mechanism. There is alsoICU4J, a supplemental Java library with addi-tional internationalization classes. Be awarethat when Java implements the functionalitycurrently available in ICU4J, the classes andmethods may not be compatible.

    Additional functionality specific to aproduct must be written by the product group.Bear in mind, however, that if other productsuse your product, then these other productsmay need the functionality in your product-specific internationalization library.For exam-ple,a directory server may include a number ofLDAP tools with internationalization built in.These tools will be used by products that rely

    on the directory and thus may need toincorporate additional requirements beyondthe original projections based on a stand-aloneinstallation.

    Interaction WInteraction Withith

    Other PrOther Productsoducts

    This is an area which has not beenemphasized in the past, but is becomingimportant to the success of many products.Software products within a company can bedependent on each other and on externalproducts. If one of the pieces is not interna-tionalized properly, it can prevent the inter-nationalization of the enti re ensemble.

    Design requirements should addressthe needs of dependent products. If an

    application server cannot process applica-tion data in the Simplified Chinese charsetEUC-CN, then chances are all the applica-tions running on the server wil l not be ableto accept EUC-CN data.Core-level productsneed to be especially sensitive to this.Products, such as director ies, user manage-ment, Web servers and so on, need to befully internationalized with well-definedinterfaces and APIs sooner than higher-levelproducts, such as trading software.

    Be especially careful about choosing a third-party component or product to include functi on-

    ality.More often than not, third-party productsare not internationalized, and this can blockinternationalization in the including product.Ifthe code rights are purchased, then the productgroup is often saddled with retrofitting interna-tionalization into someone elses code. Worse,sometimes the design itself is flawed, renderingthe product useless to the company.Any time athird-party product is evaluated for use or

    purchase, the product group should look verycarefully at i ts internationalization.

    Implicit InclusionImplic it Inclusion

    vs. Explicit Inc lusionvs. Explicit Inc lusion

    Data coming into a product has a charsetassociated with it. If at all possible, use thecharset information associated with the datato feed to a library or platform that has a largeset of charset handling functions enabled.That is, rather than enabling charsets one byone as customers ask for them, enable asmany as possible. The same holds true forlocales enable all that you can.

    The main drawback to this approach isthat there usually arent enough resources totest all charsets and locales that are enabled.

    Spot-check all that can be fit into the schedule,making sure a good cross-section is covered.Unless your customers require a high level ofaccuracy, it is usually more satisfying forthem to have their charsets and locales most-ly working with a few small bugs than notworking at all. It is diffi cult to completelypredict all the languages and locales in whichyour product will be used. Try to providefunctionali ty for as wide a variety of data,formats, layouts and so on as possible.

    InterInternational Requirnational Requirementsements

    Some internationalization does notinvolve the processing of international data atall . Different markets have different require-ments; this is why companies divide theirsales areas into separate regions. Customersin other parts of the world use products forother purposes than do customers in theUnited States. They approach products dif-ferently,and they may have requirements thatare not included in a US specification. It isimportant when gathering requirements for aproduct that international customers, sales

    personnel and marketers are consulted.Some clear examples come from theauto industr y. In England, people use theirheadlights to signal other drivers for vari-ous courtesies, usually lett ing someone elseinto t raffic or giving someone else right-of-way. They need a function to f lash theirheadlights even when they arent switchedon. The controls in a car made for theUnited States wouldnt work, particularly incars that have retracting headlights. TheAcura/Honda Integra, which has retractingheadlights, has a switch in England models

    that li fts up the headlights, flashes themonce and retracts them again. Anotherexample of international requirements forcars comes from India. Cars there are

    1616

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

  • 8/22/2019 Screen Supp 47

    17/251717

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    required to emit a noise when reversing,much like trucks and electric cars in theUnited States. Note that these requirementshave nothing to do with the local languageor data; instead they are to facili tate thelocal way of conducting business.

    PerPerforformancemance

    Sometimes making changes for interna-tionalization affects the performance of the soft-ware.While performance degradation is not anexcuse for not internationalizing the code, itshould be addressed. There are some strategiesyou can use to avoid severe performance hits.

    Message catalog access often affects thetime it takes for the product to start up orload, but usually doesnt cause significantdegradation during regular processing. The

    exception is when user messages are constant-ly being accessed, building windows andscreens frequently. If the product is dynami-cally building data screens throughout theentire process, it is worth checking to see ifthere is any major slowdown in localized ver-sions. Pseudo-localization is useful for testingthis area. (Pseudo-localization is the processof programmatically t ranslating all thelocalizable resources of a product, then build-ing and testing the product as if it were a reallocalization. It can uncover many bugs in thelocalizability of a product, such as in the

    mechanism for detecting the correct languagefiles to load, in displaying any user interfaceelements that have not been externalized intoa localizable resource, in the expansion capa-bil it ies in the user interface design, as well asin the performance in processing localizedresources.) Caching or using static templatescan often solve this problem.

    Another area of internationalization thatcan affect performance is the process of convert-ing data from one charset into another. Forexample, if the product is searching data storedin a variety of charsets,it needs to convert all the

    data into the same charset in order to comparethe search str ing,especially if fuzzy matching isneeded.Depending on how much data is beingconverted, this could significantly affect searchperformance. Investigate ways of avoidingdynamic conversion and instead convert all thedata into Unicode before it is stored. Then onlythe search string needs to be converted at searchtime, and all the matching algorithms can bewritten with Unicode code points.

    Pay attention to intensive text parsingprocesses, layout, and large amounts oflocale-related formatting. Plan to test per-

    formance of the product with internationaldata throughout the product, including userinterface, data stores, templates and so on.Make sure that the locale settings on the

    machines in the performance test are variedto reflect a mult inational customer configura-tion or are set to a single locale which is not Cor en_US. Having Asian language configura-tions loaded on a machine may affect per-formance, so try running tests on machines

    with Asian setups in an Asian locale.In some extreme cases, it may help to

    provide configuration options which limitprocessing to certain charsets or locales,thereby reducing the amount of conversionand formatt ing.

    LocalizabilityLocalizability

    As confusing as it may sound, localiz-abilit y is an aspect of int ernati onali zati on,not localization. It involves enabling theproduct to be easily localized, without

    manipulating code or having to edit filesthat contain code.This can get a li tt le tricky, as many

    products rely on code embedded in HTML,such as JavaScript and JSPs. Other productsare starting to use XSL with embedded text.While using this method does not necessarilymake localization more difficult, it does pres-ent a problem for patch releases or servicepack updates. If any changes are made to theJavaScript, JSP or XSL code in the files afterthe product is localized, then the localizedelements must be reinserted into the updated

    files. Even if it is possible to use a tool toinsert the translated text (which often isnttrue), a separate localized patch or servicepack must be issued, and all the accompany-ing process for patch releases must be fol-lowed. This adds significantly to localizationcosts, which are usually not budgeted.

    Other areas of localizabili ty are messagesand user interface elements.User interface ele-ments will be covered in later sections.Messages are the primary method for commu-nicating with the user; therefore, it is impera-tive that they are not hard-coded so that they

    can be localized. The only code that shouldcoexist with messages is enough to enablehandling the messages as an external resource,such as the code in a Java ResourceBundle.Whether or not a product is to be localized isa decision that should be based on businessissues, never technical limitations.

    So me Additiona lSome Additiona l

    TTips for Localizabilityips for Localizability

    Never hard-code anything. Even con-

    stants, li terals and similar i tems can bedefined in the definition section of a programor in a header f ile. This is more than interna-tionalization; its structured coding.

    Do not restr ict font size. Asian charac-ters require a much larger point size forlegibili ty than Latin characters. If a smallfont size is necessary to fit all the Englishtext into a layout, then the layout needs tobe redesigned.

    Be aware that the operating system(s)your program is runni ng on may also be local-ized. Messages may be translated, even insystem commands. If you need to parse theoutput of an operating system command,change the environment locale for that com-mand, for example: env LC_ALL=C date

    All i tems whi ch may be viewed, created,changed or used by the customer i n any wayshould be put into separate resource files.Thi s includes component labels, messages(status, error, help), command stackers,field separators, templates and window

    tit les, among other things. Commandshortcuts and hotkeys need to be localiz-able; they, too, should be in resource fi les.Add comments to clarify.

    Group resources logically, preferably byscreen and functi on. The more contextuallyrelated resources are, the easier they are tolocalize. Add comments for the localizers;you can never have too many comments.These comments come in handy for programrevisions as well.

    Keep resource fi le and document organi za-tion consistent. As the product is revised, try to

    keep the same resource fi les where appropriate.Maintain the same document and help screenstructure as much as possible. If theres a needto change the document or file organization,track the movement of the old text so that pasttranslations can sti ll be leveraged.

    Determine field lengths by functi on when-ever possible. Avoid fixing the lengths in thecode. Str ings and currency values will expandwhen localized, and data in other languagesmay require more space. Imagine the price ofsomething expressed in Turkish Lira, which iscurrently over TRL 1,500,000/USD 1.00. If

    there is a size limitation for a string or value,add a comment next to it stating the size.Use and store messages in ent ire phrases;

    dont bui ld them from pieces.This includes userinterface phrases formed by list box choices ornumeric values in combination with fixedtext. Word order and grammar change drasti-cally from language to language. You may useplaceholders for information that comes fromthe system (such as fi le names, available diskspace) as long as they can be reordered. Addcomments in the resource file as to what theplaceholders represent.

    Create a new message for each context,even if the wording is identical in English.Different contexts may require different trans-lations in other languages.

  • 8/22/2019 Screen Supp 47

    18/25

    Use standard English when creatingprogram and document text. Avoid slang,

    jargon, cutesy Ameri can expressions andmarketing hype. Beware of acronyms andabbreviations. In most products, theEnglish user interface must be internati on-

    ally acceptable.Track changes wit h each r evision. Note

    which windows, chapters, help screens andso on change. When making changes to aresource file, add new messages to the endof the related section. If an existing mes-sage changes semantically (as opposed tocorrecting English spelling or grammar),comment out the old message and add thechanged one.

    Data HandlingData Handling

    Every time the program needs to dosomething with data, internationalization playsa role. Some of the processes applied to datathat are affected by internationalization areDisplay, Read, Sort, Search, Parse, Compress,String format, Character index and count,Word wrap,Hyphenate, Numeric format, Dateformat and Protocol format.

    Displaycan involve charset conver-sion, font selection, font size, processingthrough a special rendering engine, posi-tioning on the screen, str ing formatting,word wrap,hyphenation, numeric and date

    formatting and other processes.Readrequires charset conversion, commu-nication with input methods,string formatting,numeric and date formatting, protocol format-ting and more.

    Sort , search, word wrap, hyphenateandsometimes parseare language-sensitiveoperations.

    Search, compress, str ing format, characterindex and count, word wrapand hyphenateare especially sensitive to the charset of the

    data, since they are looking at individualcharacters. Of course, the charset shouldalways be known.

    Parse, str ing format, numeric formatanddate formatare particularly sensitive to thelocale.However, the locale can affect other areas.

    Protocol formatmust often include para-meters describing the charset, language and/orlocale of the included data.

    Here are more general guidelines forprocessing international data correctly:

    Keep code 8-bit clean. Do not use thehigh order bit of a character byte. Be careful

    when casting variables and moving valuesfrom unsigned to signed and back. This isonly for the external data bits, not for flagbytes and other internal data.

    Allow for the possibi li ty of more than onelanguage at a time. Check language attributeswherever they exist and process accordingly.This should really be done per object, but atleast try to do it by thread or process.

    Determine field lengths by functionwhenever possible. As in localizabilit y, avoidfixing the lengths in the code.

    All str ing handl ing should be done wi th

    character-set-aware functions. Collat ion,parsing, character counts, formatting, align-ment, fuzzy matching and other str ing func-tions require knowledge of the charset beingused and/or the current locale.

    Use locale-aware functions whenever pos-sible. If the object itself does not have a localeassociated wi th it , then there are other placesto get the locale. Check the user preferencesfor the locale, if your software has a setting forit (which it should). When thats not available,

    poll the system for the current locale.Remember to get the locale relevant to theperson viewing the data, namely, the client.Server locales wil l differ from client locales.

    Query the paper and page preferencesbefore formatting documents for printing.Page/paper size changes with locale as well.

    Graphica l Ima gesGraphica l Ima ges

    Graphical images are expensive to createand are almost as expensive to modify.English product is usually sold all over the

    world. Taking these two premises intoaccount, product graphics should be univer-sally acceptable if at all possible.

    Here are some basic guidelines for creat-ing universally acceptable graphics.

    Human figures, body partsand especially hands should beavoided at all costs. The problemwith human figures is manyfold: is it female ormale, what is it wearing, what color is its skin,what color is its hair, what position isthe body in, what is the figure

    doing? Obviously in

    some cultures, certaintypes of dress are inap-propriate,whereas they are standard inother cultures. People of one sex may

    not be allowed to perform certain tasksin some cultures,but in others they arethe primary performers of these tasks.

    In different parts of the world, people identifywith different skin and hair color on the figures.The only acceptable human figure isa stick figure with no clothes, nohands with fingers,and no hair.

    With body parts, the difficulty

    lies not only in which body part isbeing represented, but what position it is in,where it is cut off and how it is cut off.

    Hands dont even try.Theres not a hand positionaround which isnt offen-

    sive somewhere. Andthere is no hand position

    with universal meaning.Really.Dont forget.

    No animal shouldbe used to representanything other than the

    actual animal. Considerthis graphic:OK for the United

    States, maybe, but not ideal for India!

    1818

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

  • 8/22/2019 Screen Supp 47

    19/251919

    GETTINGSTARTEDGU

    IDE

    INTERNATIONALIZATION

    And this one:Is this a pet?Is it a farm

    animal?Is it food?Dependson where you are.

    Animals are powerfulsymbols in many cultures,and there is no uni-

    versal animal symbol template. Bottom line:dont use them unless youre representing theactual animal.

    Puns on English words, pictorial representa-tions of English words, and graphics containi ngwords are not universal.Representing an Englishword with a picture of something that sharesthe same word but has a different meaning doesnot translate.For example,in one product therewas an icon for representing staging. The iconwas a picture of a theater stage.While this works in English, itdoesnt work in other languages.

    Is this structure a home?How about the second one?Is eitherone of them related to a home pageon the Web?

    Another more common example isusing a picture of a musical note to representa message note.Again, this makes no sense topeople who do not speak English.

    Text in graphics can be a real nightmare.If the product is to be localized, then thegraphics have to be altered at great expense.Simply use some sort of image and keep thetext separate. Use numeric callouts and place

    the descriptions in text above or below thegraphic. If there is no way around putt ing thetext in the graphic, follow all these guidelines:

    Make sure there is plenty of expansionroom for the text portion of the graphic.Translations into alphabetic languages canmore than double in width, and ideographiclanguages tend to expand vertically.

    Allow the font size to change. If a smallfont is needed in order to make the text fit,then the graphic needs to be redesigned sinceit will not be translatable.

    Separate the text from the graphic in lay-

    ers, at least for sourcing purposes. Save thegraphic without text as a sort of blank andprovide that to the localization team.

    Some objects are cul ture-specific,so verify that a part icular object usedin a graphic is universally under-stood. Take a look at this graphic.

    What is it?Where is it used?Who hasone that looks like this?The red flag is up.What does that mean?In real life?On-line?

    The answers are that this is a US ruralmailbox. People who have this sort of mail-box do not need to mail their outgoing letters

    in an official post box. Instead, the postal car-rier wil l pick up outgoing mail for them, aswell as delivering the incoming mail. A per-son who has outgoing mail raises the red flag.

    The postal carrier will lower it after pickingup the outgoing letters. But on-line, theraised red flag is used to indicate that there isnewly delivered mail in the mailbox. So notonly has a location-specific symbol beenused, but it has also been used incorrectly.

    This is a perfect example of an assump-tion that everyone in the world would under-stand that a picture of a US rural/suburbanmailbox is a mailbox. The diff iculty is findinga single object that would universally illus-trate a mailbox. In this case, the shape of themailbox cannot be meaningful. Mailboxesaround the world come in all shapes andsizes. Instead focus on the purpose of themailbox as a place to receive mail. Make thebox simple and put an obvious letter or stackof letters in i t. A basic letter image is univer-sally understood, so work from there.

    Some objects would be foundoffensive to certai n cultures. Take thisgraphic for example.

    While in some culturesalcohol indicates a celebration,in others it is against religious beliefs toconsume alcohol. People from the cultures pro-hibiting alcohol might view the above image assinful or degenerate,not usually the impressionthat products mean to portray. Its best to findanother type of image t