Wie man mehrsprachige App in winforms macht

Ich habe eine Anwendung und ich muss zwei Sprachen (z. B. Englisch und Arabisch) in dieser Anwendung verwenden, aber ich weiß nicht, wie ich das tun kann. Jeder kann mir dabei helfen? Ich brauche einige Beispiele in C # Windows Forms.

Form haben Localizable und Language Eigenschaft. Wenn Sie die Localizable Eigenschaft auf “true” setzen, können Sie Steuerelemente zum Erstellen der Standardsprache hinzufügen und Eigenschaften für die Standardsprache festlegen. Dann können Sie eine andere Sprache auswählen und die Eigenschaften für diese Sprachen ändern. Auf diese Weise werden Eigenschaftswerte in separaten Ressourcendateien für verschiedene Kulturen gespeichert.

Sie können auch .resx Ressourcendateien zum Projekt hinzufügen. Erstellen Sie beispielsweise eine Strings.resx Datei und fügen Sie ihr einige Zeichenfolgenschlüssel und -werte hinzu. Kopieren Sie sie dann als strings.en.resx und strings.fa.resx und bearbeiten Sie die Werte für diese Sprachen.

Sie können die Kultur einer Anwendung auf Persian :

 System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("fa"); System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("fa"); 

Sie sollten den obigen Code am Anfang Ihrer Bewerbung oder vor dem Ausfüllen eines Formulars eingeben.

Für weitere Informationen und Beispiel:

  • Globalisierung von Windows Forms
  • Exemplarische Vorgehensweise: Lokalisieren von Windows Forms

Die Verwendung einer Ressourcendatei ist in einigen Fällen möglicherweise einfacher.

  1. Fügen Sie dem Projekt in Visual Studio eine neue Ressource-Datei hinzu. z.B. en.resx für Englisch fr.resx für Französisch.

  2. Öffnen Sie die Ressourcendatei in den Zeichenfolgen, benennen Sie Ihre Zeichenfolge und fügen Sie eine andere Übersetzung in die Wertezelle ein. Zum Beispiel: der Wert der next station in en.resx ist die next station aber in fr.resx kann Prochaine station . Beispiel wie folgt: de_local.resx fr_local.resx

  3. Verwenden Sie im Code den public static ResourceManager rm = new ResourceManager("WindowsFormsApp1.en_local", Assembly.GetExecutingAssembly()); um die Sprachressource auszuwählen.

  4. Wenn Sie eine Zeichenfolge an die Anwendung ausgeben müssen, verwenden Sie die function GetString() , z. B. label1.Text = rm.GetString("welcome");

Es gibt einige fehlende Teile in der Antwort von wwjih123.

In VS2017

1-Zuerst aller Ressourcen im Stammordner des Projekts erstellen (nicht im Ordner Ressourcen). Nennen Sie es wie lang_en, lang_tr, lang_fr etc …

2-then Objekteigenschaften Fenster verlassen Build-Aktion als eingebettete Ressource

3-in der lang_tr.resx-Datei fügen Sie neue Zeichenfolge lbl_error und Wert “Hata” auf Türkisch (was auch immer Sie möchten)

4- Innerhalb der class definieren Variablen wie folgt:

  ResourceManager res_man; // declare Resource manager to access to specific cultureinfo 

5-in classninitialisierung nach InitializeComponent ();

 Console.WriteLine("You are speaking {0}", System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName); res_man = new ResourceManager("MyApp.lang_"+ System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, Assembly.GetExecutingAssembly()); lblError.Text = res_man.GetString("lbl_error"); 

Wenn Ihre Sprache Türkisch ist, wird automatisch die Datei lang_tr.resx geladen, wenn die Datei lang_en.resx geladen wird usw.

Viel Glück