Think Global! Custom Cultures and International Data Matt Ayers Program Manager Windows International Achim Ruopp Program Manager Developer Globalization.

Slides:



Advertisements
Similar presentations
The creation of "Yaolan.com" A Site for Pre-natal and Parenting Education in Chinese by James Caldwell DAE Interactive Marketing a Web Connection Company.
Advertisements

© 1998, Progress Software Corporation 1 Migration of a 4GL and Relational Database to Unicode Tex Texin International Product Manager.
Advanced.Net Framework 2.0 David Ringsell MCPD MCSD MCT MCAD.
Building International Applications with Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corporation.
Unicode and Windows XP Cathy Wissink Program Manager Globalization Infrastructure, Design and Development Windows International Microsoft.
 Yaniv Feinberg Senior SDE Microsoft Corporation  Erik Fortune Principal Dev Lead Microsoft Corporation PC52.
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Internationalization of Java Platform Presenter: Ataru Nakazawa Advisor: Xiaoping Jia Date: January 23, 2004.
Managing Employee Earnings Statements: PAYSTUB 3.0 A centralized, intranet-based application used to view employee earnings statements online Published:
ESupport Shifting Customers to the Internet for Support Published: January 2002.
DEV450 Visual Studio: Best Practices For Debugging Managed Applications Habib Heydarian Scott Nonnenberg Program Managers Microsoft Corporation.
IIS 7: The Next Generation Web Application Server Platform Michael Volodarsky Program Manager Web Platform and Tools Team Microsoft Corporation.
Windows XP Language Interface Packs (LIPs) - Localized OSs for the Masses Russ Rolfe Program Manager.
Configuring PHP on IIS7 Making your application rock on IIS7 Taking advantage of the Windows platform Q&A at Open Space.
26 April 2001 Unicode and Windows XP, IUC 18 (Hong Kong) Unicode and Windows XP Cathy Wissink Program Manager, Globalization Windows Division Microsoft.
Creating Multi-lingual Applications and Websites with Microsoft Visual Studio 2005 Achim Ruopp International Program Manager Microsoft Corporation.
Developing International Applications for Mobile Devices with.NET Achim Ruopp International Program Manager Microsoft Corporation.
Punit Shah Technical Lead | Microsoft
04 | Customize Team Foundation Server for Team Use Anthony Borton | ALM Consultant, Enhance ALM Steven Borg | Co-founder & Strategist, Northwest Cadence.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
San José, CA – September, 2004 Localizing with XLIFF and ICU Markus Scherer Raghuram (Ram) Viswanadha IBM San.
Sakai: Localization & Internationalization Beth Kirschner University of Michigan
Module 1: Introduction to C# Module 2: Variables and Data Types
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
WEB326 ASP.NET 2.0: Going Global Gets Easier! New Localization Features in ASP.NET 2.0 Michele Leroux Bustamante Architect, IDesign Microsoft Regional.
The Company….  The Market Leader in Globalization Technology –Pioneers in visual translation environments –Solutions for major platforms & programming.
Enter into new markets more easily Lower cost and time for development and translation Increase customer satisfaction and adoption Avoid costly mistakes.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Globalization Support in Microsoft.NET Framework François Liger Program Manager Microsoft Corporation.
10 – 12 APRIL 2005 Riyadh, Saudi Arabia. Building multi-lingual ASP.Net application that handle western languages and Arabic with a single code base.
DEV382 Building International Applications with the.NET Framework Christian Nagel Microsoft Regional Director Global Knowledge.
Visual Studio 2005 Team System Winning the testing space with advanced testing tools Eric Adams Program Manager Visual Studio 2005 Team System Microsoft.
Oracle9i Database Administrator: Implementation and Administration 1 Chapter 14 Globalization Support in the Database.
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
Localization Support in Microsoft.NET Framework François Liger Program Manager Microsoft Corporation.
WEB320 Migrating ASP.NET 1.x Applications to ASP.NET 2.0 Stefan Schackow Program Manager Web Platform and Tools Team Microsoft Corporation.
Internationalization in ASP.NET 2.0. SQL Server 2005 – Data Columns Use Unicode datatypes in: Table columns, CONVERT() and CAST() operations Use Unicode.
DEV330 Visual Studio.NET IDE Tips and Tricks Billy Hollis Author / consultant.
Week 7 Lecture 2 Globalization Support in the Database.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation.
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
Arend-Jan Speksnijder Solutions Architect Microsoft Dynamics Lighthouse team Dynamics AX2009 Technical Overview and Demo (DYN301)
ARC303 Planning a Global Release: Many Countries, Many Languages, One Process Houman PournassehRuss Rolfe Program ManagerProgram Manager Global Platform.
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
Success through People with LinkedIn and O365
5/9/2018 9:30 AM BRK2215 Deliver better experiences with SharePoint Patterns and Practices Community Solutions Mike Ammerlaan Product Marketing Manager,
5/15/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Metropolia 2013 C# programming and .NET framework
Use any Amazon S3 application with Azure Blob Storage
Easily manage SQL everywhere from anywhere with SQL tools
6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft.
Developing Hybrid Apps on Microsoft Azure Stack
Lessons learned from moving to Microsoft Azure
Understanding Multi-Geo Capabilities in Office 365
Enterprise Library Overview
Group Policy in MDM: Dealing with ADMX backed policies
Bring existing desktop apps to UWP with the Desktop Bridge
DAT381 Team Development with SQL Server 2005
Visual Studio 2005 Tools For Office: Creating A Multi-tier Application
Visual Studio 2010 SharePoint Development Tools Overview
MULTILINGUAL USER INTERFACE
From Development to Production: Optimizing for Continuous Delivery
Building Business Applications in LightSwitch
TechEd /27/ :51 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
From Development to Production: Optimizing for Continuous Delivery
5/8/2019 3:20 AM bQuery-Tool 3.0 A new and elegant way to create queries and ad-hoc reports on your Baan/Infor ERP LN data. This Baan session is a query.
Office 365 Development July 2014.
Introduction to ASP.NET Parts 1 & 2
Presentation transcript:

