From ecb7c578c988948ba7fc23d58a0bbce4503c9440 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Sun, 29 Jan 2023 12:50:46 +0000 Subject: [PATCH] Add a menu to override the detected language --- src/app/main/menu.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/app/main/menu.ts b/src/app/main/menu.ts index 4fd7ec6..4d5a8c0 100644 --- a/src/app/main/menu.ts +++ b/src/app/main/menu.ts @@ -14,6 +14,7 @@ import { createWindow } from './windows.js'; import { WindowType } from '../common/types.js'; import CoralApi from '../../api/coral.js'; import { CachedWebServicesList } from '../../common/users.js'; +import { languages } from '../i18n/index.js'; const debug = createDebug('app:main:menu'); @@ -120,6 +121,14 @@ export default class MenuApp { menu.append(new MenuItem({type: 'separator'})); menu.append(new MenuItem({label: t('show_main_window')!, click: () => this.app.showMainWindow()})); menu.append(new MenuItem({label: t('preferences')!, click: () => this.app.showPreferencesWindow()})); + if (dev) menu.append(new MenuItem({label: 'Language', submenu: Menu.buildFromTemplate([ + ...this.app.i18n.options.supportedLngs || ['cimode'], + ].map(l => new MenuItem({ + label: languages[l as keyof typeof languages]?.name ?? l, + type: 'checkbox', + checked: (this.app.i18n.resolvedLanguage ?? this.app.i18n.language).toLowerCase() === l.toLowerCase(), + click: () => this.app.i18n.changeLanguage(l), + })))})); if (dev) menu.append(new MenuItem({label: 'Dump notifications state', click: () => { debug('Accounts', this.app.monitors.notifications.accounts); debug('Friends', this.app.monitors.notifications.onlinefriends);