You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Desktop shell menus are limited to English and Chinese
#12018
The Desktop shell (lib/main.js in app.asar) owns the native menus: the Windows context menu in the chat, the application menu, the tray menu, the welcome window and the update dialogs. Its copy lives in two dictionaries,
As a result, a user who selects any other language in the Web UI still gets an English native context menu (Undo/Redo/Cut/Copy/Paste/Select All), English application/tray menus and English update dialogs. The Web half of DSH supports arbitrary locales through ctx.locale, and third-party plugins can register languages (for example https://github.com/elims777/dsh_languages with 14 languages), but the Electron shell cannot consume them.
Request
Please let the Desktop shell consume the same locale catalog as the Web UI, at least for the context and application menus. Two workable shapes:
Read dictionaries from the profile. The shell looks up an optional <DSH_HOME>/profiles/<profile>/locales/<id>.json (same flat key → string shape as the Web dictionaries) and uses it when the resolved language is not en/zh.
Accept extra dictionaries from enabled plugins. A plugin package can ship desktop/locale/<id>.json next to its dsh.client bundle; the shell merges the dictionaries of enabled plugins for the active language.
Either way the fallback stays English, and app.getPreferredSystemLanguages() keeps deciding the initial language.
Reproduction
Set the DSH UI language to anything other than English or Chinese (for example with a third-party language pack).
Right-click inside the chat input or over selected text.
The context menu shows Undo / Redo / Cut / Copy / Paste / Select All in English.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
The Desktop shell (
lib/main.jsinapp.asar) owns the native menus: the Windows context menu in the chat, the application menu, the tray menu, the welcome window and the update dialogs. Its copy lives in two dictionaries,and
resolveDesktopLocale()maps everything that is notzh*toen:As a result, a user who selects any other language in the Web UI still gets an English native context menu (Undo/Redo/Cut/Copy/Paste/Select All), English application/tray menus and English update dialogs. The Web half of DSH supports arbitrary locales through
ctx.locale, and third-party plugins can register languages (for example https://github.com/elims777/dsh_languages with 14 languages), but the Electron shell cannot consume them.Request
Please let the Desktop shell consume the same locale catalog as the Web UI, at least for the context and application menus. Two workable shapes:
<DSH_HOME>/profiles/<profile>/locales/<id>.json(same flatkey → stringshape as the Web dictionaries) and uses it when the resolved language is noten/zh.desktop/locale/<id>.jsonnext to itsdsh.clientbundle; the shell merges the dictionaries of enabled plugins for the active language.Either way the fallback stays English, and
app.getPreferredSystemLanguages()keeps deciding the initial language.Reproduction
Undo / Redo / Cut / Copy / Paste / Select Allin English.All reactions