|
1 |
| -// 菜单栏、dock 栏菜单设置 |
2 |
| - |
3 |
| -const electron = require('electron') |
4 |
| -const BrowserWindow = electron.BrowserWindow |
5 |
| -const Menu = electron.Menu |
6 |
| -const app = electron.app |
7 |
| - |
8 |
| -let template = [{ |
9 |
| - label: '编辑', |
10 |
| - submenu: [{ |
11 |
| - label: '撤销', |
12 |
| - accelerator: 'CmdOrCtrl+Z', |
13 |
| - role: 'undo' |
14 |
| - }, { |
15 |
| - label: '重做', |
16 |
| - accelerator: 'Shift+CmdOrCtrl+Z', |
17 |
| - role: 'redo' |
18 |
| - }, { |
19 |
| - type: 'separator' |
20 |
| - }, { |
21 |
| - label: '剪切', |
22 |
| - accelerator: 'CmdOrCtrl+X', |
23 |
| - role: 'cut' |
24 |
| - }, { |
25 |
| - label: '复制', |
26 |
| - accelerator: 'CmdOrCtrl+C', |
27 |
| - role: 'copy' |
28 |
| - }, { |
29 |
| - label: '粘贴', |
30 |
| - accelerator: 'CmdOrCtrl+V', |
31 |
| - role: 'paste' |
32 |
| - }, { |
33 |
| - label: '全选', |
34 |
| - accelerator: 'CmdOrCtrl+A', |
35 |
| - role: 'selectall' |
36 |
| - }] |
37 |
| -}, { |
38 |
| - label: '查看', |
39 |
| - submenu: [{ |
40 |
| - label: '重载', |
41 |
| - accelerator: 'CmdOrCtrl+R', |
42 |
| - click: function (item, focusedWindow) { |
43 |
| - if (focusedWindow) { |
44 |
| - // 重载之后, 刷新并关闭所有的次要窗体 |
45 |
| - if (focusedWindow.id === 1) { |
46 |
| - BrowserWindow.getAllWindows().forEach(function (win) { |
47 |
| - if (win.id > 1) { |
48 |
| - win.close() |
49 |
| - } |
50 |
| - }) |
51 |
| - } |
52 |
| - focusedWindow.reload() |
53 |
| - } |
54 |
| - } |
55 |
| - }, { |
56 |
| - label: '切换全屏', |
57 |
| - accelerator: (function () { |
58 |
| - if (process.platform === 'darwin') { |
59 |
| - return 'Ctrl+Command+F' |
60 |
| - } else { |
61 |
| - return 'F11' |
62 |
| - } |
63 |
| - })(), |
64 |
| - click: function (item, focusedWindow) { |
65 |
| - if (focusedWindow) { |
66 |
| - focusedWindow.setFullScreen(!focusedWindow.isFullScreen()) |
67 |
| - } |
68 |
| - } |
69 |
| - }, { |
70 |
| - label: '切换开发者工具', |
71 |
| - accelerator: (function () { |
72 |
| - if (process.platform === 'darwin') { |
73 |
| - return 'Alt+Command+I' |
74 |
| - } else { |
75 |
| - return 'Ctrl+Shift+I' |
76 |
| - } |
77 |
| - })(), |
78 |
| - click: function (item, focusedWindow) { |
79 |
| - if (focusedWindow) { |
80 |
| - focusedWindow.toggleDevTools() |
81 |
| - } |
82 |
| - } |
83 |
| - } |
84 |
| - ] |
85 |
| -}, { |
86 |
| - label: '窗口', |
87 |
| - role: 'window', |
88 |
| - submenu: [{ |
89 |
| - label: '最小化', |
90 |
| - accelerator: 'CmdOrCtrl+M', |
91 |
| - role: 'minimize' |
92 |
| - }, { |
93 |
| - label: '关闭', |
94 |
| - accelerator: 'CmdOrCtrl+W', |
95 |
| - role: 'close' |
96 |
| - }, { |
97 |
| - type: 'separator' |
98 |
| - }, { |
99 |
| - label: '重新打开窗口', |
100 |
| - accelerator: 'CmdOrCtrl+Shift+T', |
101 |
| - enabled: false, |
102 |
| - key: 'reopenMenuItem', |
103 |
| - click: function () { |
104 |
| - app.emit('activate') |
105 |
| - } |
106 |
| - }] |
107 |
| -}, { |
108 |
| - label: '帮助', |
109 |
| - role: 'help', |
110 |
| - submenu: [{ |
111 |
| - label: 'Repository', |
112 |
| - click: function() { |
113 |
| - electron.shell.openExternal('https://github.com/Suremotoo/e-tools') |
114 |
| - } |
115 |
| - }, { |
116 |
| - label: 'Open Issue', |
117 |
| - click: function() { |
118 |
| - electron.shell.openExternal('https://github.com/Suremotoo/e-tools/issues/new') |
119 |
| - } |
120 |
| - }] |
121 |
| -}] |
122 |
| - |
123 |
| -function addUpdateMenuItems (items, position) { |
124 |
| - if (process.mas) return |
125 |
| - |
126 |
| - const version = electron.app.getVersion() |
127 |
| - let updateItems = [{ |
128 |
| - label: `Version ${version}`, |
129 |
| - enabled: false |
130 |
| - }, { |
131 |
| - label: '正在检查更新', |
132 |
| - enabled: false, |
133 |
| - key: 'checkingForUpdate' |
134 |
| - }, { |
135 |
| - label: '检查更新', |
136 |
| - visible: false, |
137 |
| - key: 'checkForUpdate', |
138 |
| - click: function () { |
139 |
| - require('electron').autoUpdater.checkForUpdates() |
140 |
| - } |
141 |
| - }, { |
142 |
| - label: '重启并安装更新', |
143 |
| - enabled: true, |
144 |
| - visible: false, |
145 |
| - key: 'restartToUpdate', |
146 |
| - click: function () { |
147 |
| - require('electron').autoUpdater.quitAndInstall() |
148 |
| - } |
149 |
| - }] |
150 |
| - |
151 |
| - items.splice.apply(items, [position, 0].concat(updateItems)) |
152 |
| -} |
153 |
| - |
154 |
| -function findReopenMenuItem () { |
155 |
| - const menu = Menu.getApplicationMenu() |
156 |
| - if (!menu) return |
157 |
| - |
158 |
| - let reopenMenuItem |
159 |
| - menu.items.forEach(function (item) { |
160 |
| - if (item.submenu) { |
161 |
| - item.submenu.items.forEach(function (item) { |
162 |
| - if (item.key === 'reopenMenuItem') { |
163 |
| - reopenMenuItem = item |
164 |
| - } |
165 |
| - }) |
166 |
| - } |
167 |
| - }) |
168 |
| - return reopenMenuItem |
| 1 | +const Store = require('electron-store'); |
| 2 | +const store = new Store(); |
| 3 | +let _let_language = store.get('languageStore'); |
| 4 | +console.log(_let_language); |
| 5 | +let getLocalMenu = 'zh-menu.js'; |
| 6 | +switch (_let_language) { |
| 7 | + case "ru": |
| 8 | + getLocalMenu = "ru-menu.js" |
| 9 | + break; |
| 10 | + case "us": |
| 11 | + getLocalMenu = "us-menu.js" |
| 12 | + break; |
| 13 | + case "cn": |
| 14 | + getLocalMenu = "zh-menu.js" |
| 15 | + break; |
169 | 16 | }
|
170 | 17 |
|
171 |
| -if (process.platform === 'darwin') { |
172 |
| - const name = electron.app.getName() |
173 |
| - template.unshift({ |
174 |
| - label: name, |
175 |
| - submenu: [{ |
176 |
| - label: `关于 ${name}`, |
177 |
| - role: 'about' |
178 |
| - }, { |
179 |
| - type: 'separator' |
180 |
| - }, { |
181 |
| - label: '服务', |
182 |
| - role: 'services', |
183 |
| - submenu: [] |
184 |
| - }, { |
185 |
| - type: 'separator' |
186 |
| - }, { |
187 |
| - label: `隐藏 ${name}`, |
188 |
| - accelerator: 'Command+H', |
189 |
| - role: 'hide' |
190 |
| - }, { |
191 |
| - label: '隐藏其它', |
192 |
| - accelerator: 'Command+Alt+H', |
193 |
| - role: 'hideothers' |
194 |
| - }, { |
195 |
| - label: '显示全部', |
196 |
| - role: 'unhide' |
197 |
| - }, { |
198 |
| - type: 'separator' |
199 |
| - }, { |
200 |
| - label: '退出', |
201 |
| - accelerator: 'Command+Q', |
202 |
| - click: function () { |
203 |
| - app.quit() |
204 |
| - } |
205 |
| - }] |
206 |
| - }) |
207 |
| - |
208 |
| - // 窗口菜单. |
209 |
| - template[3].submenu.push({ |
210 |
| - type: 'separator' |
211 |
| - }, { |
212 |
| - label: '前置所有', |
213 |
| - role: 'front' |
214 |
| - }) |
215 |
| - |
216 |
| -// 暂时关闭自动更新菜单,后续打开 |
217 |
| - // addUpdateMenuItems(template[0].submenu, 1) |
218 |
| -} |
219 |
| - |
220 |
| -if (process.platform === 'win32') { |
221 |
| - const helpMenu = template[template.length - 1].submenu |
222 |
| - // 暂时关闭自动更新菜单,后续打开 |
223 |
| - // addUpdateMenuItems(helpMenu, 0) |
224 |
| -} |
225 |
| - |
226 |
| -app.on('ready', function () { |
227 |
| - const menu = Menu.buildFromTemplate(template) |
228 |
| - Menu.setApplicationMenu(menu) |
229 |
| -}) |
230 |
| - |
231 |
| -app.on('browser-window-created', function () { |
232 |
| - let reopenMenuItem = findReopenMenuItem() |
233 |
| - if (reopenMenuItem) reopenMenuItem.enabled = false |
234 |
| -}) |
235 |
| - |
236 |
| -app.on('window-all-closed', function () { |
237 |
| - let reopenMenuItem = findReopenMenuItem() |
238 |
| - if (reopenMenuItem) reopenMenuItem.enabled = true |
239 |
| -}) |
| 18 | +require('../menu/' + getLocalMenu) |
0 commit comments