Mehrsprachige Applikation erstellen

10/10/2008 - 17:14 von Volkan Senguel | Report spam
Hallo zusammen, ich muss nun eine Applikation mehrsprachig aufbauen so dass
der Bentuzer mittes einer Auswahl aus verschiedenen Sprachen (Deutsch,
English, Französisch etc.) auswàhlen kann.
Ich habe auch schon gefunden dass dies mittels den Resourcen Dateien
funktionieren soll - geht aber bei mir leider nicht :(

Habe diesbezüglich mal eine Test app erstellt mit folgendem Code nur die
relvanten Teile):


Mein Projekt heist "TestApp"



[Form1.cs]
...
using System.Globalization;
using System.Resources;
...
public static CultureInfo culture;

private void Form1_Load(object sender, EventArgs e)
{
culture = CultureInfo.CurrentCulture;
adjustCulture();
}

private void adjustCulture()
{
ResourceManager rm = new ResourceManager("TestApp.myRes",
typeof(MainForm).Assembly);
this.Text = rm.GetString("Title", culture);
}

...

Dazu habe ich eine Combobox welches folgendes ausgibt:

switch (comboBox_LanguageSelector.Text)
{
case "Deutsch":
culture = CultureInfo.CreateSpecificCulture("de-CH");
break;
case "Français":
culture = CultureInfo.CreateSpecificCulture("fr-CH");
break;
case "English":
culture = CultureInfo.CreateSpecificCulture("en-US");
break;
case "Italiano":
culture = CultureInfo.CreateSpecificCulture("it-CH");
break;
default:
culture = CultureInfo.CreateSpecificCulture("de-CH");
break;
}

adjustCulture();


Zusàtzlich habe ich im Rootfolder der App diese 5 Resourcen-Dateien mit dem
Eintrag "Title" wo jeweils so benannt sind:

myRes.resx
myRes.fr-CH.resx
myRes.en-US.resx
etc...

Ich bekomme aber immer nur einen leeren String zurück geliefert !?


Kann mir jemand erklàren wie ich dass richtig machen soll so dass die Werte
richtig zurück gegeben werden?

Danke im Voraus für jeden Tip
Volkan Senguel
 

Lesen sie die antworten

#1 Mario Fraiß
10/10/2008 - 21:44 | Warnen spam
Am Fri, 10 Oct 2008 17:14:38 +0200 schrieb Volkan Senguel:

Hallo zusammen, ich muss nun eine Applikation mehrsprachig aufbauen so dass
der Bentuzer mittes einer Auswahl aus verschiedenen Sprachen (Deutsch,
English, Französisch etc.) auswàhlen kann.
Ich habe auch schon gefunden dass dies mittels den Resourcen Dateien
funktionieren soll - geht aber bei mir leider nicht :(

Habe diesbezüglich mal eine Test app erstellt mit folgendem Code nur die
relvanten Teile):

Mein Projekt heist "TestApp"



[Form1.cs]
...
using System.Globalization;
using System.Resources;
...
public static CultureInfo culture;

private void Form1_Load(object sender, EventArgs e)
{
culture = CultureInfo.CurrentCulture;
adjustCulture();
}

private void adjustCulture()
{
ResourceManager rm = new ResourceManager("TestApp.myRes",
typeof(MainForm).Assembly);
this.Text = rm.GetString("Title", culture);
}

...

Dazu habe ich eine Combobox welches folgendes ausgibt:

switch (comboBox_LanguageSelector.Text)
{
case "Deutsch":
culture = CultureInfo.CreateSpecificCulture("de-CH");
break;
case "Français":
culture = CultureInfo.CreateSpecificCulture("fr-CH");
break;
case "English":
culture = CultureInfo.CreateSpecificCulture("en-US");
break;
case "Italiano":
culture = CultureInfo.CreateSpecificCulture("it-CH");
break;
default:
culture = CultureInfo.CreateSpecificCulture("de-CH");
break;
}

adjustCulture();


Zusàtzlich habe ich im Rootfolder der App diese 5 Resourcen-Dateien mit dem
Eintrag "Title" wo jeweils so benannt sind:

myRes.resx
myRes.fr-CH.resx
myRes.en-US.resx
etc...

Ich bekomme aber immer nur einen leeren String zurück geliefert !?


Kann mir jemand erklàren wie ich dass richtig machen soll so dass die Werte
richtig zurück gegeben werden?

Danke im Voraus für jeden Tip
Volkan Senguel



Hallo,

Am besten du schaust dir zu dem Thema folgende URL an:
http://msdn.microsoft.com/de-de/lib...9352.aspx. Darin wird sehr gut
und Schritt für Schritt erklàrt wie Lokalisierung unter .NET am besten zu
realisieren ist.

Lg, Mario Fraiß (Software-Architect und .Net-Engineer)
_____
Besuchen Sie mich auf meinem Blog unter > www.mariofraiss.com

Ähnliche fragen