Ich habe mehrere Sprachen mit dem folgenden kurzen Artikel hinzugefügt.C# Erstellen eines Setups für mehrsprachige
Wenn Sie zum Beispiel deutscher Sprache hinzufügen, werden Sie diese Dateien haben: formMain.resx formMain.de-DE.resx formMain.Designer.cs formMain.cs
In erster Datei finden Sie Ressourcen für neutrale Sprache, wie Strings, Bilder, ..
So müssen Sie jetzt auch Ressourcen für Zeichenfolgen im Code verwendet. Fügen Sie eine neue Ressourcendatei hinzu und nennen Sie sie formMain.Strings.resx Dann gebe ich Name, Wert-Paar für jede Zeichenfolge, die übersetzt werden soll. Wenn Sie eine Ressourcendatei hinzufügen, wird sie automatisch eingegeben, da bei jedem Schließen des Resx-Designers automatisch eine andere Datei mit dem Namen formMain.Strings.Designer.cs generiert wird.
Fügen Sie eine weitere Ressource mit dem Namen formMain.Strings.de-DE.resx hinzu. Fügen Sie denselben Namenschlüssel aus der vorherigen Ressource hinzu und ändern Sie einfach den Wert mit entsprechenden deutschen Wörtern. Um nun auf die erstellte Ressource von der Quelle zuzugreifen, wird es so aussehen.
MessageBox.Show (formMain_Strings.SameStringName);
Allerdings habe ich meine Thai-Sprache geändert. Alles funktioniert gut, wenn ich meine App in VS laufen lasse.
Sobald ich jedoch ein Setup-Projekt hinzufüge und auf dem Client-Rechner installiere, wird die Sprache nicht in Thai geändert und nur die Standardsprache beibehalten.
Also habe ich die Ressourcendateien und die TH-TH-DLL zum Projekt-Setup hinzugefügt. Und ich bekomme immer noch das gleiche Problem.
Packaging file 'Lang.Strings.resx'...
Packaging file 'MultiLanguage.resources.dll'...
Packaging file 'MultiLanguage.exe'...
Packaging file 'Lang.Strings.th-TH.resx'...
Da läuft alles gut, wenn in Visual Studio ausgeführt wird. Gibt es etwas, was ich tun muss, damit es ausgeführt wird, sobald es installiert wurde? Alle Eigenschaften für jede Datei, die ich habe, behalten den Standard bei.
Vielen Dank,
=========
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("th-TH");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Wenn ich kann, sind Sie besser dran, Setup-Projekt so bald wie möglich zu ditching und Wechsel zu Windows Installer XML (WiX). Ich habe ein Produkt einmal mit einem Setup-Projekt ausgeliefert. Nie wieder. Niemals wieder. – Promit
Ich habe mich kurz mit WiX beschäftigt und es enthält auch nicht die lokalisierte Ressourcen-DLL im Setup-Paket. Es scheint, dass lokalisierte Ressourcen in jeder Art von Setup-Projekt einfach nicht funktionieren (ich arbeite hier an einem VC++ - Projekt). – galmok