screen supp 47
Post on 08-Aug-2018
214 Views
Preview:
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
info@multilingual.comwww.multilingual.com
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 atbillhall@mlmassoc.com or bhall@conveysoftware.com
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 lunde@adobe.com
SUZANNE TOPPING is vice president of BizWonk, Inc., and communicat ions
officer of the Professional Association for Localization. She can be reached atstopping@bizwonk.com or suzanne@pal10n.org
ANDREAS. VINE is a software internationalization architect at Sun Microsystems.She can be reached at andrea.vine@sun.com
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
info@i18n.ca 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
info@globalyst.com 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: 215-947-4773ceo@logrus.ru 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: 408-273-6074info@webofculture.com 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: 914-304-4002info@skandissystems.com 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
info@lingoport.com 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
info@welocalize.com 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: 408-453-9434localize@htpassport.com 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
info@whp.fr 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
info@vistatec.ie 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
info@everlastingsystems.com 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
info@erikseninc.com 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
top related