Design für mehrere Sprachen in Swing

tuttle64

Bekanntes Mitglied
Ich muss ein Swing-GUI implementieren, welches mehrere Sprachen unterstützt. Ich habe bereits die Internalization Seiten von sun gelesen, die Locale sind mir ebenfalls geläufig und einige Prototypen mit ResourceBundle habe ich ebenfalls bereits geschrieben, aber der bis anhin vorliegende Java-Code ist für die Implementierung einer grösseren Anwendung eher untauglich, geschweige denn wartungsfreundlich. Bin für jeden Hinweis dankbar.
 

tuttle64

Bekanntes Mitglied
Und wir sind für Details dankbar. Was stört dich denn?


Ich möchte nicht für jeden Text den ich in einer Componente verwende mit einem ellenlangen IF-Kontrukt wenn Sprache=Deutsch dann diesen Text else wenn Sprache=English dann diesen Text usw. aufblasen. Ich suche nach einer Möglichkeit, alle Textfelder an einem Ort zu initialisieren und dann diese mit getText zu verwenden, ohne wissen zu müssen, um welche Sprache es sich handelt.
 
G

Gast2

Gast
Ich möchte nicht für jeden Text den ich in einer Componente verwende mit einem ellenlangen IF-Kontrukt wenn Sprache=Deutsch dann diesen Text else wenn Sprache=English dann diesen Text usw. aufblasen. Ich suche nach einer Möglichkeit, alle Textfelder an einem Ort zu initialisieren und dann diese mit getText zu verwenden, ohne wissen zu müssen, um welche Sprache es sich handelt.

Lol dann solltest du besser lesen, weil davon stand in dem Kapitel mit ResourceBundle ganz gewiss nichts...;)

Galileo Computing :: Java ist auch eine Insel – 11.4 Internationalisierung und Lokalisierung
 

Meru

Bekanntes Mitglied
Du kannst dir auch mal von Eclipse die "Externalize Strings" - Methode anschauen, die nimmt einem VIEL Arbeit ab. Mit dem ResourceBundleEditor (Plugin für Eclipse) kannst du auch auf einfache Weise andere Sprachen hinzufuegen.
 
G

Gast2

Gast
Mit haltlosen Unterstellungen komme ich auch nicht weiter.

Naja das ist keine Unterstellungen,sondern ein Ergebnis deiner Aussage von oben. Ich mein der Link beschreibt dein Problem schon nach 2 Sätzen und da steht nirgends etwas von ifs... Also bei mir ist das so, wenn ich etwas nicht kapier versuch ich es nochmal und nochmal zu lesen und dein Problem ist mit den Tips nicht all zu schwer zu lösen, da SOGAR Programmcode zum Ausführen dabei ist. Und Eclipse generiert dir sogar dein Code für dein ResourceBundle den musst du nicht mal selber schreiben ;) ;)... Also du wirst es schaffen ;)...
 

tuttle64

Bekanntes Mitglied
Schau dir doch mal den Link von SirWayne an, da steht genau das was du brauchst ;)


Ok, ich werde folgendes versuchen: Pro Sprache werde ich eine Ressource-Datei anlegen mit den in den GUIs zu verwendenden Texte. Sämtliche Texte in den Komponenten werden über bundle.getString gesetzt und sobald die Sprache in der Applikation geändert wird, wird entsprechend ResourceBundle.getBundle aufgerufen und dann werden die Texte in den Komponenten in die Sprache des geholten Bundle geändert. Ist so ok resp. hat jemand sowas schon mal erfolgreich realisiert? Werde es mit einem keinen Protypen versuchen und berichten. Jedenfalls danke an alle für die Hinweise.
 
G

Gast2

Gast
Ok, ich werde folgendes versuchen: Pro Sprache werde ich eine Ressource-Datei anlegen mit den in den GUIs zu verwendenden Texte. Sämtliche Texte in den Komponenten werden über bundle.getString gesetzt und sobald die Sprache in der Applikation geändert wird, wird entsprechend ResourceBundle.getBundle aufgerufen und dann werden die Texte in den Komponenten in die Sprache des geholten Bundle geändert. Ist so ok resp. hat jemand sowas schon mal erfolgreich realisiert? Werde es mit einem keinen Protypen versuchen und berichten. Jedenfalls danke an alle für die Hinweise.

Klar funktinioniert das Prinzip sonst wäre es kein Standard ;)...Wie gesagt wenn du Eclipse nutzt gibt es ein ResourceBundleEditor mit dem du einfach die properties Dateien anlegen kannst... und eclipse generiert dir auch den Code für die Klasse...
 

Wildcard

