我正在尝试在电子应用程序上添加翻译支持,但在更新“应用程序”菜单时遇到了问题。我提到开发已经完成了。在macOS上测试过,但我也愿意让它在Windows上运行。
据我所知,菜单功能只能在主进程中管理,因此我正在使用ipcMain& ipcRenderer之间的主要和&渲染器过程。
问题是我正在更新一个标签,它似乎已更新(显示在日志中),但它不会在渲染菜单中更新它。
//Menu.getApplicationMenu() is in english
mainMenu.language = "nl_nl";
//updating 1 label
mainMenu.object.items[0].submenu.items[0].label =i18n.__({phrase: 'Hello', locale: mainMenu.language}),
Menu.setApplicationMenu(mainMenu.object);
let currentMenu = Menu.getApplicationMenu();
//currentMenu reflects the change but the rendered menu still shows the old value (english)
答案 0 :(得分:1)
我认为你遗失了Menu.setApplicationMenu(template)
。
要使用Menu.buildFromTemplate(mainMenu.object)
,首先需要在模板上运行Menu.setApplicationMenu(template)
,将其转换为{{1}}可以接收的内容。
这将是这样的: