Localization Support in Microsoft 'NET Framework - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Localization Support in Microsoft 'NET Framework

Description:

Application elements (error messages, UI) to be translated in ... Farewell='Goodbye' Logo= graphic data French. No code 'fr' resources. Greeting = 'Bonjour' ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 26
Provided by: downloadM
Category:

less

Transcript and Presenter's Notes

Title: Localization Support in Microsoft 'NET Framework


1
Localization Support in Microsoft .NET
Framework
  • François Liger
  • Program Manager
  • Microsoft Corporation

2
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 be
    translated in localized versions

3
.NET Framework Namespace
System.Web
System.WinForms
Services
UI
Design
ComponentModel
Description
HtmlControls
Discovery
WebControls
Protocols
System.Drawing
Caching
Security
Drawing2D
Printing
Text
Configuration
SessionState
Imaging
System.Data
System.Xml
ADO
SQL
XSLT
Serialization
Design
SQLTypes
XPath
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Remoting
Diagnostics
Reflection
Text
Serialization
Globalization
Resources
Threading
4
System.Resources namespace
  • ResourceManager
  • Provides access to culture-correct resources at
    runtime.
  • ResourceWriter
  • Writes resources to an output stream or file
  • ResourceReader
  • Reads resources name-value pairs from resources
    files and streams
  • ResourceSet
  • Stores all resources localized for a particular
    culture

5
System.Globalization.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

6
CultureInfo
  • Neutral culture
  • Based on language
  • Resource only
  • No formatting
  • CurrentUICulture only
  • Specific culture
  • Based on language region
  • Resource Formatting specifics
  • CurrentCulture CurrentUICulture

7
Resource Model
  • .NET Framework uses a new resource model
  • ResX file format
  • Resources files
  • Satellite Resources DLLs
  • Naming conventions
  • Resource Fallback

8
ResX Files
  • Simple, (almost) human-readable XML format
  • Can include arbitrary objects
  • Created with .NET Framework SDK
  • Can also be created with Visual Studio
  • See other talk on this topic

9
Resource generation process
  • .resx file
  • XML-based file
  • Describes resources
  • .resources file
  • binary compiled file
  • Satellite .resources.dll
  • Embedded .resources file(s)

.resx file
.resources file
.resources.dll file
10
Naming convention
  • Naming pattern conventions
  • .resources files
  • ltmyprojectgt.ltxx-XXgt.resources
  • Satellite assemblies
  • ltmyprojectgt.resources.dll
  • Directory locations for satellites
  • A subdirectory per culture
  • either neutral or specific cultures can be used
  • Myproject.dll
  • \fr\myproject.resources.dll (neutral)
  • \de-DE\myproject.resources.dll (specific)

11
Resource Fallback
12
Loading Resources
  • Creating a Resource Manager
  • The RM constructor indicates the file from which
    resources are to be loaded.
  • Several alternatives
  • Load from a loose .resources file
  • Load from this assembly
  • Load from another assembly
  • Load from a custom resource format if you write
    your own resource manager (e.g. a database)
  • See .NET SDK, Samples and Tutorials, ASP.NET
    QuickStarts, and How Do I samples

13
Loading Resources, continued
  • Resource manager can be used to load both strings
    and objects
  • RM.GetString (mystring, new CultureInfo(en-NZ)
    )
  • RM.GetString (mystring)
  • RM.GetObject(Button1.Cursor)
  • Loads requested resources based on
    Thread.CurrentThread.CurrentUICulture
  • Fallback hierarchy derived from RFC 1766

14
Localization Process
  • Start with a .txt or a .resx file
  • .txt files (string data only)
  • .resx files (string data and arbitrary objects)
  • XML tools can be used with .resx files
  • External localization tools vendor support
  • Lionbridge, http//www.lionbridge.com
  • WinRes
  • Resize WindowsForms forms
  • WinRes does not require access to source
  • Visual Studio IDE integrates this capability
  • ResGen
  • Compile data to .resources binary files

15
Localization Process
  • AL (or compiler)
  • add .resources into assembly. (AL is an SDK
    linker)
  • al /tlib /cultureen-NZ /embedstrings.en-NZ.reso
    urces /outmyapp.resources.dll
  • Optional use SN for strong-naming
  • VS IDE add translated .resx file into project

16
ASP.NET And Localization
  • ASP.NET has a flexible resource model
  • There is not one single way to organize
    localizable resources
  • Applications vary developers can choose.
  • The following section shows a few alternatives.
  • .NET Framework SDK has additional samples
  • ASP.NET QuickStarts, localization section,
    working with resources files.

17
ASP.NET Localization Options
  • A Resources included in source (like ASP)
  • Copy of each page per language
  • Specify culture in page directive or web.config
  • Advantages
  • Good for static content
  • Rapid initial development
  • Disadvantages
  • High maintenance costs
  • Not suitable for dynamic content
  • Localizers and developers are working on the same
    source file. Potential for conflicting updates
  • Not recommended

18
ASP.NET Localization Options
  • B Resources separated from source
  • Use Resource Manager to load resources
  • Resources could be in
  • Loose .resources files
  • Satellites below each main assembly
  • A separate (parallel) main assembly with
    satellites below it
  • One .resources file or satellite per language
  • Slightly different ResourceManager constructors
    for each case

19
ASP.NET Localization Options
  • B Resources separate from source, continued
  • Advantages
  • Can deploy additional languages incrementally,
    without redeploying core code
  • Lower maintenance costs, as there is one central
    app, not many parallel versions.
  • Disadvantages
  • More files
  • Loose .resources can have locking issue.
  • No locking issue for satellites or parallel main
    assembly with satellites.
  • Shadow-copying done for exes and dlls (main
    assemblies and satellites).
  • Samples ASP.NET Quickstarts, Localization section

20
ASP.NET Localization Options
  • C Satellite Resource DLLs
  • Advantages
  • Can deploy additional languages incrementally,
    without redeploying core code
  • Lower maintenance costs, as there is one central
    app, not many parallel versions.
  • Shadow-copying done for exes and dlls (main
    assemblies and satellites).
  • Disadvantages
  • More files
  • Added initial application development complexity

21
Demo
  • Localizing a WebForm application

22
Summary
  • .NET Framework provides built-in support for
    localization and globalization
  • ASP.NET builds on Framework support for
    international app development
  • More options for specifying encoding
  • Can separate code from resources
  • Can utilize .NET Frameworks classes
  • Developers can develop/host multi-cultural apps
    on a single server
  • Visual Studio makes it easier to build localized
    apps
  • See Achim Ruopps talk

23
Additional References
  • .NET Framework SDK Tutorial
  • Resources and localization (includes tools)
  • .NET Framework SDK Samples
  • ASP.NET Quickstart Localization section
  • WinForms Quickstart Localization sample
  • How Do I samples Resources
  • Globalization
  • .NET Framework SDK Tools
  • ResGen, WinRes, AL, SN

24
Additional References
  • Documentation
  • .NET Framework SDK
  • Developing World-Ready Applications
  • Visual Studio
  • Visual Studio.NET\Visual Basic and
    VisualC\Globalizing and Localizing\Walkthroughs
  • General info on .NET Framework
  • http//msdn.microsoft.com/net
  • http//www.GotDotNet.com

25
Questions ?
Write a Comment
User Comments (0)
About PowerShow.com