views:

122

answers:

3

Hi,

i am planning to make a multi language application in C# and was wondering what is the best way to handle the follow:

  • The container for the languges;
  • Best approchs to read/change once initiated/requested;
  • As the program grows so does the the text for each language what do you usually do and recommend as best pratice;
  • What sort of problems have you encountered while doing such type of applications;

Thanks for any advices, replies, etc.

I really appreciate Links and Sample codes if you dont bother (not required, only if u have the time and can).

+1  A: 

I'd say that the standard way to localize a C# app is using resources and satellite assemblies. Here are some articles about this:

Creating and Implementing Satellite Assemblies
Localization Like the Pros
MSDN: Localizing Applications

ho1
Thanks for the answer ho1 i will take a look at it, hope the question looks better now.
Prix
+1  A: 

To handle languages the best way is to store strings in a resource file. You can release additional languages with satellite assemblies. You will find a lot of information about globalization and localization with C#: for example in MSDN

If you are planning to store much data, i would suggest SQL Compact + NHibernate. XML is very slow especially with C#.

onof
Thanks, I am not sure if it will be that much data at the start but i am sure it will grow over time with new features...
Prix
A: 

Like everyone said, using a resource file is good way to store the localization data. Starting from that point you can find some approaches, the most common approaches could be using satellite assembly or using a file based resource manager.

On my personal opinion, I think satellite assembly helps your project to be more flexible and obviously helps with extensibility (I think many comercial software uses this approach).

On the next link you can find information about the two approaches.

.NET - Localization using Resource file

The next link is a really good article aboud localization and base concepts.

Internationalization & Localization

Hope it helps.

Mario