Page 1

Globalization and Silverlight 2 Poornima Priyadarshini Shawn Steele

What is Silverlight? “Microsoft Silverlight is a cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web�

Web and Media: Then ‌

Web and Media: Then and Now Silverlight 2 “lights up”

Web Video Adoption on the Rise Growing Broadband Adoption Global Broadband Households by Region

Web Video Ad Revenue is Soaring Total Internet Video Ad Revenue (Billions) (Source: Yankee Group 12/2006

(Source: Strategy Analytics, 12/2005)

450 400 350 300 250 200 150 100 50 0

4.23 3.84 3.16 2.21 1.49 0.91 2006




2010 2006

North America



Video streams viewed per month will rise from 3bn (2006) to 12.4bn (2010) (Source: Parks & Assoc. 12/2006)





Asia Pacific

55% of online video consumed will be usergenerated (by 2010) (Source: Screen Digest December 2006)


Flexible, Connected Media Across Platforms Compelling Cross-Platform User Experiences Seamless, fast installation for end users Consistent experiences on Mac & Windows Stunning vector-based graphics, media, text, animation and overlay Dramatically improved performance Flexible programming model with collaboration tools Similar to the .NET Framework SDK Choice of development languages Integration with existing Web technologies Role specific tools for designers / developers Low cost, high quality media Broad media ecosystem Tools for live and on-demand publishing Connected to data, servers and services Easily mash-up and incorporate services and data Increase discoverability/searchability Rapidly scale applications with Silverlight Streaming service

The Story Today: Silverlight 2

Images Sounds Videos RSS/Atom Feeds New services you build

Managed Code (C#/VB) XAML


Existing Intranet services Public Internet mashup APIs

Compelling Cross-Platform Experiences: Windows? Apple OSX? It doesn’t matter – it works on both platforms

Unified programming model Supported platforms

Supported browsers

Silverlight Audiences Content Providers Engage visitors with highest quality interactive web sites, video and game experiences with lower costs

Designers / Developers Role-specific suite of tools for designers and developers using existing skills and domain knowledge and building on existing application investments

Viewers / End Users Sites “light up� equally on Windows and Mac, with a onetime, fast install

Interaction With the Outside World

Coordinates Map images

Map Provider

What makes Silverlight different? Small download size Web based client applications Consistent cross-browser experience Familiar C# & Visual Basic API set Powerful user controls

Globalization in Silverlight vs. .Net Silverlight Only supports Unicode UTF-8 and UTF-16 are supported for I/O .NET supports multiple encodings.

Globalization data Silverlight Depends on the OS for globalization data. .NET is consistent cross-OS Silverlight is limited to the data of the underlying OS.

Reduced API surface area for target market Custom cultures are supported as available in the OS

Globalization in Silverlight vs. Windows Silverlight relies on Windows for globalization data Culture set and data set depends on OS Newer OSes like Vista have newer data.

Silverlight uses RFC 4646 style culture names Windows still supports Microsoft LCIDs (locale ids)

Supports Unicode as the only character encoding Windows still allows ANSI code pages

Globalization in Silverlight vs. OS X OS X utilizes different paradigms than Microsoft products Silverlight has to adapt the OS API and data differences

Apple users have different expectations than Windows users Silverlight has to make sure our APIs fit those expectations Applications may need to adapt to those expectations

OS X supports multiple UI fallback languages OS X allows selecting language, formatting, calendars and sorting independently

Globalization Essentials Usability and Localizability Unicode Sorting behavior Culture data

Usability and Localizability Users expect an appropriately globalized experience Many Globalization APIs are useful for presentation Globalization support varies by OS Data also varies by OS and user overrides Globalized applications provide a good user experience

Users needing globalization support live in your market. International businesses may have global needs. Consumers may need globalization @ home or with friends.

Expatriates may need global formats

Unicode UTF -8 is the default encoding Unicode Normalization Windows normally provides composed data OS X typically uses decomposed forms. OS X can change the normalization form Normalization APIs are not provided (NFC/NFD, etc.)

Unicode properties aren’t OS dependent. Unicode character properties are available.

Sorting & Casing Depends on the OS data Silverlight is intended for presentation Some strings won’t be defined on all OS’s. Sorts won’t be available on all OS’s. Sorts that are available will change orders.

Culture sensitive comparisons may differ. Native strings can grow in OS X when changing case, but in Silverlight that is not expected.

Sorting Differences

Sachiko (Vista)

Sachiko (OS X)

Differences in the sorting of various Hiragana, Katakana and Kanji versions of the name “Sachiko�

Culture & Region Data Depends on the OS data Supported Cultures vary by OS OS X can always find a locale, but it may only return root data. Windows provides individual data for each locale that succeeds.

Data values and properties vary by OS OS X uses CLDR data and methodology Windows provides its own data

Cultural Variations

Danish (Vista)

Hong Kong (Vista)

Hawaiian (Vista Custom Locale)

Danish (OS X)

Hong Kong (Server 2003)

Hawaiian (OS X)

Best Practices Use Unicode (easy for Silverlight) Use the appropriate culture data Use globalization for presentation… … not for machine readable values Assume the data will change Watch formatting and parsing APIs (make sure you’re doing what you think you’re doing)

Build once, but test everywhere

Best Practices (more) Assume that machines will disagree about data. Clients and servers may have different perspectives. Clients, even the same OS or user, may vary as well.

Do server stuff on the server and client stuff on the client. Ensure the target UI culture is supported on your target OS and have a fallback when it isn’t.

Use the user’s UI culture and preferences. Multilingual or kiosk apps may need an easy way for the user to change the machine’s default preference.


Resources freetext=locale%20builder



pruebass sd asd fasdfasdf