# 国际化翻译模块化管理

## 目录结构

```
lang/
├── modules/              # 模块化翻译文件目录
│   ├── system/          # 系统管理模块
│   │   ├── user/        # 用户管理翻译
│   │   │   ├── zh_CN.ts
│   │   │   └── en_US.ts
│   │   ├── role/        # 角色管理翻译
│   │   │   ├── zh_CN.ts
│   │   │   └── en_US.ts
│   │   ├── index.ts     # 中文模块索引
│   │   └── index_en.ts  # 英文模块索引
│   ├── components/      # 公共组件翻译
│   │   ├── zh_CN.ts
│   │   └── en_US.ts
│   └── ...              # 其他业务模块
├── zh_CN.ts             # 中文主语言文件
├── en_US.ts             # 英文主语言文件
└── index.ts             # i18n 配置入口
```

## 使用规范

### 1. 创建新模块翻译

#### A. 系统管理模块下的子模块

在 `modules/system/` 目录下创建：

1. 创建子模块文件夹，如 `modules/system/dept/`
2. 创建语言文件：`zh_CN.ts` 和 `en_US.ts`
3. 更新 `modules/system/index.ts` 和 `index_en.ts`

**示例：** `modules/system/dept/zh_CN.ts`
```typescript
// 部门管理模块 - 中文翻译
export default {
  button: {
    add: '新增部门',
    edit: '编辑部门',
    delete: '删除部门'
  },
  form: {
    deptName: '部门名称',
    leader: '负责人'
  }
};
```

**更新 `modules/system/index.ts`：**
```typescript
import user from './user/zh_CN';
import role from './role/zh_CN';
import dept from './dept/zh_CN';  // 新增

export default {
  user,
  role,
  dept  // 新增
};
```

#### B. 其他业务模块

在 `modules/` 目录下创建独立模块：

1. 创建模块文件夹，如 `modules/setting/`
2. 创建语言文件和索引文件
3. 在主语言文件中导入

### 2. 在主语言文件中导入

**当前结构（使用扩展运算符）：**

```typescript
// zh_CN.ts
import components from './modules/components/zh_CN';
import system from './modules/system/index';

export default {
  // ... 其他配置
  components,
  ...system  // 展开 system 模块，包含 user、role 等
};
```

这样 `user` 和 `role` 会直接暴露在根级别，保持向后兼容。

### 3. 在组件中使用

```vue
<script setup>
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
</script>

<template>
  <el-button>{{ t('role.button.add') }}</el-button>
  <el-form-item :label="t('role.form.roleName')">
    ...
  </el-form-item>
</template>
```

## 优势

### ✅ 模块化管理
- 每个功能模块的翻译独立维护
- 文件结构清晰，易于查找和修改

### ✅ 更好的协作
- 不同开发人员可以同时修改不同模块的翻译文件
- 减少 Git 冲突的可能性

### ✅ 按需加载
- 未来可以实现翻译文件的懒加载
- 减小初始加载体积

### ✅ 易于维护
- 翻译内容与业务模块对应
- 便于新增语言支持

## 注意事项

1. **保持结构一致**：中英文翻译文件的结构必须完全一致
2. **避免重复键名**：不同模块的键名可以相同，但同一模块内不能重复
3. **命名规范**：使用小驼峰命名法（camelCase）
4. **注释说明**：在翻译文件顶部添加模块说明注释

## 现有模块

### 系统管理模块 (system)
- **user** - 用户管理（用户列表、新增编辑、角色分配等）
- **role** - 角色管理（角色列表、权限配置、数据权限等）

### 公共模块
- **components** - 公共组件（RightToolbar 等）

## 待添加模块

根据系统功能，后续可添加：

### system 模块下
- dept - 部门管理
- menu - 菜单管理
- post - 岗位管理
- dict - 字典管理
- config - 参数配置
- notice - 通知公告
- log - 日志管理

### 其他业务模块
- monitor - 系统监控
- tool - 系统工具
- ...
