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,7 +362,20 @@ 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: [
{
label: t(
'main.menu.options.submenu.language.submenu.to-help-translate',
),
type: 'normal',
click() {
const url = 'https://hosted.weblate.org/engage/youtube-music/';
shell.openExternal(url);
},
} as Electron.MenuItemConstructorOptions,
].concat(
availableLanguages
.map(
(lang): Electron.MenuItemConstructorOptions => ({ (lang): Electron.MenuItemConstructorOptions => ({
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`, label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`,
type: 'checkbox', type: 'checkbox',
@ -371,13 +385,17 @@ export const mainMenuTemplate = async (
refreshMenu(win); refreshMenu(win);
setLanguage(lang); setLanguage(lang);
dialog.showMessageBox(win, { dialog.showMessageBox(win, {
title: t('main.menu.options.submenu.language.dialog.title'), title: t(
'main.menu.options.submenu.language.dialog.title',
),
message: t( message: t(
'main.menu.options.submenu.language.dialog.message', 'main.menu.options.submenu.language.dialog.message',
), ),
}); });
}, },
}), }),
)
.sort((a, b) => a.label!.localeCompare(b.label!)),
), ),
}, },
{ type: 'separator' }, { type: 'separator' },