The Company…. The Market Leader in Globalization Technology –Pioneers in visual translation environments –Solutions for major platforms & programming languages –24.9% owned by Corel Corporation –Sales growing 60+% annually –Currently 10,000+ customers worldwide –Offices in Ireland and USA
Our Product… Alchemy CATALYST delivers :- –Speed –Speed : Faster delivery of products to market –Consistency –Consistency : Automate product revisions with glossary and translation memory tools –ReducedCosts –Reduced Costs : Reduced QA/Engineering and Translation times using integrated environment Consistency Speed Reduced Costs
Agenda What is Microsoft.NET ? –NET Framework –NamesSpaces – System.Globalization –Launching a.NET Application Develop a.NET Application –Multi-Lingual Application –Create code to switch UI language Localizing a.NET Application –Creating different language Cultures –Re-integrating translations QA 60 mins
What is Microsoft.NET ? Microsoft's platform for building, deploying, operating and integrating Web services –Rich XML, standard protocols –Cross-language development –Common language runtime Common type system for all languages Rich runtime environment –Rich class libraries (.NET Framework) Windows Forms for rich, Win32 applications Web application platform ASP.NET Multi-lingual support –Rich API for internationalization features=
.NET Framework .NET Framework –Globalization Namespaces –Culture-sensitive classes –Resource Model ASP.NET –International Support –Localization Options VisualStudio.NET –Unicode Development Environment –XML –Unified IDE VB, C#, C++
.NET Framework 100% Unicode internally –Supports UTF-8 and UTF 16 encoding schemes Consistent operations –Windows XP, Windows 2000, NT 4.0, 98, 95 etc. Supports all NLS (Locale Support) –Collation Tables –String Comparisons –Language Processing (Casing etc.) –Currency, Date & Time etc.
Globalization Namespaces Heart of the.NET Framework System.Globalization –Core NLS services (Date/Time, Currency, String management etc.) System.Resource –Multi-Lingual Resource Services System.Text –Core character conversion Services. (To/From Unicode) Security Threading Text ServiceProcess I/O Reflection Net Resources Globalization Collections Diagnostics Serialization System
System.Globalization Culture-aware String Services –String Management Casing, Comparison, Collation, Segmentation, Enumeration etc. –Date/Time Formatting dd/mm/yy, yy/mm/dd –Numeric Formatting 12,000,000 and –Calendar Support Gregorian, non-gregorian Our focus today :- –CultureInfo ClassLocales
System.Globalization.CultureInfo Information about specific cultures (Locales) –CurrentCulture String casing and comparison Collation Numeric Formatting Culture Names –RFC 1766 Standard - de-ATde-CHde-DE Thread.CurrentThread.CurrentCulture = new CultureInfo(“es-ES"); CultureInfo CurrentUICulture CurrentCulture
System.Globalization.CultureInfo Setting the UI of a.NET application If not specified,.NET framework sets it for you ! –GetUserDefaultUILanguage –(ie UI Language of the OS) Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr"); CultureInfo CurrentUICulture CurrentCulture System. Globalization
Launching.NET Applications CultureInfo CurrentUICulture CurrentCulture using System.Globalization; fr-FR Thread.CurrentThread.CurrentCulture = new CultureInfo(“fr-FR"); French France Set UI Language to French, using Regional settings for France ! Example 1 LocaleLanguage
Launching.NET Applications CultureInfo CurrentUICulture CurrentCulture using System.Globalization; fr-CA Thread.CurrentThread.CurrentCulture = new CultureInfo(“fr-CA"); French Canada Set UI Language to French, using Regional settings for Canada ! Example 2 LocaleLanguage
Launching.NET Applications CultureInfo CurrentUICulture CurrentCulture using System.Globalization; en-CA Thread.CurrentThread.CurrentCulture = new CultureInfo(“en-CA"); English Canada Set UI Language to English, using Regional settings for Canada ! Example 3 LocaleLanguage
Launching.NET Applications de-AT de-DE de-LU de-CH Root.NET Application de ja Application Directory CultureInfo CurrentUICulture CurrentCulture RFC 1766 Standard Directory Structure Filename(s)
Launching.NET Applications de-AT de-DE de-LU de-CH Root.NET Application de ja Application Directory CultureInfo CurrentUICulture CurrentCulture Thread.CurrentThread.Current UICulture = new CultureInfo(“ja");
Launching.NET Applications de-AT de-DE de-LU de-CH Root.NET Application de ja Application Directory CultureInfo CurrentUICulture CurrentCulture Thread.CurrentThread.Current UICulture = new CultureInfo(“de");
Launching.NET Applications de-AT de-DE de-LU de-CH Root.NET Application de ja Application Directory CultureInfo CurrentUICulture CurrentCulture Thread.CurrentThread.Current Culture = new CultureInfo(“de- CH");
Launching.NET Applications de-AT de-DE de-LU de-CH Root.NET Application de ja Resource Fallback Mechanism CultureInfo CurrentUICulture CurrentCulture Fallback mechanism used to locate appropriate resources de-CH –Attempt to load de-CH resource assemble de –If not available, load de assembly default –If not available, load default application resources exception –Else raise an exception! 1 2 3
Building.NET Applications Resources are defined in XML documents –RESX Files Filenames are significant –Main1.resx –Main1.fr.resx –Main1.de.resx Satellite Assemblies –For each language variant.resx file.resource file.resource.dll file Compilation Process
Building.NET Applications Resources are defined in XML documents –RESX Files Filenames are significant –Main1.resx –Main1.fr.resx –Main1.de.resx Satellite Assemblies –For each language variant RESX Structure Main1.resx Main1.fr.resx
Building.NET Applications Resources are defined in XML documents –RESX Files Filenames are significant –Main1.resx –Main1.fr.resx –Main1.de.resx Satellite Assemblies –For each language variant RESX Structure Main1.resx Main1.fr.resx Main1.de.resx
Building.NET Applications Resources are defined in XML documents –RESX Files Filenames are significant –Main1.resx –Main1.fr.resx –Main1.de.resx Satellite Assemblies –For each language variant Satellite Assemblies Main1.resx Main1.fr.resx Main1.de.resx Root.NET Application de fr Application Directory
Building.NET Applications Resources are defined in XML documents –RESX Files Satellite Assemblies –For each language variant Filenames are significant –Main1.resx –Main1.fr.resx –Main1.de.resx Our First.NET Application Simple.NET Application En, Fr, De Languages Menu, Dialog, Strings Rich Text Editor
Translating.NET Applications Satellite Assemblies Translation Process –Insertion –Translation –Extraction Application Rebuild –Microsoft C# compiler Application Directory Structure LrcApp.Exe de en fr Localization Process –.resx
Questions