feat(menu): add 'to-help-translate' button

This commit is contained in:
JellyBrick
2023-12-02 08:25:07 +09:00
parent a6c8b887e3
commit 4ab4bb4cb3
2 changed files with 37 additions and 16 deletions

View File

@ -126,7 +126,10 @@
"message": "Language will be changed after restart", "message": "Language will be changed after restart",
"title": "Language Changed" "title": "Language Changed"
}, },
"label": "Language" "label": "Language",
"submenu": {
"to-help-translate": "Want to help translate? Click here"
}
}, },
"resume-on-start": "Resume last song when app starts", "resume-on-start": "Resume last song when app starts",
"single-instance-lock": "Single Instance Lock", "single-instance-lock": "Single Instance Lock",

View File

@ -8,6 +8,7 @@ import {
dialog, dialog,
Menu, Menu,
MenuItem, MenuItem,
shell,
} from 'electron'; } from 'electron';
import prompt from 'custom-electron-prompt'; import prompt from 'custom-electron-prompt';
@ -361,23 +362,40 @@ export const mainMenuTemplate = async (
}, },
{ {
label: t('main.menu.options.submenu.language.label') + ' (Language)', label: t('main.menu.options.submenu.language.label') + ' (Language)',
submenu: availableLanguages.map( submenu: [
(lang): Electron.MenuItemConstructorOptions => ({ {
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`, label: t(
type: 'checkbox', 'main.menu.options.submenu.language.submenu.to-help-translate',
checked: config.get('options.language') === lang, ),
type: 'normal',
click() { click() {
config.setMenuOption('options.language', lang); const url = 'https://hosted.weblate.org/engage/youtube-music/';
refreshMenu(win); shell.openExternal(url);
setLanguage(lang);
dialog.showMessageBox(win, {
title: t('main.menu.options.submenu.language.dialog.title'),
message: t(
'main.menu.options.submenu.language.dialog.message',
),
});
}, },
}), } as Electron.MenuItemConstructorOptions,
].concat(
availableLanguages
.map(
(lang): Electron.MenuItemConstructorOptions => ({
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`,
type: 'checkbox',
checked: config.get('options.language') === lang,
click() {
config.setMenuOption('options.language', lang);
refreshMenu(win);
setLanguage(lang);
dialog.showMessageBox(win, {
title: t(
'main.menu.options.submenu.language.dialog.title',
),
message: t(
'main.menu.options.submenu.language.dialog.message',
),
});
},
}),
)
.sort((a, b) => a.label!.localeCompare(b.label!)),
), ),
}, },
{ type: 'separator' }, { type: 'separator' },