Click Here to Install Silverlight*
IndiaChange|All Microsoft Sites
MSDN
|Developer Centers|Library|Downloads|How To Buy|Subscribers|My MSDN
 
Chat Transcript
 
Writing International Applications with .NET Framework
Host
: Deepak Gulati, Applications Developer, Microsoft India
May 16, 2002
 
KunalS_MS: Good afternoon to all present

KunalS_MS: Today's expert chat is on Developing International Applications on .NET Framework and our expert host is Deepak Gulati

KunalS_MS: Deepak is an Applications Developer in Microsoft and develops internal tools for Microsoft.

Deepak[MS]: Hi Everyone

KunalS_MS: Today Deepak shall be sharing with you his experience of developing applications used across multiple international regions and what it takes to develop them in the .NET Framework

Guest: I would like to know about .NET's built in support for Indian languages?

Deepak[MS]: Ok .NET framework has support for over 130 cultures... Indian language support is just a part of that

Deepak[MS]: .net defines 3 types of cultures - the invariant culture, the neutral culture and the specific culture

Deepak[MS]: invariant culture is used for storing/displaying data in a culture independent manner, neutral culture usually refers to just the language

Deepak[MS]: specific culture is where all the languages and regions come into play

Deepak[MS]: you can start by looking at CultureInfo class

Guest: How to explore it?

Deepak[MS]: first make sure that you have Indic support installed with your OS

Deepak[MS]: I have put together a set of instructions at http://www16.brinkster.com/deepakcodes/chat/instructions.htm

Deepak[MS]: Once you have OS ready, you can start using CultureInfo class with Indian cultures

Deepak[MS]: The framework docs list all the cultures that are supported - depending on which region in India you are targetting, you could use an appropriate culture

Guest: What impact does a language have on software development?

Deepak[MS]: Well there are 2 kinds of issues that you will run into - "Globalization" issues and "Localization" issues

Deepak[MS]: Globalization issues will typically mean that you cannot handle date/time/currency etc. for a different culture correctly

Deepak[MS]: e.g. an app done for US will fail for England - although the language is the same

Deepak[MS]: localization would involve enabling the UI of the app for a particular language

Deepak[MS]: here is something I developed using ASP.NET to demonstrate Indian language support

Guest: Do u have a sample app which we guys can explore ?

Deepak[MS]: http://www.dotnetbips.com/msdemo/wiachat/default.aspx

Deepak[MS]: when you visit this page - you will see a normal page with english UI, you can then click on the language name to toggle the UI for each language Guest: We develop applications for the middle east market , one question that keeps coming up is do we save the data in the database in that particular language or unicode, how will .NETaddress this?

Deepak[MS]: First thing you need to make sure is that your data is being stored correctly...

Deepak[MS]: visit http://www.microsoft.com/globaldev/articles/articles.asp

Deepak[MS]: you'll find an excellent white-paper on SQL 2000 and international support in it

Guest: For some reason i can see only ASCII characters on the page and no language, any ideas?

Deepak[MS]: do you have Indic support installed ? http://www16.brinkster.com/deepakcodes/chat/instructions.htm

Guest: How is developing internet applications with .NET is different from the previous ones?

Deepak[MS]: The .NET globalization support is phenomenal! .NET framework was written with typical globalization/localization people face in mind

Deepak[MS]: All the date/time/number formatting functions are culture aware - plus .net makes it very easy to take a culture and extend it

Deepak[MS]: e.g. if you come across a new culture where you have * symbol used as thousand separator, you can modify the NumberFormatInfo to make it use as thousand separator

Guest: It means that we can make culture neutral applications which would adapt to the culture they are deployed, right?

Deepak[MS]: Yup - as long as you explicitly set the culture for your app - it shouldn't break in a new culture

Guest: I have Win NT on my notebook which i am using, any ideas if i can get Indic on that?

Deepak[MS]: I am not sure if NT supports Indic cultures out of the box - you should be looking at upgrading to Win2k at least

Guest: So would that be a limitation if my clients have Win NT boxes?

Deepak[MS]: Yup - it could be - but let me verify this for you.. I have personally not seen NT in last 3 years - and I don't think its a supported platform for asp.net

Deepak[MS]: Actually IE supports Unicode, so with the right fonts installed it should work for NT clients - 95,98 things might get a little messy

Guest: How do I set the FrontPage Extensions on my Win2000 Server? Please give the path to it?

Deepak[MS]: FrontPage extensions can be installed from Control Panel -> Add Remove Programs -> Add Remove Windows Components.. and please keep your questions relevant to chat topic

Guest: When I am deploying .NET based apps which were developed suppose in Arabic do I need to tell my customers that they need to upgrade their workstations too to Win 2000?

Deepak[MS]: Installing appropriate fonts for Arabic on your clients should take care of it

Deepak[MS]: I haven't verified this - but give it a try and let me know

