Gibt es eine Möglichkeit, die Sprache der ColorPicker
Texte wie "Benutzerdefinierte Farbe ...", "Aktuelle Farbe", "Neue Farbe", "Farbton", "Sättigung", "Helligkeit" zu ändern "," Deckkraft "," Speichern "," Verwenden "," Abbrechen "?Sprache des JavaFX - Farbwählers
Antwort
EDIT: Unten Antwort für diejenigen, die etwas mehr exotische Sprache benötigen. Wenn Sie eines davon verwenden: de, es, fr, it, ja, ko, pt, sv, zh
@ sergey-grinev zur Verfügung gestellt ausreichende Antwort.
Ich kam mit zwei Lösungen. Beide verlassen sich auf properties
Datei. Sie können Ihre eigenen anhand von Beispielen erstellen, die in com/sun/javafx/scene/control/skin/resources/
in jxfrt.jar
mit JRE gefunden werden.
In allen Beispielen wird das polnische Gebietsschema (new Locale("pl", "PL")
) verwendet, das nicht integriert ist.
Lösung 1
mit folgenden Struktur (ändern Suffix entsprechend) erstellen JAR-Datei
com/sun/javafx/scene/control/skin/resources/controls_pl_PL.properties
und legen Sie sich in
<path_to_JVM>/lib/ext
Das ist es.
Ich bin mir nicht sicher, was die Lizenz über die Platzierung von benutzerdefinierten Dateien in com.sun.*
Pakete sagt, also hier ist eine andere Lösung.
Lösung 2
erstellen properties
Datei wie oben, aber man kann es, was Namen und kann überall Sie wollen. Sagen wir, es
path/to/my/resources/polish.properties
zwei Klassen erstellen - ResourceBundle.Control
und ResourceBundleControlProvider
(read more) wie folgt aus.
public class CustomLocaleFxResourceBundleControl extends ResourceBundle.Control {
static final String FX_BASE_NAME = "com/sun/javafx/scene/control/skin/resources/controls";
private static final Locale MY_LOCALE = new Locale("pl", "PL");
@Override
public String toBundleName(String baseName, Locale locale) {
if (FX_BASE_NAME.equals(baseName) && MY_LOCALE.equals(locale))
return "path/to/my/resources/polish"; // without extension
return super.toBundleName(baseName, locale);
}
}
public class CustomLocaleFxResourceBundleControlProvider implements ResourceBundleControlProvider {
private static final ResourceBundle.Control MY_RESOURCE_BUNDLE_CONTROL = new CustomLocaleFxResourceBundleControl();
public ResourceBundle.Control getControl(String baseName) {
if (CustomLocaleFxResourceBundleControl.FX_BASE_NAME.equals(baseName))
return MY_RESOURCE_BUNDLE_CONTROL;
return null;
}
}
diese Klassen zusammenstellen und sie in JAR-Datei setzen zusammen mit Ihrer Ressource und META-INF
Ordner. META-INF
Ordner sollte
META-INF/services/java.util.spi.ResourceBundleControlProvider
java.util.spi.ResourceBundleControlProvider
ist eine Textdatei folgende Struktur haben, die nur Leitungsweg zu ResourceBundleControlProvider
Klasse.In unserem Fall ist es nur
CustomLocaleFxResourceBundleControlProvider
komplette JAR setzen in
<path_to_JVM>/lib/ext
Dies ist das erste Mal, dass ich solche Änderungen mache und ich habe einige Probleme. Ich benutze Eclipse (jdk 1.8.40) und kann die oben erwähnte Eigenschaftendatei nicht finden. – Alyona
In '
Vielen Dank, ich habe die benötigte Eigenschaftendatei abgerufen und Änderungen daran vorgenommen Sowohl CustomLocaleFxResourceBundleControlProvider als auch CustomLocaleFxResourceBundleControl im Ordner bin \ com \ my (wo sich mainApp befindet), setze dort auch die Datei controls_pl.properties, aber ich bin verwirrt über "Kompiliere diese Klassen und lege sie zusammen mit deinem Ressourcen- und META-INF-Ordner in die JAR-Datei. META-INF-Ordner sollte folgende Struktur haben: "Ich kann einfach nicht verstehen, was genau zu tun ist. Ich bin auf Begginer Ebene mit Java und kann noch nicht alles verstehen. – Alyona
Der einfachste Weg ist ein vordefinierter Gegenden zu verwenden, z.B. nächste Zeile hinzufügen, vor dem Erstellen von Colorpicker:
Locale.setDefault(Locale.FRENCH);
Sie nächsten UI sehen werden:
Es funktioniert für Französisch. Aber was ist zu tun, wenn ich ColorPicker für andere Sprachen wie Russisch oder Estnisch erstellen muss? Versucht, 'Locale dLocale = new Locale (" ru ") zu verwenden; Locale.setDefault (dLocale); ', aber es funktioniert nicht. – Alyona
@ user3629015 lol, Russisch und Estnisch sind zwei Sprachen, die ich neben Englisch spreche :) Sehen Sie sich 3ph3r Antwort in diesem Fall an. –
почему все всегда забывают про русских? ( – sinedsem
- 1. Sprache des Datums
- 2. Sprache des Texts erkennen
- 3. javafx Wechsel Größe des swingNode
- 4. Anpassen des JavaFX-DatePicker-Steuerelements
- 5. Koordinaten des Schiebereglers in JavaFX
- 6. Ermitteln des Aufrufknotens in JavaFX Listener ändern
- 7. JavaFX: Slider/Divider des SplitPane ausblenden
- 8. Ändern des Hintergrundbilds in Laufzeit mit javafx
- 9. Problem beim Laden des relativen Pfades des Bildes in javafx
- 10. Android Tag-Manager Sprache ändern Wenn der Benutzer die App ändert Sprache, nicht die Sprache des Gerätes
- 11. C# Spracherkennungsfehler - Die Sprache für die Grammatik stimmt nicht mit der Sprache des Spracherkenners überein
- 12. Wie sollte meine Android-App ihre Sprache ändern, wenn der Benutzer die Sprache des Mobiltelefons ändert?
- 13. CubicCurve JavaFX
- 14. Sprache in einer Sprache zu einer anderen Sprache
- 15. Wie lautet der Name des Landes statt des Namens in der Sprache des Geräts?
- 16. JavaFX Duplikationsfenster
- 17. JavaFX - Multidimensionales hashmap wird überschrieben
- 18. Python 2 oder Python 3 als erste Sprache des Schülers
- 19. Wie lernt man die Sprache des Benutzers auf Asp.Net MVC?
- 20. Ermitteln der Sprache des Zeichenfolgenwerts aus einer Datenbankspalte
- 21. Die Sprache der Fehlermeldungen des PostgresSQL-Servers in Englisch ändern
- 22. C#: Buchstaben des Alphabets für skandinavische Sprache erhalten?
- 23. Python Sprache Frage: Attribut des Objekts() vs Funktion
- 24. `img` Element mit` lang` Attribut: Sprache des Bildes selbst?
- 25. Ermitteln der Sprache des Webbenutzers, z.B. in JavaScript?
- 26. So stellen Sie die Sprache des iPhone zur Laufzeit ein
- 27. Sprache der Website: Gebietsschema oder IP-Adresse des Browsers verwenden
- 28. So erhalten Sie detaillierte Sprache des Geräts in Swift
- 29. Wie erkennt man die Sprache des vom Benutzer eingegebenen Textes?
- 30. x - qTranslate-Sprache wird beim Herunterfahren des Browsers nicht gespeichert
Für Übersetzung von Standard-Systemfenster auf den anderen Sprachen sind einige Informationen hier: https://stackoverflow.com/a/45980313/3937190 –