Top Contributor
Sämtliche Texte in den Komponenten werden über bundle.getString gesetzt und sobald die Sprache in der Applikation geändert wird, wird entsprechend ResourceBundle.getBundle aufgerufen und dann werden die Texte in den Komponenten in die Sprache des geholten Bundle geändert
Die Sprache zur Laufzeit zu ändern ist für nicht-triviale Anwendungen ein ganz enormer Aufwand. Du machst dir das Leben wesentlich leichter wenn du den Benutzer
a)nur vor dem Start die Sprache festlegen lässt, oder
b)eine Änderung der Sprache einen Neustart der Anwendung zur Folge hat

Man darf nicht vergessen das die Sprache zu ändern ein feature ist das die meisten Anwender genau 0 mal in ihrem Leben verwenden werden. Daher sollte man sich schon überlegen ob man wirklich bereit ist einige Mannmonate zu investieren nur um diesen Wechsel ohne Neustart zu ermöglichen
 
M

Mc Noise

Gast
Die Sprache zur Laufzeit zu ändern ist für nicht-triviale Anwendungen ein ganz enormer Aufwand. Du machst dir das Leben wesentlich leichter wenn du den Benutzer
a)nur vor dem Start die Sprache festlegen lässt, oder
b)eine Änderung der Sprache einen Neustart der Anwendung zur Folge hat

Man darf nicht vergessen das die Sprache zu ändern ein feature ist das die meisten Anwender genau 0 mal in ihrem Leben verwenden werden. Daher sollte man sich schon überlegen ob man wirklich bereit ist einige Mannmonate zu investieren nur um diesen Wechsel ohne Neustart zu ermöglichen

Wieso sollte das so schwer sein? Einfach eine Methode retranslateUi() machen, und falls man die Sprache ändert einfach ein Event feuern, auf das jede Gui Komponente hört und eben diese Methode retranslateUi aufruft. Stelle ich mir nicht so schwer vor :D

Ob so was viel Sinn macht ist natürlich fraglich, da die VM ja eh dir richtige Sprache setzt.
 

Wildcard

Top Contributor
Wieso sollte das so schwer sein? Einfach eine Methode retranslateUi() machen, und falls man die Sprache ändert einfach ein Event feuern, auf das jede Gui Komponente hört und eben diese Methode retranslateUi aufruft. Stelle ich mir nicht so schwer vor :D

Ob so was viel Sinn macht ist natürlich fraglich, da die VM ja eh dir richtige Sprache setzt.
Ich habe bewusst von nicht trivialen Anwendungen gesprochen.
Ein paar Buttons, Labels, ... bekommt man mit (meiner Meinung nach viel zu hohem Aufwand) noch dazu sich zu aktualisieren in dem man durch den ganzen Code eine hässliche Language Listener Infrastruktur zieht. Es hört dann aber auf bei Bäumen, Listen, Tabelle, selbst gezeichneten Objekten,...
Stell dir nur mal eine Art Log View vor. Wenn du entscheidest die Sprache zu wechseln hast du die ursprungsdaten gar nicht mehr um die Einträge in der Log View noch nachträglich übersetzen zu können á la
Java:
MessageFormat.format(NLS.MY_STRING, e.getLocalizedMessage(), fooObject.getPath());
Selbst mit sehr vielen Aufwand lässt sich das also für nicht triviale Anwendungen nur partiell lösen.
Wenn man es sowieso nur partiell lösen kann, kann man sich die Arbeit auch gleich sparen...
 

tuttle64

Bekanntes Mitglied
Selbst mit sehr vielen Aufwand lässt sich das also für nicht triviale Anwendungen nur partiell lösen.


Ich werde mir gut überlegen, wo der Anwender die Sprache ändern kann. Beim SignOn ist es bestimmt am einfachsten und innerhalb der Applikation gibt es auch Stellen, wo das einfacher gehen wird.
Grundsätzlich stimme ich mit Dir überein und ich danke Dir für den Hinweis.


Man darf nicht vergessen das die Sprache zu ändern ein feature ist das die meisten Anwender genau 0 mal in ihrem Leben verwenden werden.

