Mehrsprachigkeit?

Status
Nicht offen für weitere Antworten.

becks123

Neues Mitglied
Servus Leute,

zur Oberflächenerzeugung verwendet ich Swing. Habe mir eine Oberfläche gebastelt, die Mehrsprachigkeit unterstützen soll. Habe die Resource Bundels dateien angelegt, und kann die Sprache umstellen:

Code:
Locale.setDefault(new Locale("de", "DE"));
Locale.setDefault(new Locale("en", "US"));

Auslesen des Textes mach ich mit:

Code:
ResourceBundle bundle =   ResourceBundle.getBundle  ( frame.getBaseName() );
JButton bt_backup = new JButton( bundle.getString  ("buttonBackup"));

Funktioniert beim Starten der Anwendung auch gut. Nur möchte ich die GESAMTE Oberfläche aktualisieren lassen, wenn ich die Sprache mittels Combobox umstelle, während die Application läuft.

Wie mach ich das?

Danke!!
 

Redfrettchen

Bekanntes Mitglied
Hi,
also ich hab das in meinem Programm so gemacht, dass ich ein Interface Internationalised hatte, das dann alle eigenen Komponenten implementiert haben. Sie müssen eine Methode changeLocale(Locale) zur Verfügung stellen, die ggf. die Sprache ändert.
Wenn die Sprache geändert wird (ComboBox oder im Menü), dann wird changeLocale(neues Locale) vom Hauptfenster aufgerufen, dass dann die Methode von alle Komponenten, die es verwaltet, aufruft. Die Methode wird also kaskadenartig aufgerufen bis zu den Komponenten, die keine eigenen "Kinder" haben.

Ich weiß allerdings nicht, wie man das mit einer komplett dezentralisierten Architektur machen würde. Vllt gibts ja auch einen eleganteren Weg.
 

AlArenal

Top Contributor
Ich finde das ganze Konzept fragwürdig. Wer will denn erst eine Anwendung in einer fremden Sprache starten und sich dann durchwurschteln, wo er sie umstellen kann?

Nehmen wir mal den Extremfall, man startet eine Anwendung die standardmäßig russisch ist...

Warum nicht gleich die Default Locale benutzen (die sich am Betriebssystem orientiert), denn vermutlich wird der User sich nicht sein OS in einer Sprache installiert haben, die er nicht beherrscht...
 

Redfrettchen

Bekanntes Mitglied
Ich habe nichts gegenteiliges behauptet, allerdings auch vergessen, es zu erwähnen. Am Anfang natürlich alles mit dem defaultLocale initialisieren. Aber trotzdem sollte man die Sprache bei Bedarf ändern können, aus welchen Gründen auch immer.
 

AlArenal

Top Contributor
[ironie]
Wer ne andere Sprache haben will soll die Software in ner anderen Sprache kaufen. Siehe Microsoft.. die verdienen damit gutes Geld. Unser Chef sagt eh immer, wir müssten uns mehr an MS orientieren, weil deren Produkte jeder kennt.
[/ironie]
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben