加载资源包

JavaFX 提供了一种使用户界面国际化的简便方法。从 FXML 文件创建视图时,你可以为 FXMLLoader 提供资源包:

Locale locale = new Locale("en", "UK");
ResourceBundle bundle = ResourceBundle.getBundle("strings", locale);

Parent root = FXMLLoader.load(getClass().getClassLoader()
                                  .getResource("ui/main.fxml"), bundle);

这个提供的包自动用于翻译 FXML 文件中以%开头的所有文本。让我们说你的属性文件 strings_en_UK.properties 包含以下行:

ui.button.text=I'm a Button

如果你的 FXML 中有一个按钮定义,如下所示:

<Button text="%ui.button.text"/>

它将自动接收关键 ui.button.text 的翻译。