Man mache es wir Microsoft: Pro Sprache eine Installtions-CD.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
SchmidiMC Swing Vorschläge für ein Design AWT, Swing, JavaFX & SWT 5
L LookAndFeel Eigenes Design für die Applikation AWT, Swing, JavaFX & SWT 4
H Button / Design Ideen AWT, Swing, JavaFX & SWT 2
M JavaFX kann man da noch was am code vereinfachen design technisch sieht nicht richtig aus... AWT, Swing, JavaFX & SWT 15
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
L JavaFX GUI Design AWT, Swing, JavaFX & SWT 6
W WindowBuilder / Design-Vorschau schneidet den Rand ab AWT, Swing, JavaFX & SWT 0
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
das_leon AWT Button Design ändern AWT, Swing, JavaFX & SWT 5
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
F Design-Anzeige im Windowbuilder AWT, Swing, JavaFX & SWT 3
K GridBagLayout mit reponsive Design AWT, Swing, JavaFX & SWT 2
B Design Umsetzung AWT, Swing, JavaFX & SWT 1
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
T JavaFX "DefaultButton"-Design ändern AWT, Swing, JavaFX & SWT 8
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
N GUI Design ohne GUIDesigner AWT, Swing, JavaFX & SWT 10
D GWT Design AWT, Swing, JavaFX & SWT 0
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
U WindowBuilder "Design-Tab" AWT, Swing, JavaFX & SWT 2
P LayoutManager Design meines Projekts (hätte wer zeit?) AWT, Swing, JavaFX & SWT 9
G Eclipse: Design Tab wird nicht mehr angezeigt AWT, Swing, JavaFX & SWT 4
M Design in Java umsetzen AWT, Swing, JavaFX & SWT 3
Tsuna JButtons in Apple-Design AWT, Swing, JavaFX & SWT 4
ARadauer Wenig Material zum Thema: Design, Layout, Usability von Swing Anwendungen AWT, Swing, JavaFX & SWT 11
J LayoutManager Welchen Layout/Design-Manager? AWT, Swing, JavaFX & SWT 4
W LayoutManager Clientfenster ins Design einbinden AWT, Swing, JavaFX & SWT 13
B LayoutManager GUI-Design: eventuelle Alternativen zum Verschachteln + Ansprechen von JPanel()? AWT, Swing, JavaFX & SWT 2
F JSlider Design ändern AWT, Swing, JavaFX & SWT 6
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
G Grundsatzfrage GUI-Design AWT, Swing, JavaFX & SWT 6
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
L Eigene Design Oberfläche erstellen AWT, Swing, JavaFX & SWT 3
M Special design of Swing components AWT, Swing, JavaFX & SWT 14
KrokoDiehl Swing Design-Frage: eigenes Line-Wrapping AWT, Swing, JavaFX & SWT 5
T Design mit vielen Feldern AWT, Swing, JavaFX & SWT 2
D Design - View & Controller AWT, Swing, JavaFX & SWT 2
eskimo328 Moderne Swing GUI mit Web ähnlichem Design AWT, Swing, JavaFX & SWT 7
M Nochmal Swing, MVC und generelles Design AWT, Swing, JavaFX & SWT 2
S JTree Design Problem AWT, Swing, JavaFX & SWT 5
S Design problem AWT, Swing, JavaFX & SWT 2
K Design von verschiedenen Rechnern AWT, Swing, JavaFX & SWT 13
A Design Problem bei verschiedenen Oberflächen AWT, Swing, JavaFX & SWT 3
Steev Standard Design bei JFrame und AWT AWT, Swing, JavaFX & SWT 7
M Design von Elemente? AWT, Swing, JavaFX & SWT 16
T Allgemeine Frage - innovatives GUI Design AWT, Swing, JavaFX & SWT 6
P Swing-Komponenten - Standart-Windows Design? AWT, Swing, JavaFX & SWT 4
B Swing - Design Patterns AWT, Swing, JavaFX & SWT 3
S "Zerstörtes" gbl-Layout (Design) AWT, Swing, JavaFX & SWT 10
D professionelles GUI-Design als Skeleton Pro AWT, Swing, JavaFX & SWT 2
A Applikation mit Netbeans-Design AWT, Swing, JavaFX & SWT 4
R JDialog hat seltsames Design AWT, Swing, JavaFX & SWT 6
L Design-Probleme (Swing-Anfänger) AWT, Swing, JavaFX & SWT 6
M Look&Feel - Layout - GUI - Design - SAP LnF :) AWT, Swing, JavaFX & SWT 12
M Frage bzgl. Formular-Design. AWT, Swing, JavaFX & SWT 2
R Programm an Design anpassen. AWT, Swing, JavaFX & SWT 4
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
D JavaFX Schadensberechnung für Kartenspiel AWT, Swing, JavaFX & SWT 1
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
L actionListener für Button AWT, Swing, JavaFX & SWT 97
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Button für GUI programmieren AWT, Swing, JavaFX & SWT 1
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
kodela HTML-tags für JLabel AWT, Swing, JavaFX & SWT 9
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
MiMa Package Struktur für GUI Programmierung AWT, Swing, JavaFX & SWT 26
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
K Swing Struktur für TreeTable rekursiv aufbauen AWT, Swing, JavaFX & SWT 17
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
J Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ? AWT, Swing, JavaFX & SWT 10
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
Soloeco JavaFX Dreifachklick für MenuButton erforderlich AWT, Swing, JavaFX & SWT 2
L JavaFX Lösungsvorschläge für dieses coole Control AWT, Swing, JavaFX & SWT 8
looparda Suche Lib für Visualisierung von Graphen AWT, Swing, JavaFX & SWT 12
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
S Swing Finde Grund für NullPointerExeption nicht. AWT, Swing, JavaFX & SWT 2
W JavaFX (j)Unittests für GUI AWT, Swing, JavaFX & SWT 0
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben