i18n 国际化
版本: v1.0.0+ | 4 语言支持 | 运行时切换
国际化模块为整个应用提供多语言支持,支持运行时动态切换语言,无需重启应用。
核心特性
- 🌍 4 语言支持: 简体中文、English、Francais、Espanol 完整翻译覆盖
- 🔄 运行时热切换: 动态切换语言,界面即时更新无需重启应用
- 📁 命名空间组织: 按功能模块(common/errors/menu/ai/...)结构化管理翻译键
- 🔗 前后端统一: 主进程与渲染进程共用同一套翻译方案,保持一致性
- 🛡️ 自动回退机制: 翻译缺失时自动回退到 zh-CN 默认语言,确保不出现空白
系统架构
┌──────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 渲染进程 (Vue3) │────→│ i18n Core │←────│ 主进程 (Node) │
│ t() / setLocale │ │ 翻译引擎 │ │ t() / setLocale│
└──────────────────┘ └──────┬───────┘ └─────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌──────────┐ ┌────────┐ ┌──────────┐
│ zh-CN.js │ │ en-US │ │ fr-FR / │
│ 默认语言 │ │ .js │ │ es-ES.js │
└──────────┘ └────────┘ └──────────┘
回退链: 当前语言 → zh-CN (默认)系统概述
支持语言
| 语言代码 | 语言 | 状态 |
|---|---|---|
zh-CN | 简体中文 | 默认语言,完整翻译 |
en-US | English | 完整翻译 |
fr-FR | Français | 完整翻译 |
es-ES | Español | 完整翻译 |
核心特性
- 运行时切换: 动态切换语言,界面即时更新
- 命名空间: 按功能模块组织翻译键
- 回退机制: 找不到翻译时自动回退到
zh-CN - 主进程 + 渲染进程: 前后端统一的翻译方案
使用方式
翻译函数
javascript
const { t, setLocale, getLocale } = require("./i18n");
// 翻译
t("errors.notFound"); // "未找到" (zh-CN)
t("common.save"); // "保存"
// 切换语言
setLocale("en-US");
t("errors.notFound"); // "Not Found"
// 获取当前语言
getLocale(); // "en-US"命名空间约定
翻译键结构:
├─ common.* — 通用(保存、取消、确认...)
├─ errors.* — 错误消息
├─ menu.* — 菜单项
├─ settings.* — 设置页面
├─ knowledge.* — 知识库模块
├─ social.* — 社交模块
├─ trading.* — 交易模块
├─ ai.* — AI 功能
└─ ...API
| 函数 | 说明 |
|---|---|
t(key) | 翻译键,返回当前语言的文本 |
setLocale(locale) | 切换当前语言 |
getLocale() | 获取当前语言代码 |
getSupportedLocales() | 返回所有支持的语言列表 |
关键文件
| 文件 | 职责 |
|---|---|
src/main/i18n/index.js | i18n 核心模块 |
src/main/i18n/locales/zh-CN.js | 简体中文翻译 |
src/main/i18n/locales/en-US.js | 英文翻译 |
src/main/i18n/locales/fr-FR.js | 法文翻译 |
src/main/i18n/locales/es-ES.js | 西班牙文翻译 |