Guest: But is there any way that u can write the control panel settings of Indic Support with the help of Codes?

Deepak[MS]: Nope - but this can be done as part of the setup - you can automate the setup to make sure Indic support is installed

Guest: What are the Limitations of writing International application with .NET right now?

Deepak[MS]: None that I can think of! As long as you have the appropriate culture installed - it¡¦s a breeze!

Deepak[MS]: Ok may be one - we don't yet support localized digits in calendar.. e.g. Hindi has its own characters for digits - they are not yet supported

Deepak[MS]: the same is true for many other Indic and Arabic culture

Guest: I want to develop the site for charity organization in Gujrati on windows 2000. Content is available in softcopy and some of the content needs to be prepared by typing on my PC. Can you guide how can i do this with windows 2000 server?

Deepak[MS]: You are in Good Luck - Gujarati is supported by .NET - just have the appropriate Indic culture installed and you should be able to use it.

Deepak[MS]: for typing in Gujarati content you can use Word 2000/XP with appropriate Input Method Editor

Deepak[MS]: take a look at http://www.microsoft.com/india/office/

Deepak[MS]: you can use SQL Server to store content without any problems

Deepak[MS]: href="http://www.microsoft.com/india/office/indic/hindi/uni/, http://www.microsoft.com/india/office/indic/gujarati/uni/

Guest: Long-format or short -format dates are different in different locations/culture. Then how .NET helps to communicate information correctly?

Deepak[MS]: Your date time formatting is governed by Culture of your current thread

Deepak[MS]: so set the Thread.CurrentThread.CurrentCulture to appropriate CultureInfo and you should be fine

Guest: Will you suggest any guideline or rules to follow while developing an international application?

Deepak[MS]: There is a book by Nadine Kano - that has some general stuff on how to do Internation Applications

Deepak[MS]: The book is shipped with MSDN documentation, unfortunately it is not .NET specific.. but it does cover fair bit of guidelines

Deepak[MS]: also look http://www.microsoft.com/globaldev - you'll find lots of material there

Guest: What if my application spans 2 -3 cultures, how do i manage this?

Deepak[MS]: You can use multiple CultureInfo objects

Deepak[MS]: you can even change the culture of your current thread at runtime

Deepak[MS]: Take a look at this demo http://www.dotnetbips.com/msdemo/wiachat/

Deepak[MS]: it spans hi-IN (hindi) ta-IN (tamil) and Invariant culture

Guest: Can you suggest any URLs?

ĬNitin has joined the conversation.

Deepak[MS]: Global dev is your place http://www.microsoft.com/GlobalDev/gbl-gen/default.htm

Deepak[MS]: here is archive of some wonderful articles http://www.microsoft.com/globaldev/articles/articles.asp

Guest: We had resource files for multiple language support in VB 6.0. Is it still supported in .NET? Is there any upgrade in that concept?

Deepak[MS]: It is very much supported! Resources are a key aspect of localization

Deepak[MS]: you can then generate satellite assemblies with just the resources and use the appropriate resource at runtime

Deepak[MS]: In fact dotnet lets you use resources with even asp.net applications!

Deepak[MS]: http://samples.gotdotnet.com/quickstart/howto/doc/createresources.aspx

Guest: Dynamic Fonts creation using WEFT tool of Microsoft is still supported? Any similar thing is available in .NET without downloading the dynamic fonts to client?

Deepak[MS]: Your clients will need Indic support installed.. I will get back to you on WEFT tool offline

Guest: Are these internationalization principles available to ASP.NET apps too?

Deepak[MS]: Most of what is applicable to Windows applications, is also relevant to ASP.NET as well

Guest: Are there any examples of Sites which have been developed using Globalization?

Deepak[MS]: Yes, almost all the content on Microsoft.com is localized!

Deepak[MS]: http://www.microsoft.com/china/

Deepak[MS]: http://www.microsoft.com/portugal/default.asp

Guest: If I have multiple culture in my application, will i have to use multithreading?

Deepak[MS]: Nope, you just need multiple cultureinfo objects - you can remain single threaded and handle multiple cultures

Guest: As far as Hindi is concerned what all would I need to install on client workstations which have Win 95, etc and who would be accessing ASP.NET pages?

Deepak[MS]: You will need Indic support on workstations.. I'll need to check if we support systems older than Win2K.. Windows 95 is not supported by MS any longer

Guest: In this url http://www.dotnetbips.com/msdemo/wiachat/, only English part works in my browser; I'm not able to see Hindi and Tamil. Why?

Deepak[MS]: Indic support is missing from your machine - http://www16.brinkster.com/deepakcodes/chat/instructions.htm

Guest: If I want to develop the German application what I need to do? I do not have the German content which needs to be prepared by key in? Can i store the German content in SQL Server? Do i require anything on client end? What is WEFT?

