views:

290

answers:

2

I've been searching on SO on how to do i18n support on my little application...

I know that Microsoft offers 'culture' classes, but you have to re-compile your application to include any new string you add. So, all I'm trying to do is to put all my strings in a external file and offers users the choice to translate the app without the need to recompile.

Is there an easy way to handle this ? Use XML, or INI-like ? any Tutorial available ? P.S: Trying to do this on C#... Don't bother if other languages

A: 

if you include a new string in your app, you have to recompile it anyway, do you not?

if you add languages often, resource files and/or satellite DLLs are probably your best bet

failing that, you can write your own provider. Here are some links I found useful, your mileage may vary:

http://en.csharp-online.net/Localization_Like_the_Pros

http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=211

http://www.codeproject.com/KB/aspnet/DeclarativeGlobalization.aspx

MS toolkit for web pages

CE solution

Steven A. Lowe
Yeah, I mean.. If you change translation for a string.
Black Horus
[@Black Horus]: in that case external resource files are probably your best best, they can be compiled separately
Steven A. Lowe
+1  A: 

Here is a nice blog post from Scott Hanselman which contains several good resources: http://www.hanselman.com/blog/ASPNETInternationalizationGlobalizationAndLocalizationWhew.aspx

Generally speaking I can say that you will want to keep your resources external to your binaries (using something like a .resource file), which will allow you to add/edit resources without a recompile. I've not done much myself, so I'm a bit rusty on the whole thing.

Hope this is helpful.

ckramer