Think Global! Custom Cultures and International Data Matt Ayers Program Manager Windows International Achim Ruopp Program Manager Developer Globalization Microsoft Corporation

The Global Software Market Global PC Market in 2010? Source: Number of PCs in millions Emerging Markets US, Europe, Asia- Pacific Current Install Base

The Global Software Market Languages in Florida Source: U.S. Census 2000 ( English spoken at home 77% Other language sometimes or always spoken at home 23%

Reasons to Go Global Increasing market Multinational enterprises Flexibility Web-based applications or distribution International data exchange

Internationalization Global user expectations World Ready Localized Text and data are stored in a culture-neutral format Market Specific The User Interface is translated Features are added that are specific to a given culture

One Code Base

.NET Framework Internationalization Built-in data and functionality for many different cultures Best practices How to exchange data How to customize and extend.Net Framework cultures

Quick Quiz In what month does the following day fall? 03/01/2005 a. March? b. January? c. None of the above. d. Not enough info.

Formatting Dates and Culture Explorer Achim Ruopp International Program Manager Developer Globalization

Culture-Dependent Data API supported Numeric formats Currencies Measurement systems Date/Time formats Time Zones (limited) Calendars Character encoding Capitalization Collation (Sorting) Word breaking (limited) Character output/fonts Character input/ keyboard layouts Bi-Directional layout Multi-lingual UI not API supported Paper sizes Address formats Phone number formats Measurement conversion Exchange rates Taxation Compliance with local laws Business conventions

CultureInfo and RegionInfo In the.Net Framework, culture- dependent data is managed by the CultureInfo and RegionInfo classes CultureInfo is used to Format data Load resources Set rules for comparing strings Thread settings CurrentCultureCurrentUICulture

Framework Cultures Over 200 cultures will ship in.Net Framework 2.0 Two types of cultures Specific Identified by language and region Neutral Language only Only used for resource loading

Handling Different Data Formats in one Code Base

Formatting Principles Business Logic/Data Layer 1. Store and transmit the data in culture-invariant format 2.Store as binary data where possible 3. Store additional meta information where necessary User Interface Layer 1. Parse and display data in format the user expects 2. Respect user preferences wherever possible

Formatting and Parsing Formatting Standard formatting characters Custom formatting characters Parsing Configurable with styles TryParse – no conversion exceptions ParseExact for date/time values Type Object Culture-appropriateString Formatting Parsing

Numbers Numeric Formats Store as binary data type if possible Integer, decimal, floating-point Invariant storage as text Format using CultureInfo.InvariantCulture Use standard format character “R” (reversible) for floating point numbers CultureFormatResult en-USN123, fr-FRN ,78 hi-INN1,23, "" (invariant) R

Numbers Non-Arabic Numerals Not supported by regular formatting and parsing yet Use new functions in CharUnicodeInfo GetDecimalDigitValueGetNumericValueGetDigitValue Arabic-Indic٤٣٢١1234 Ideographic〧〥75 Number symbols ¼0.25 …

Numbers Currencies Preferably store as decimal with meta data CultureDateTime Use 3 rd party service for conversion When storing as text use invariant culture Reversible text floating-point format Currency text format: ¤1,000, decimal dec = decimal.Parse("$ ", NumberStyles.Currency,CultureInfo.CurrentCulture); System.Console.WriteLine("{0:C}", dec); Output: $1,000,000.23

Numbers Measurement Systems

Dates and Times Formats Dates – short date format 03/01/2005 in the United States 01/03/2005 in Ireland in Russia in Korea Times – short time format 2:30 PM in the United States 14:30 in Japan 오전 2:30 in Korea

Dates and Times What is a DateTime object? Number of ticks (100 nanosecond units) since January 1, 0001 A.D. (Gregorian calendar) Time Zone – Local vs. UTC v1.x: No information about if DateTime is Local or UTC v2.0: Information intrinsic/definable No possibility yet to convert from one time zone to the other Use UTC for ArithmeticStorageTransmission Daylight saving time

Dates and Times DateTime Formatting/Parsing Controlled by DateTimeFormatInfoCalendar Gregorian calendar is default for DateTime Invariant text formats R or r (RFC1123) Thu, 09 Jun :30:00 GMT s (ISO 8601) T13:30:00 yyyy-MM-ddTHH:mm:sszzzzz (XML) T13:30:00-07:00

Sorting and Comparing Text Achim Ruopp International Program Manager Developer Globalization

Text Representation Unicode (UTF-16) is data type for text “Parsing” text Deal with strings wherever possible Character processing - text elements Combining characters é = e + é = e + Unicode surrogate pairs Combination of two 16-bit values to identify character Improved support for processing text elements in v2.0 Unicode Standard Normalization available in v2.0

Text Sorting and Comparison Comparison just a special case of sorting For culture-appropriate comparison use StringComparison.CurrentCulture For culture-agnostic comparison use StringComparison.OrdinalStringComparison.OrdinalIgnoreCase ToUpperInvariant for upper casing More performant Less likely to change over time

Verifying globalization using FxCop Achim Ruopp International Program Manager Developer Globalization

Verification using FxCop FxCop – a static code analysis tool Downloadable from GotDotNet website Visual Studio Team Developer: full version Contains rules for checking GlobalizationLocalizability

Extending the Framework

Over 6 billion people on the planet, even 200 cultures just isn’t enough You can expand cultures through User overrides Custom cultures Windows Data Derived cultures

User Overrides Per-user setting affecting the current default culture. Set using regional options in Windows Limited set of customizable fields Only in effect for CurrentCulture w/ UseUserOverride = True Available in all versions of the.Net Framework

Custom cultures Are installed for all users on a machine Allow you to set more fields than user overrides Can either replace a culture that ships with.Net Framework or add to the set of Framework cultures

Creating a custom culture The old way – override CultureInfo Cumbersome Only works for a specific application Difficult to maintain Some APIs clone before using

Creating a custom culture The new way – use the CultureAndRegionInfoBuilder (CARIB) Portable Works for all users and all applications Creates a CultureInfo object that is the same as those that ship with the Framework

Supplemental Cultures Use supplemental cultures to expand the set of cultures available in the.Net framework Some limitations Single custom LCID No custom collations or calendars Display name is same as native name

Create A New Culture Spanish in the U.S.

// Set the native name and DateTimeFormat information to Spanish carib.CultureNativeName = “Español (Estados-Unidos)”; carib.GregorianDateTimeFormat = ciES.DateTimeFormat; // Keep the United States’ time pattern carib.GregorianDateTimeFormat.LongTimePattern = ciUS.DateTimeFormat.LongTimePattern; [...]

Create A New Culture Spanish in the U.S. // Deploy the Culture on this machine carib.Register(); // Instantiate a new CultureInfo from our new data CultureInfo ci = new CultureInfo("es-US");

Create the Supplemental Culture es-US Matt Ayers Program Manager Windows International

Replacement Cultures

Important Note! If an admin replaces a culture, applications can not access the Microsoft definitions Use CultureInfo.CultureTypes property to determine if a CultureInfo represents a replacement culture If ((ci.CultureTypes & CultureTypes. ReplacementCultures) != 0) {…}

Windows Data Derived Cultures Used when a culture does not exist in the.Net Framework but is available as a Windows Locale For example: zu-ZA, cy-GB, mt-MT The.Net Framework uses data from the Windows Locale to create a CultureInfo

Interoperability & Migration Non-Microsoft Platforms Use CultureAndRegionInfoBuilder.Save to generate LDML files Use CultureAndRegionInfoBuilder.Load to read LDML files Note that most non-Microsoft LDML files will require some tweaking before calling Register()

Conclusion To ship a global-ready application, you must use data-formatting tailored to your target market With some planning, you can make a global-ready application from the beginning and save time and money down the road Net Framework 2.0 allows users to expand the set of available formats

Resources Resource 1: Microsoft GlobalDev WebsiteGlobalDev Website Resource 2: Developing International Software 2 Dr. International (available at the TechEd store) Resource 3: Globalization & Localization in Visual Studio Globalization & Localization in Visual Studio Resource 4: Send mail to Dr. InternationalDr. International Resource 5: Internationalization newsgroupInternationalization newsgroup Resource 6: Globalization Handbook for the Microsoft.Net Platform Bill Hall Resource 7: Blogs Sorting it All Out Tales from the Crossroads Sorting it All Out Tales from the Crossroads

Resources Tech-Ed 2005 International Break-out Sessions Title Code ASP.NET 2.0: Going Global Gets Easier! New Localization Features in ASP.NET 2.0 WEB326 Deploying Office 2003 in a Multilingual Environment DSK345 Deploying Windows XP in a Multilingual Environment DSK350 Databases for the World: Best Practices for Search in Multilingual Data Sets Using SQL Server Collation for Sorting and Indexing DBA319 Microsoft Business Solutions–Axapta: A Truly Global Business Application BAP347 Supporting East Asian Languages in Global Exchange Deployments MSG369.NET Framework: Think Global! Custom Cultures and International Data DEV323 Databases for the World: Designing Multilingual Databases Using SQL Server 2005 DAT290 Planning a Global Release: Many countries, Many Languages, One Process ARC303

Resources Tech-Ed 2005 International Cabana Talks Dr. International’s Clinic Booth in the Community Cabana International Experts available all week longTitle Code Custom Cultures in Whidbey: An In-Depth Discussion DEVC21 Advanced Localization Architecture DEVC19 Windows XP MUI: Keeping it Localized & Secure DSKC07 Meet the Speakers From ARC303: Planning a Global Release ARCC04

Your Feedback is Important! Please Fill Out a Survey for This Session on CommNet

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Resources (URL format) Resource 1: Resource 2: Developing International Software 2 Dr. International Resource 3: us/vbcon/html/vxoriGlobalizationLocalizationNamespaces.asp us/vbcon/html/vxoriGlobalizationLocalizationNamespaces.asp Resource Resource 5: news:microsoft.public.dotnet.internationalization news:microsoft.public.dotnet.internationalization Resource 6: Globalization Handbook for the Microsoft.Net Platform Bill Hall Resource 7: