如何本地化从层文件创建的 Netbeans 菜单栏?

How to localize a Netbeans MenuBar created from the layer file?

我使用 org.openide.awt.MenuBar(DataFolder) 构造函数从 layer.xml 文件中注册的操作自动构建菜单栏:

menuBar = new MenuBar(DataFolder.findFolder(FileUtil.getConfigFile("MyMenuBar")));

下面是“混合文件”子菜单中ImportMix动作注册的示例:

@ActionID(category = "MixConsole", id = "org.jjazz.ui.mixconsole.actions.importmix")
@ActionRegistration(displayName = "#CTL_ImportMix", lazy = true)
@ActionReferences(
        {
            @ActionReference(path = "MyMenuBar/MixFile", position = 200)
        })
public class ImportMix extends AbstractAction

我可以轻松地本地化 ImportMix 操作名称,但是如何本地化子菜单名称? (示例中的“MixFile”)

好的,我终于明白了。

可以将 displayName 属性添加到 layer.xml 文件夹,并且可以将属性值重定向到可本地化的 Bundle 属性。

更简单的方法是通过 Netbeans IDE:

编辑 layer.xml
  • select 文件夹“MixFile”(在我的示例中)
  • 右键单击“本地化名称”
  • 输入默认显示名称

它会自动添加属性并使用新的 属性 更新 Bundle.properties 以供本地化。