docs/archives/112-desktop-ipc-fixes/language-switch-fix.md
功能提示词管理的语言切换按钮显示"Object Promise"而不是正确的语言名称(如"中文"或"English")。
创建ITemplateLanguageService接口,确保跨环境一致性:
export interface ITemplateLanguageService {
initialize(): Promise<void>;
getCurrentLanguage(): Promise<BuiltinTemplateLanguage>;
setLanguage(language: BuiltinTemplateLanguage): Promise<void>;
toggleLanguage(): Promise<BuiltinTemplateLanguage>;
isValidLanguage(language: string): Promise<boolean>;
getSupportedLanguages(): Promise<BuiltinTemplateLanguage[]>;
}
<!-- 修复前 -->
<span>{{ languageService.getCurrentLanguage() }}</span>
<!-- 修复后 -->
<span>{{ currentLanguage }}</span>
<script setup>
const currentLanguage = ref('')
onMounted(async () => {
currentLanguage.value = await languageService.getCurrentLanguage()
})
</script>
// preload.js
templateLanguage: {
getCurrentLanguage: async () => {
const result = await ipcRenderer.invoke('template-getCurrentBuiltinTemplateLanguage');
if (!result.success) throw new Error(result.error);
return result.data;
}
}
// main.js
ipcMain.handle('template-getCurrentBuiltinTemplateLanguage', async (event) => {
try {
const result = await templateManager.getCurrentBuiltinTemplateLanguage();
return createSuccessResponse(result);
} catch (error) {
return createErrorResponse(error);
}
});
106-template-management/troubleshooting.md 第9节。这个修复建立了完整的异步接口设计模式,为后续的IPC开发提供了标准。