26
Delivering International User Experiences Eric Totherow Enterprise Evangelist Microsoft Corporation

Enter into new markets more easily Lower cost and time for development and translation Increase customer satisfaction and adoption Avoid costly mistakes

Embed Size (px)

Citation preview

Delivering International User ExperiencesEric TotherowEnterprise EvangelistMicrosoft Corporation

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

International Software WorkflowRequiremen

ts(Start Here)1)Foo2)Bar3)Intl!

Code Release

Design Test

CodeDesign

International Software Workflow Detail

UI Freeze

Localization

Acceptance Tests

Localizability

for designers

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

MapsDon't try this at home

http://www.microsoft.com/virtualearth/platform/

Globalization

for developers

Warning

Technical content follows

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

FontsWhen good fonts go bad

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

Summary

for everyone

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.