47 lines
No EOL
1.4 KiB
Java
47 lines
No EOL
1.4 KiB
Java
package client.utils;
|
|
|
|
import javafx.beans.property.ObjectProperty;
|
|
import javafx.beans.property.SimpleObjectProperty;
|
|
import java.util.Locale;
|
|
import java.util.ResourceBundle;
|
|
|
|
public class LocaleManager {
|
|
private final ObjectProperty<Locale> currentLocale = new SimpleObjectProperty<>(Locale.ENGLISH);
|
|
private final ObjectProperty<ResourceBundle> currentBundle = new SimpleObjectProperty<>();
|
|
|
|
private static final String RESOURCE_BUNDLE_PATH = "locale/lang";
|
|
|
|
public LocaleManager() {
|
|
// TODO: Set currentLocale to config value instead of EN default.
|
|
updateBundle();
|
|
currentLocale.addListener((_, _, _) -> updateBundle());
|
|
}
|
|
|
|
private void updateBundle() {
|
|
ResourceBundle bundle = ResourceBundle.getBundle(RESOURCE_BUNDLE_PATH,
|
|
currentLocale.get(),
|
|
ResourceBundle.Control.getControl(ResourceBundle.Control.FORMAT_PROPERTIES)
|
|
);
|
|
currentBundle.set(bundle);
|
|
}
|
|
|
|
@SuppressWarnings("unused")
|
|
public void setLocale(Locale locale) {
|
|
currentLocale.set(locale);
|
|
}
|
|
|
|
@SuppressWarnings("unused")
|
|
public Locale getLocale() {
|
|
return currentLocale.get();
|
|
}
|
|
|
|
@SuppressWarnings("unused")
|
|
public ResourceBundle getBundle() {
|
|
return currentBundle.get();
|
|
}
|
|
|
|
@SuppressWarnings("unused")
|
|
public ObjectProperty<ResourceBundle> getBundleProperty() {
|
|
return currentBundle;
|
|
}
|
|
} |