JavaFX (не-fxml) локализация - PullRequest
0 голосов
/ 15 мая 2018

Я изучаю, как использовать 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» - это пакет, в котором находится класс локализации), похоже, не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...