Deepak[MS]: Ok - you can use appropriate German culture (de- ) to make sure you are formatting date, time, currency etc. correctly

Deepak[MS]: for localizing the UI, you'll need to store your strings as resources - you'll need someone who knows German to do that

Deepak[MS]: German can be stored in SQL Server - German can be used without Unicode - check out SQL books online

Deepak[MS]: you can even try sp_helplanguage proc to get a list of all the supported collations

Deepak[MS]: WEFT - is a tool that allows you to do dynamic fonts and embed them in your .htm pages so that if a client without that font hits your page, they are automatically downloaded

Guest: I went to www.microsoft.com/china it asked me to download the component for Chinese support. But the component download failed. [Comment]

Deepak[MS]: Not sure why it should fail - if you want to browse Chinese correctly - you should install support for East Asian languages from control panel -> Regional options

Guest: Is there any way to find the server LCID programmatically, so that when it is served from UK i will have dd/mm/yyyy and if it is from US I will have mm/dd/yyyy?

Deepak[MS]: Yes you can inspect CurrentCulture of Thread.CurrentThread to get LCID

Deepak[MS]: though its lot easier to remember if you use the ISO names

Deepak[MS]: look at the LCID property of cultureinfo

Guest: I have a .NET Remoting server application which talks to existing Java client, of course using SOAP, HttpChannel, etc. When I decide to make my application as international but without affecting any existing clients...

Guest: ...does it have any facility like dynamic fonts or say anything else?

Deepak[MS]: Well depends on what your application does.. lets say its an mpeg compression algorithm - then you don't need to localize! Think what parts are exposed to users and then localize

Deepak[MS]: There is something called font-linking..

Deepak[MS]: lets say you are using Verdana - now Verdana might not have all the characters for all the languages - in this case it can "borrow" characters from other appropriate fonts and display

Deepak[MS]: you'll need the proper fonts installed though

Deepak[MS]: it happens behind the scene - without you having to do anything...

Deepak[MS]: it happens on client side.. yup

Guest: It happens on client side only?

Deepak[MS]: but its best to have the font name coded appropriately if you work with Far Eastern Languages

Deepak[MS]: there is a common region in Unicode CJK region Chinese Japanese Korean - which share some characters

Deepak[MS]: so the system might pick a Chinese font when it encounters a character form CJK region while rest of your string could be in Japanese

Deepak[MS]: not very pretty

Guest: Can u tell me where I can find these font files and how do i code for autodownload? Any URL might help.

Deepak[MS]: try http://www.microsoft.com/typography/

Guest: Can you suggest a link from where to download the WEFT?

Deepak[MS]: try the same link as above..

Deepak[MS]: or search for WEFT on http://search.microsoft.com/

Guest: CultureInfo.Calender supports any of the Indian Calendars?

Deepak[MS]: Nope... no Indian calendars are supported - though you can customize Gregorian calendar to use day/month names in Indian languages

Deepak[MS]: Gregorian Calendar, Hebrew Calendar, Hijri Calendar, Japanese Calendar, Julian Calendar, Korean Calendar, Taiwan Calendar and Thai Buddhist Calendar are supported currently

Guest: For internationalization, what are all the classes in the framework we have to look into?

Deepak[MS]: System.Globalization, System.Resources, System.Text

Deepak[MS]: These namespaces have classes that you should look into Guest: Will WEFT download the German and Gujrati fonts on client side if not available on client end?

Deepak[MS]: Yup.. It would.. as long as you package it correctly http://www.microsoft.com/india/office/ - look at the pages in local languages they do something similar

Deepak[MS]: you'll need to give the url in your style tag correctly for this to work.. WEFT's documentation should cover that

Deepak[MS]: Ok there were two aspects to it

Deepak[MS]: the front end localization was done using resources in different languages.. I knew Hindi so it was simple, I took help of a friend for doing Tamil Resources

Deepak[MS]: the backend is SQL Server and is using NVarChar to hold the data

Deepak[MS]: those of you who tried the demo, would have seen the SQL statement that was used for inserting data

Deepak[MS]: I'll share the source code of this demo application with all of you soon

Guest: Can you please give the demo link?

Deepak[MS]: http://www.dotnetbips.com/msdemo/wiachat/default.aspx

Deepak[MS]: Its the same default.aspx that uses resources to localize the UI

KunalS_MS: And we have reached the end of this long and very informative chat session

KunalS_MS: Firstly, thank you Deepak for taking time off to share your experience and also answer the queries

KunalS_MS: and surely thank you all for joining in and making this session a success

KunalS_MS: Please take 2 mins and tell us how satisfied you are with this community initiative - www.microsoft.com/india/communitysatsurvey http://www.microsoft.com/india/communitysatsurvey

KunalS_MS: Once again, thanks for joining in and thank you Deepak.

KunalS_MS: Bye All
     

©2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement
Microsoft