20 DotNetFr Globaliz c

  • Upload
    jgom00

  • View
    232

  • Download
    0

Embed Size (px)

Citation preview

  • 8/8/2019 20 DotNetFr Globaliz c

    1/23

    Globalization Supportin

    Microsoft .NET Framework

    Franois Liger

    Program Manager

    Microsoft Corporation

  • 8/8/2019 20 DotNetFr Globaliz c

    2/23

    What is .NET Framework?

    .NET is Microsoft's platform for building,deploying, operating and integrating XML Webservices.

    Rich XML, standard protocols, stateless

    Cross-language development Common language runtime

    Common type system for all languages

    Rich runtime environment

    Rich class libraries (.NET Framework) Base class libraries, ADO.NET and XML

    Windows Forms for rich, Win32 applications

    Web application platform ASP.NET

    Easier to deploy, run, & maintain applications For components, versioning, availability

  • 8/8/2019 20 DotNetFr Globaliz c

    3/23

    Key Terms (as used in this talk)

    Globalization (a.k.a. Internationalization) Core application handles international data

    Character encodings Date and time, numeric, currency formats

    Market adaptation Additional functionality for a given market

    Localization = translation

    Localizable = ready for translation Resources

    Application elements (error messages, UI) to betranslated in localized versions

  • 8/8/2019 20 DotNetFr Globaliz c

    4/23

    Why include international support in

    the Framework ? Consistency

    .NET Framework is Unicode internally

    .NET Framework carries NLS+ classes, sortingtables Consistent results on Windows XP, Windows

    2000, Windows NT 4, Windows Millennium,Windows 98

    Note: there are a few limitations on down-levelUnicode support: Underlying operating system limitations Windows Code pages File I/O

  • 8/8/2019 20 DotNetFr Globaliz c

    5/23

    System

    System.Data System.Xml

    System.Web

    Globalization

    Diagnostics

    Configuration

    Collections

    Resources

    Reflection

    Net

    IO

    Threading

    Text

    ServiceProcess

    Security

    Design

    ADO

    SQLTypes

    SQL

    XPath

    XSLT

    RuntimeInteropServices

    Remoting

    Serialization

    Serialization

    Configuration SessionState

    Caching Security

    ServicesDescription

    Discovery

    Protocols

    UIHtmlControls

    WebControls

    System.Drawing

    Imaging

    Drawing2D

    Text

    Printing

    System.WinForms

    Design ComponentModel

    .NET Framework Namespace

  • 8/8/2019 20 DotNetFr Globaliz c

    6/23

    System.Globalization Namespace

    Includes classes for functionality such as: Culture-aware string comparison

    AABC vs. ABCC (ordinal: codepoint values) Cot vs. Cte (culture dependent)

    Date &Time formatting yy/mm/dd vs. dd/mm/yy

    Numeric formatting 12,000.00 vs. 12.000,00

    Calendars Gregorian and non-Gregorian

    Starting point : the CultureInfo class

  • 8/8/2019 20 DotNetFr Globaliz c

    7/23

    CultureInfo

    Provider of cultural preferences

    Two roles CurrentCulture

    Date and number formatting String comparison and casing

    CurrentUICulture Resource selection for user interface

    Can be controlled on a per thread basis

    RFC 1766 derived hierarchy

    CultureInfo.CreateSpecificCulture Optional mapping from neutral to specific

  • 8/8/2019 20 DotNetFr Globaliz c

    8/23

    CultureInfo

    Cultural preferences provider

    Invariant culture culture-invariant default

    Neutral culture Based on language

    Resource only

    No formatting

    CurrentUICulture only

    Specific culture Based on language & region

    Resource & Formatting specifics

    CurrentCulture & CurrentUICulture

    invariant

    de

    de-AT

    de-CH

    de-DE

    de-LI

    de-LU

    en

  • 8/8/2019 20 DotNetFr Globaliz c

    9/23

    CultureInfo and related classes Demo

  • 8/8/2019 20 DotNetFr Globaliz c

    10/23

    How to Set Culture and UICulture

    Implicitly CurrentUICulture

    Picked up from GetUserDefaultUILanguage

    On Windows XP and Windows 2000 MUI SKUs, thissetting can be set by end-user

    Otherwise, set from OS resources language

    CurrentCulture Picked up from GetUserDefaultLCID

    Affected by changes to

    Control Panel | Regional Options | Set Locale

  • 8/8/2019 20 DotNetFr Globaliz c

    11/23

    How to Set CurrentCulture, CurrentUICulture

    Explicitly Thread.CurrentThread.CurrentUICulture = new CultureInfo(ja)

    Thread.CurrentThread.CurrentCulture = new CultureInfo(ja-JP)

    Thread.CurrentThread.CurrentCulture =

    CultureInfo.CreateSpecificCulture(Request.UserLanguages(0))

    Within an individual API that takes a culture Str = DateTime.Now.ToString(cultureInfo);

  • 8/8/2019 20 DotNetFr Globaliz c

    12/23

    What if I dont want formatting to

    change by culture?

    For UI, prefer culture-sensitive formatting

    However, for wire-transfer, databasestorage, you may want stable, culture-

    unrelated format, such as #,###.##

    dd MMMM yyyy HH:mm:ss GMT

    international currency symbol

    Use CultureInfo.InvariantCulture

  • 8/8/2019 20 DotNetFr Globaliz c

    13/23

    Culture-aware Classes

    Any API which takes a culture, or anIFormatProvider

    Culture-sensitive by default

    Examples System.Globalization.CompareInfo

    System.Globalization.StringInfo

    System.G

    lobalization.Calendar System.Resources

    System.DateTime

    System.String

  • 8/8/2019 20 DotNetFr Globaliz c

    14/23

    Culture-aware Classes

    Calendar classes Includes support for

    Gregorian Calendar

    Hebrew Calendar Hijiri Calendar

    Japanese Calendar

    Julian Calendar

    Korean Calendar

    Taiwan Calendar

    Thai Buddhist Calendar

    Base Calendar class from which customcalendars can be derived

  • 8/8/2019 20 DotNetFr Globaliz c

    15/23

    Culture-aware Classes

    DateTime Provides methods that enable culture-sensitive

    operations on a DateTime.

    Use the DateTimeFormatInfo Class to formatand display a DateTime based on culture.

    DateTimeFormatInfo Defines how DateTime values are formatted

    and displayed, depending on the culture.

  • 8/8/2019 20 DotNetFr Globaliz c

    16/23

    Culture-aware Classes

    NumberFormatInfo Defines how currency, decimal separator and

    other numeric symbols are formatted and

    displayed based on culture

  • 8/8/2019 20 DotNetFr Globaliz c

    17/23

    Culture-aware Classes

    CompareInfo Provides a set of methods that can be used to

    perfomr culture-sensitive string comparisons

    The CultureInfo class has a CompareInfoproperty that is an instance of theCompareInfo class

    The String.Compare method uses the

    information in the CultureInfo.CompareInfoproperty to compare strings

  • 8/8/2019 20 DotNetFr Globaliz c

    18/23

    Unicode support

    Unicode everywhere Unicode internally

    UTF-8 and UTF-16 encoding classes

    String operations Surrogates & Combining characters support

    Character type information Based on Unicode 3.0 tables

    Unicode category enumeration

    CultureInfo data Caveats

    OS dependent operations Controls support

    File System

  • 8/8/2019 20 DotNetFr Globaliz c

    19/23

    ASP.NET And International ASP.NET delivers improved support for

    international application development: Can leverage .NET Framework base classes

    System.Globalization

    System.Text (encodings)

    System.Resources

    Can separate resources from source code

    Unicode-enabled

    More options for specifying encoding

  • 8/8/2019 20 DotNetFr Globaliz c

    20/23

    ASP.NET

    setting culture and encoding:

    ProgrammaticallyThread.CurrentThread.CurrentCulture =.

    In a Page directive

    In a Configuration file (web.config)Per application or per machine

    The most specific setting has precedence : Programmatic overrides Page Directive,

    Page Directive overrides Configuration file

  • 8/8/2019 20 DotNetFr Globaliz c

    21/23

    ASP.NET Demo

  • 8/8/2019 20 DotNetFr Globaliz c

    22/23

    Additional References

    Documentation .NET Framework SDK:

    Developing World-Ready Applications Tutorials

    Samples Visual Studio :

    Visual Studio.NET\Visual Basic and VisualC#\Globalizingand Localizing\Walkthroughs

    General info on .NET Framework: http://msdn.microsoft.com/net http://www.GotDotNet.com

    General info on globalization: http://www.microsoft.com/globaldev

  • 8/8/2019 20 DotNetFr Globaliz c

    23/23

    Questions ?