Я изучаю, как использовать ResourceBundle
в целях локализации, и в настоящее время я экспериментирую с очень маленьким приложением JavaFX.
Это код, который у меня есть:
Основной класс:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane root = new BorderPane();
Button btn = new Button(Localization.labels.getString("s1"));
root.setCenter(btn);
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Класс локализации:
public class Localization
{
public static Locale[] supportedLocales = {
Locale.FRENCH,
Locale.GERMAN,
Locale.ENGLISH
};
public static ResourceBundle labels = ResourceBundle.getBundle("LabelsBundle", supportedLocales[0]);
}
Файлы .properties находятся в том же пакете, что и класс локализации, но я всегда получаю следующее исключение:
Can't find bundle for base name LabelsBundle, locale fr
Работает только при помещении файлов .properties в корневую папку.Как я могу использовать эти файлы в другом месте?Указание пути типа "localization/LabelsBundle"
(при этом «localization» - это пакет, в котором находится класс локализации), похоже, не работает