将语言包组织方式从按语言分组调整为按功能模块分组,以提升可维护性和扩展性。
locales/
├── zh-CN/
│ ├── common.js
│ ├── home.js
│ └── index.js
├── en-US/
│ ├── common.js
│ ├── home.js
│ └── index.js
└── index.js
locales/
├── common/
│ ├── zh_CN.js
│ └── en_US.js
├── pages/
│ └── home/
│ ├── zh_CN.js
│ └── en_US.js
├── index.js
├── README.md
└── STRUCTURE.md
目录组织
zh-CN 改为 zh_CN(使用下划线)导入方式
// 旧方式
import zhCN from './zh-CN'
import enUS from './en-US'
// 新方式
import commonZhCN from './common/zh_CN'
import commonEnUS from './common/en_US'
import homeZhCN from './pages/home/zh_CN'
import homeEnUS from './pages/home/en_US'
导出结构
// 旧方式
export const messages = {
'zh-CN': zhCN,
'en-US': enUS
}
// 新方式
export const messages = {
'zh-CN': {
common: commonZhCN,
home: homeZhCN
},
'en-US': {
common: commonEnUS,
home: homeEnUS
}
}
更易维护
更易扩展
更清晰的职责
团队协作更友好
无影响 - 以下部分保持不变:
t('home.title'))useI18n、useLocaleStore)locales/index.js - 已更新导入和导出逻辑已更新以下文档以反映新结构:
I18N_GUIDE.md - 国际化完整指南locales/README.md - 语言包管理文档locales/STRUCTURE.md - 目录结构说明(新增)i18n/README.md - i18n 使用文档# 1. 创建目录和文件
mkdir -p locales/pages/user
touch locales/pages/user/zh_CN.js
touch locales/pages/user/en_US.js
# 2. 编写翻译内容(略)
# 3. 在 locales/index.js 中注册
# 导入
import userZhCN from './pages/user/zh_CN'
import userEnUS from './pages/user/en_US'
# 注册
export const messages = {
'zh-CN': {
// ...
user: userZhCN
},
'en-US': {
// ...
user: userEnUS
}
}
# 为每个现有模块添加日语文件
touch locales/common/ja_JP.js
touch locales/pages/home/ja_JP.js
# 在 locales/index.js 中注册(参考文档)
zh_CN.js,不是连字符 zh-CN.jslocales/index.js 中注册时,键名要与翻译键的第一级保持一致变更日期:2025-12-01
变更类型:目录结构重组
向后兼容:是(对使用方无影响)