I am looking in to writing a c# application in .NET 3.0 and localization has been highlighted as an issue.

I haven't really written a localized app but I am aware of using resources and dotnets ability to choose the correct localized assembly when required.

However, someone has suggested to me they would like to use a database in order to provide the localized strings. My first thought though would have been to use .NET resources. I can see the db approach would be more accessable to someone who didn't have any kind of resx editing tool (if there is such a thing), but I see that there is more to localization than just providing translated strings.

Because of these conflicts of interest I wanted to ask everyones opinion:

Is there a best practice doc anywhere

Has anyone localized an app using a database to provide the string and run in to problems

Are there tools out there to allow a non dev to manipulate .resx files when localizing

Any finally, the big question would have to be; does the current localization recommendation change if I target WPF



Re: Windows Forms General Localization using .resx or Database


Lots of "best practices" guides on this Google query. Not sure which is best ;). Using a database is possible I guess but .NET does it differently and a lot more reliably. The localization tool is winres.exe, you'll find it in the .NET SDK's bin folder.

Re: Windows Forms General Localization using .resx or Database


I have just finished the development of a free tool that I call ResEx, composite, translation friendly resource editor for .NET.
It is a free tool and I intend to keep it free, containing all current features. A small charge may be applied for some features I may introduce later, just to help me keep supporting and enhancing the project.
I encourage you to download ResEx and post any suggestions to the discussions page you can find under Help menu of the application. Info and download
Here is a list of features provided by ResEx:14
  • Translate values side by side (just like the old time classic VB6 resource editor)
  • Lock specific strings so that translator does not translate them
  • Ensure correct translation of strings with placeholders {0} {1} ...
  • View resource strings in tree form
  • Translate resources without Visual Studio IDE
  • Search inside resource files while translating