chore: initialize qiming workspace repository
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* i18n IPC 通道
|
||||
*
|
||||
* 提供主进程语言同步的 IPC 接口
|
||||
*
|
||||
* @version 1.0.0
|
||||
* @updated 2026-04-07
|
||||
*/
|
||||
|
||||
import { ipcMain } from "electron";
|
||||
import log from "electron-log";
|
||||
import { setMainLang, getMainLang } from "../services/i18n";
|
||||
import { getTrayManager } from "../window/trayManager";
|
||||
|
||||
/**
|
||||
* 注册 i18n IPC 通道
|
||||
*/
|
||||
export function registerI18nHandlers(): void {
|
||||
/**
|
||||
* 获取当前主进程语言
|
||||
* @channel i18n:getLang
|
||||
*/
|
||||
ipcMain.handle("i18n:getLang", () => {
|
||||
return getMainLang();
|
||||
});
|
||||
|
||||
/**
|
||||
* 切换主进程语言
|
||||
* @channel i18n:setLang
|
||||
* @param lang 语言代码
|
||||
*/
|
||||
ipcMain.handle("i18n:setLang", async (_event, lang: string) => {
|
||||
try {
|
||||
setMainLang(lang);
|
||||
// 通知托盘刷新菜单和 tooltip
|
||||
getTrayManager()?.refresh();
|
||||
log.info(`[IPC i18n] Language changed to: ${lang}`);
|
||||
return { success: true };
|
||||
} catch (error) {
|
||||
log.error("[IPC i18n] Failed to change language:", error);
|
||||
return { success: false, error: String(error) };
|
||||
}
|
||||
});
|
||||
|
||||
log.info("[IPC] i18n handlers registered");
|
||||
}
|
||||
Reference in New Issue
Block a user