Upload
julian-poole
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
Why World Readiness Matters
Enter into new markets more easilyLower cost and time for development and translationIncrease customer satisfaction and adoptionAvoid costly mistakes (and potential lawsuits!)The boss said you had no choice
Details Are Everything
Everyone plays a part in international quality
Designers need to be “thinking international”Developers need to be “thinking international”
There is no substitute for a collaborative and knowledgeable team
“OK”
In North America… In Brazil…
“Not OK”
In France…
“Zero” or “Worthless” “Money”
In Japan, Korea & China…
TerminologySo we're speaking the same language
GlobalizationThe process of developing a program core whose features and code design are not solely based on a single language or locale.
LocalizabilityThe design of the software code base and resources such that a program can be localized into different language editions without any changes to the source code.
LocalizationTranslating a product for a specific market
MarketizationCustomizing a product for a specific market
Localizability Empowers Scale
English
German
Russian
Japanese
Thai
One bad design here…
…needs to be fixed n number of times
Design UI and software code so a program can be localized into different languages without any changes to the source codeWhy is this important: One badly designed element costs you multiple times
World Ready DesignNo code changes should be made for localization – so design for all culturesDesign UI with string expansion in mind (30%)
Avoid overcrowding dialogs and formsDevelopers - use AutoLayout where possibleNever, ever do something like this:BAD GOOD
World Ready Content
Use clear and consistent terminology everywhereAvoid highly technical sentences and colloquial phrases
“You are dangerously low on disk space.”“Unable to fork daemon.”
Minimize the use of acronyms, abbreviations, string decorations and string concatenations
“The DHCP server issued a NACK to the client.”
World Ready GraphicsExample Preferred
Avoid text embedded in images
Avoid gender and ethnic stereotypes
Avoid culture-specific examples
Avoid body parts and gestures
Locale/Cultural AwarenessNumbers:
9,000.00 is 9.000,00 in GermanyCurrency:
Symbol placement: 9.000,00 DM in Germany Negative Numbers: kr-127,54 in Denmark
Large numbers: 123,456,789.00 is 12,34,56,789.00 in Hindi
123'456'789.00 - in German (Liechtenstein)Sort order:
German ä comes after a Swedish ä comes after z
.NET Framework let you worry less about this stuff.
http://msdn2.microsoft.com/en-us/library/1021kkz0.aspx
Locale/Cultural AwarenessQuick C# Exampleusing System.Threading;using System.Globalization;
int myInt = 100;Console.WriteLine(myInt.ToString("C", Thread.CurrentThread.CurrentCulture));
If the culture is set to "fr-FR", output is:100,00
If the culture is set to "en-US", output is:$100.00
Unicode
Unicode needs encoding to workUTF-8 – use for web apps and interoperabilityUTF-16 – use for .NET WinForm application
Email is an exceptionShould continue to use non-Unicode encoding types, such as ISO 8859 series, as the default encoding type for the out-going messages for legacy reasons
For tons more information on Unicodehttp://www.microsoft.com/globaldev/getwr/steps/wrg_unicode.mspx
Input MethodsNon-English input methods
National standard keyboards
IME (Input Method Editor)
Use .NET edit controls wherever possible
Font Best PracticesMake sure all fonts cover one or more character sets.
Remember punctuation marks, numbers, uppercase and lowercase letters etc. All fonts shipped in Windows are Unicode ready.
Font size should be no smaller than 9 points or allow font size changeWeb Developers -- avoid placing font attribute values into inline styles.
Use CSS in which font attributes and style are defined in separate files, at least one for each supported culture.
Read more at:http://www.microsoft.com/globaldev/getwr/steps/WRG_font.mspx
Resource SeparationMultilingual UI Awarenes
Use satellite assemblies!By isolating resource elements in separate language specific binaries, you can:
Display your application UI in the language of the OSSet the UI language per userAllow on-the-fly UI language switchingAdd/remove language modules as neededRead about .NET resource handling and satellite
assemblies:http://msdn2.microsoft.com/en-us/library/f45fce5x.aspx
Wrap UpKnowledgeable designers and developers
World ready software is a team effort – collaborate!Set up an international best practices document for your orgTrain your new hires
Don’t re-invent the wheelUse all the tools and best practices you can get your hands on.NET Framework significantly reduces effortWhen in doubt, ask Dr. Internationalhttp://www.microsoft.com/globaldev/drintl/askdrintl.mspx
For More InformationYou Are Not World-Ready If...http://www.microsoft.com/globaldev/getWR/nwr/notworldready.mspx
Ask Dr. Internationalhttp://www.microsoft.com/globaldev/drintl/askdrintl.mspx
Globalizing and Localizing Applications using the .NET Frameworkhttp://msdn2.microsoft.com/en-us/library/1021kkz0.aspx
Localization Quickstart For Web Applicationhttp://quickstarts.asp.net/QuickStartv20/aspnet/doc/localization/localization.aspx
Visual Studio AutoLayout Exampleshttp://blogs.msdn.com/permanenttan/archive/2006/03.aspxhttp://blogs.msdn.com/jpricket/archive/2006/04/05/569280.aspx
Microsoft Virtual Earth Platformhttp://www.microsoft.com/virtualearth/platform/
Unicodehttp://www.microsoft.com/globaldev/getwr/steps/wrg_unicode.mspx
Fontshttp://www.microsoft.com/globaldev/getwr/steps/WRG_font.mspx
Resources and Satellite Assemblieshttp://msdn2.microsoft.com/en-us/library/f45fce5x.aspx
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.