Internationalisierung mittels ResourceBundle und Menu HotKey

Status
Nicht offen für weitere Antworten.

Lim_Dul

Top Contributor
Ich hab mein Programm mittels propertie-Files und ResourceBundles internationalisiert.
Klappt auch alles soweit.
Wo ich jetzt aber keine Lösung für weis, ist folgendes Problem:

In Deutsch heißt ein Menü Beispielsweise Spiel, im Englischen aber Game. Nun würde ich im Deutschen gerne S als Hotkey (mnemonic) setzen, im englischen aber G. Wie lager ich das am sinnvollsten aus?

Einen zusätzlichen Eintrag pro Menueintrag in der Properties, wo der Hotkey drinsteht? Oder gibts einfachere/schönere Lösungen. Bequem wäre wenn ich einfach &Spiel bzw. &Game speichern könnte.
 

André Uhres

Top Contributor
Code:
menuItem1.setAccelerator(KeyStroke.getKeyStroke((int)(menuItem1.getText().toCharArray()[0]), 0));
 

Lim_Dul

Top Contributor
Ok, ich präzisiere meine Frage :)

Ich möchte nicht zwangsweise den ersten Buchstaben als Hotkey haben, sondern einen, den ich irgendwo irgendwie speichere.

Frage ist nun, gibt es in Java was vorgefertiges dafür oder muss ich selber was basteln.
Es ist theorethisch kein Problem einen Sring ab&cd so zu parsen, dass c dann als hotkey eingestellt wird.
Aber ich hätte lieber eine Lösung, die in java schon eingebaut ist.
 
R

Roar

Gast
hm im javabuch stand doch mal nen beispiel um das so im format &Game zu benutzen, finds aber nicht mehr. sollte aber doch nicht schwer nachzubauen sein :)
mit indexOf('&') das nächste & zeichen findet, wenn man brav ist noch abfragen ob das zeichen danach kein leerzeichen ist, wenn ja das nächjste & suchen. das zeichen nach dem gefundenen & nehmen, als mnemonic setzen und das & entfernen :)
 

Lim_Dul

Top Contributor
Das umzusetzen ist kein Problem, aber ich bin bequem und will eingebaute Lösungen haben :)

Die scheints aber nicht zu geben, wie es aussieht.
 
R

Roar

Gast
Lim_Dul hat gesagt.:
Das umzusetzen ist kein Problem, aber ich bin bequem und will eingebaute Lösungen haben :)

Die scheints aber nicht zu geben, wie es aussieht.
lol in der zeit in der du hier gefragt und auf eine antwort gewartet hast hätte man das schon 10 mal implementieren können :D :p
 

André Uhres

Top Contributor
Code:
public final class HotKey {
    /** Privaten Konstruktor damit die Klasse nicht instanziert wird. */    
    private HotKey() {
    }

    public static void setLocalizedText(JMenuItem item, String text) {
        int i = findHotKey(text)
        if (i < 0) {
            item.setText(text);
            // kein '&' - HotKey nicht setzen
        }else {
            item.setText(text.substring(0, i) + text.substring(i + 1));
            char ch = text.charAt(i + 1);
            // ch als HotKey setzen:
            ...
        }
    }

    public static int findHotKey(String text) {
        int i=-1;
        do {
            // nächsten '&' suchen
            i=text.indexOf("&",i+1);
            if(i>=0 && (i+1)<text.length()) {
                // vor ' '
                if(text.charAt(i+1)==' ')
                    continue;
                // vor ', und nach '
                else if(text.charAt(i+1)=='\'' && i>0 && text.charAt(i-1)=='\'') {
                    continue;
                }
                // & markiert HotKey
                return i;
            }
        } while(i>=0);
        return -1;
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J FXML - Internationalisierung - Behandung key not found AWT, Swing, JavaFX & SWT 39
D JavaFX Internationalisierung zur Laufzeit AWT, Swing, JavaFX & SWT 7
G Internationalisierung auf Knopfdruck AWT, Swing, JavaFX & SWT 4
N Grundsätzliche Frage zur Internationalisierung AWT, Swing, JavaFX & SWT 2
L JavaFx Textformatierung mittels Datenbank und Funktion anpassen AWT, Swing, JavaFX & SWT 5
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
P JavaFx - Progressbar - Füllen mittels mehreren Tasks AWT, Swing, JavaFX & SWT 0
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
J Swing GUI-Einstellungen mittels Preferences AWT, Swing, JavaFX & SWT 2
J Rechtecke mittels getWidth AWT, Swing, JavaFX & SWT 1
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
T JFrame mittels Shortcut anzeigen AWT, Swing, JavaFX & SWT 2
E Client-Server mittels AWT AWT, Swing, JavaFX & SWT 27
A Swing Fenstergröße mittels Menü verändern AWT, Swing, JavaFX & SWT 3
U Swing JLabel bewegen mittels Thread AWT, Swing, JavaFX & SWT 3
R Swing Verschieben eines jButtons mittels MouseDragged AWT, Swing, JavaFX & SWT 4
N Wertanzeige mittels JSpinner AWT, Swing, JavaFX & SWT 3
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
C Swing Eine SWING-Anwendung mittels MVC AWT, Swing, JavaFX & SWT 4
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
B JLabel mittels Timer und setLocation verschieben AWT, Swing, JavaFX & SWT 3
B Grafiken in JLabel mittels html AWT, Swing, JavaFX & SWT 5
T HTML Seite neu laden mittels Applet AWT, Swing, JavaFX & SWT 2
G Zentrieren mittels setLocationRelativeTo(null);? AWT, Swing, JavaFX & SWT 14
Semox Setzen des Layout Managers mittels Override Parameter AWT, Swing, JavaFX & SWT 10
T JTable-Zelle mittels JFileChooser befüllen AWT, Swing, JavaFX & SWT 5
F JTextArea mittels Tab verlassen. AnyIdea? AWT, Swing, JavaFX & SWT 2
C Fragen zur Darstellung einer JTable mittels Renderer AWT, Swing, JavaFX & SWT 2
F Größenänderung mittels Maus - selbst implementieren? AWT, Swing, JavaFX & SWT 3
H Grafiken mittels Hashing vergleichen. aber wie? AWT, Swing, JavaFX & SWT 20
G Jtable mittels Liste füllen AWT, Swing, JavaFX & SWT 3
F Einlesen von text in textArea mittels for-schleife AWT, Swing, JavaFX & SWT 3
M JComboBox - Mittels FocusListener Event auslösen? AWT, Swing, JavaFX & SWT 4
B Vektorgrafik mittels Batik Tool anzeigen AWT, Swing, JavaFX & SWT 3
M Fenstertiteländerung mittels WindowAdapter AWT, Swing, JavaFX & SWT 5
H MouseEvent bei Drag & Drop (mittels TransferHandler) AWT, Swing, JavaFX & SWT 3
L Daten mittels ObjectInputStream ins JTable AWT, Swing, JavaFX & SWT 7
V ResourceBundle & Bilder => JFormDesigner AWT, Swing, JavaFX & SWT 17

Ähnliche Java Themen

Neue Themen


Oben