Laden...

Suche Tutorial/Beispiel für die Umsetzung von Internationalisierung/Lokalisierung

Erstellt von Andreaz vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.926 Views
A
Andreaz Themenstarter:in
53 Beiträge seit 2011
vor 12 Jahren
Suche Tutorial/Beispiel für die Umsetzung von Internationalisierung/Lokalisierung

Hallo zusammen,

ich Suche ein einfaches Beispiel, bzw. Tutorial um zu sehen, wie die Internationalisierung/Lokalisierungin WPF Projekten abläuft. Benötige die Informationen zur Aufwandsabschätzung, wie lange ich für ein bestehendes Projekt (derzeit einsprachig) die Internationalisierung einbauen kann.

Was sind eure Erfahrungen?
nutzt man für jede Sprache eine Ressourcendatei oder ggf. eine eigene XML Datei?

Bin auch auf http://wpflocalization.codeplex.com/ gestoßen. Ist dieses die schnellste Methode zur Internationalisierung?

Die Firma dankt!

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo,

in WPF ist das am einfachsten wenn du die ganzen Strings in Resource Dictionaries packst.
Im ResourceDictionary gibst du dann jedem String einen eindeutigen Key mit welchem du nachher den String laden kannst.

Im C# Code kannst du die Daten aus dem ResourceDictionary laden. Da erstellst du dir noch am besten eine kleine Helperklasse welche das für dich macht. Dann kannst du deine Texte mit dem Key laden

Im Xaml Code kannst du die Strings aus dem ResourceDictionary mit DynamicResource laden. Damit wird es automatisch aktualisiert wenn die resourcen-datei gewechselt wird
Also z.B.

<TextBlock Text="{DynamicResource MyString}" />

Sobald du die Sprache in deinem Programm wechseln willst, muss du das aktuelle Sprach-ResourceDictionary mit dem neuen ResourceDictionary austauschuen (also in dem MergedDictionary). Zudem musst du auch noch CurrentUICulture und CurrentCulture setzen

Ist jetzt vielleicht etwas viel Input auf einmal aber das Ganze ist in WPF relativ einfach

Bin auch auf
>
gestoßen. Ist dieses die schnellste Methode zur Internationalisierung?

Hm.. Jein, diese Methode hab ich Anfangs auch mal verwendet aber das hat mich nicht wirklich überzeugt. Es ist irgendwie zu umständlich

Gruß
Michael

A
Andreaz Themenstarter:in
53 Beiträge seit 2011
vor 12 Jahren

Hallo Michael,

vielen Dank für die Anregungen.

Habe einige Beispiele gesehen, indem resx-Dateien verwendet werden. Das sieht relativ einfach aus. Doc ich weiß nicht so recht, wie man diese resx-Dateien erstellt. Muss ich in meinem Projekt irgendwo angeben, welche Sprachen unterstützt werden sollen? Werden daraufhin die entsprechenden resx-Datein generiert? Oder wie fange ich damit am beten an?

Gruß
Andreas

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Andreaz,

Doc ich weiß nicht so recht, wie man diese resx-Dateien erstellt.

Im Projekt "Add new Item..." und da Resource-File auswählen.
MyResource.resx -> neutrale Sprache
MyResource.de.resx -> deutsche Sprache
usw.

Also für jede Sprache eine Datei anlegen. Der Compiler generiert dann daraus die Ressourcen die als Satennlitenassemblies vorliegen (für die neutrale Sprache sind sie standardmäßig in der Hauptassembly drin).

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

A
Andreaz Themenstarter:in
53 Beiträge seit 2011
vor 12 Jahren

In einigen Beispielen habe ich gesehen, dass resx-Dateien innerhalb der XAML-Komponent existiren. Beispielsweise befinden sich in der MainWindow.xaml neben der .cs-Datei auch zwei resx-Dateien. Hier habe ich irgendwie nicht doie Möglichkeit weitere resx-Dateien einzufügen. Daher habe ich gedacht, ob diese ggf. generiert werden, indem man irgendwo angibt, welche Sprachen im Projekt unterstützt werden!

Gelöschter Account
vor 12 Jahren

Hier noch ein gutes Beispiel, wie du .resx-Dateien verwenden kannst:

Creating an Internationalized Wizard in WPF

Gruss

A
Andreaz Themenstarter:in
53 Beiträge seit 2011
vor 12 Jahren

Vielen Dank für eure Anregungen.
Ihr habt mir sehr gut weitergeholfen.

Viele Grüße