本机Mac菜单栏的国际化

时间:2015-02-17 11:29:01

标签: macos javafx internationalization menubar

我创建了一个JavaFX应用程序,它使用Mac上的本机菜单栏

menuBar.setUseSystemMenuBar(true);

除了我定义的菜单项外,还会生成4个标准Mac菜单项。我的问题是,这些附加项目都是英文的,而不是德语作为应用程序的其余部分。我的Mac设置为德语,Java默认语言环境也是德语。任何人都可以告诉我如何修改这些默认条目,以便它们遵守我的机器的语言设置吗?

2 个答案:

答案 0 :(得分:0)

我不知道是否可以使用Java代码直接设置菜单栏的语言。但是,您可以捆绑您的应用程序,然后为您要支持的每种语言添加本地化文件夹。

例如,如果您的应用程序包名为“test.app”,则只需创建一个文件夹test.app/Contents/Resources/German.lproj即可。现在,当您启动应用程序时,标准菜单将自动以德语显示。

答案 1 :(得分:0)

您可以使用NSMenuFX访问OS X上的自动生成菜单栏,然后​​重命名菜单项,如下所示:

NSMenuBarAdapter adapter = new NSMenuBarAdapter();

// Get the default menu bar as JavaFX object
MenuBar menuBar = adapter.getMenuBar();

// Change the name of the first menu item
menuBar.getMenus().get(0).setText("Hello World");

// Update the menu bar
adapter.setMenuBar(menuBar);

它可能不是最优雅的本地化方式,但对我来说它有效;)