fix(shared): i18n coverage and contract updates

- keyPath field no longer tells users to enter a server-side path
- settings.highlight.builtin.* notes, timeout messages in four languages
- prototype-safe dictionary lookup; language as a render-time dependency
- Partial<AppSettings> saveSettings contract, update:stateGet channel
This commit is contained in:
Bill committed 2026-09-20 20:27:03 +08:00
1 parent 23fa566fa9
commit c0342db1e8
16 files changed
+100 -9

No files matched your search

+2 -1
View File
@@ -106,7 +106,7 @@ const api: AppApi = {
ipcRenderer.send(Ipc.HOSTKEY_RESPOND, promptId, action),
getSettings: () => ipcRenderer.invoke(Ipc.SETTINGS_GET),
saveSettings: (next: AppSettings) => ipcRenderer.invoke(Ipc.SETTINGS_SET, next),
saveSettings: (next: Partial<AppSettings>) => ipcRenderer.invoke(Ipc.SETTINGS_SET, next),
onSettingsChanged: (cb: (s: AppSettings) => void) => {
const listener = (_: unknown, s: AppSettings): void => cb(s)
ipcRenderer.on(Ipc.SETTINGS_CHANGED, listener)
@@ -121,6 +121,7 @@ const api: AppApi = {
deleteLayout: (id: string) => ipcRenderer.invoke(Ipc.LAYOUTS_DELETE, id),
updateCheck: () => ipcRenderer.invoke(Ipc.UPDATE_CHECK),
getUpdateState: () => ipcRenderer.invoke(Ipc.UPDATE_STATE_GET),
updateDownload: () => ipcRenderer.invoke(Ipc.UPDATE_DOWNLOAD),
updateInstall: () => ipcRenderer.invoke(Ipc.UPDATE_INSTALL),
updateChangelog: () => ipcRenderer.invoke(Ipc.UPDATE_CHANGELOG),