- 缩短菜单标题,解决显示不全问题 - 添加跟随系统语言选项,作为默认选项 - 移除语言切换时的页面刷新,实现无刷新切换 - 完成主要页面的多语言替换: * ConfigPage - 全局配置页面 * ResetPassword - 重置密码页面 * LeaderList - Leader 列表页面 * UserList - 用户列表页面 * Statistics - 统计信息页面 * OrderList - 订单列表页面 * TemplateList - 模板列表页面 * CopyTradingList - 跟单配置列表页面 - 添加简体中文、繁体中文和英文的完整翻译键 - 优化语言设置页面,支持跟随系统语言
7.4 KiB
7.4 KiB
多语言支持实现状态
✅ 已完成的工作
后端部分(100% 完成)
1. 核心框架 ✅
- ✅ 创建语言资源文件(messages_zh_CN.properties, messages_zh_TW.properties, messages_en.properties)
- ✅ 配置 MessageSource Bean(MessageSourceConfig.kt)
- ✅ 创建 LocaleInterceptor 拦截器
- ✅ 修改 ErrorCode 枚举,添加 messageKey 字段(100+ 条错误消息)
- ✅ 修改 ApiResponse.error() 方法,支持多语言
- ✅ 创建 MessageUtils 工具类
- ✅ 更新 WebMvcConfig,注册 LocaleInterceptor
2. Controller 更新 ✅(全部完成)
- ✅ AccountController - 完全更新
- ✅ AuthController - 完全更新
- ✅ LeaderController - 完全更新
- ✅ UserController - 完全更新
- ✅ CopyTradingController - 完全更新
- ✅ CopyTradingTemplateController - 完全更新
- ✅ MarketController - 完全更新
- ✅ CopyTradingStatisticsController - 完全更新(包含 CopyOrderTrackingController)
- ✅ ProxyConfigController - 完全更新
- ✅ HealthController - 无需更新(无错误响应)
3. 编译状态 ✅
- ✅ 后端编译通过,无错误
- ✅ 所有 ApiResponse.error() 调用都已传入 messageSource 参数
前端部分(部分完成)
1. 核心框架 ✅
- ✅ 安装 i18next 和 react-i18next 依赖
- ✅ 配置 i18n(语言检测、资源加载)
- ✅ 创建语言包文件结构(zh-CN, zh-TW, en)
- ✅ 在 api.ts 中添加语言 Header(X-Language)
- ✅ 在 main.tsx 中初始化 i18n
2. 页面更新 ✅(2个页面已完成)
- ✅ AccountDetail.tsx - 完全使用 i18n
- ✅ App.tsx - 订单推送通知已使用 i18n,Ant Design locale 已配置
- ✅ Login.tsx - 完全使用 i18n
3. 语言包扩展 ✅
- ✅ 添加了登录相关翻译(login.*)
- ✅ 添加了订单相关翻译(order.*)
- ✅ 添加了账户相关翻译(account.*)
- ✅ 添加了通用翻译(common.*)
4. 编译状态 ✅
- ✅ 前端编译通过,无错误
- ⚠️ 有 5 个 TypeScript linter 警告(文件存在,可能是缓存问题)
⏳ 待完成的工作
前端部分(21个页面待更新)
需要更新以下页面组件,使用 useTranslation Hook 替换硬编码文本:
- AccountList.tsx
- AccountImport.tsx
- AccountEdit.tsx
- LeaderList.tsx
- LeaderAdd.tsx
- LeaderEdit.tsx
- TemplateList.tsx
- TemplateAdd.tsx
- TemplateEdit.tsx
- CopyTradingList.tsx
- CopyTradingAdd.tsx
- CopyTradingStatistics.tsx
- CopyTradingBuyOrders.tsx
- CopyTradingSellOrders.tsx
- CopyTradingMatchedOrders.tsx
- PositionList.tsx
- OrderList.tsx
- Statistics.tsx
- UserList.tsx
- ResetPassword.tsx
- SystemSettings.tsx
- ConfigPage.tsx
语言包扩展
根据页面内容,可能需要添加更多翻译键:
- Leader 相关翻译
- Template 相关翻译
- CopyTrading 相关翻译
- Position 相关翻译
- Statistics 相关翻译
- 等等
测试建议
后端测试
- ✅ 编译通过
- ⏳ 测试不同语言 Header 下的错误消息显示
- ⏳ 测试默认语言(无 Header 时)
前端测试
- ✅ 编译通过
- ⏳ 测试系统语言自动检测
- ⏳ 测试语言切换(如果添加了切换功能)
- ⏳ 测试不同语言下的页面显示
- ⏳ 测试 API 请求是否正确传递语言 Header
使用说明
后端
所有 Controller 已更新,错误消息会自动根据 HTTP Header X-Language 或 Accept-Language 返回对应语言。
前端
已更新的页面会自动根据系统语言显示对应文本。其他页面需要逐步更新。
下一步
- 逐步更新剩余的前端页面组件
- 根据页面内容扩展语言包
- 全面测试多语言功能
- (可选)添加语言切换组件
✅ 已完成的工作
后端部分(100% 完成)
1. 核心框架 ✅
- ✅ 创建语言资源文件(messages_zh_CN.properties, messages_zh_TW.properties, messages_en.properties)
- ✅ 配置 MessageSource Bean(MessageSourceConfig.kt)
- ✅ 创建 LocaleInterceptor 拦截器
- ✅ 修改 ErrorCode 枚举,添加 messageKey 字段(100+ 条错误消息)
- ✅ 修改 ApiResponse.error() 方法,支持多语言
- ✅ 创建 MessageUtils 工具类
- ✅ 更新 WebMvcConfig,注册 LocaleInterceptor
2. Controller 更新 ✅(全部完成)
- ✅ AccountController - 完全更新
- ✅ AuthController - 完全更新
- ✅ LeaderController - 完全更新
- ✅ UserController - 完全更新
- ✅ CopyTradingController - 完全更新
- ✅ CopyTradingTemplateController - 完全更新
- ✅ MarketController - 完全更新
- ✅ CopyTradingStatisticsController - 完全更新(包含 CopyOrderTrackingController)
- ✅ ProxyConfigController - 完全更新
- ✅ HealthController - 无需更新(无错误响应)
3. 编译状态 ✅
- ✅ 后端编译通过,无错误
- ✅ 所有 ApiResponse.error() 调用都已传入 messageSource 参数
前端部分(部分完成)
1. 核心框架 ✅
- ✅ 安装 i18next 和 react-i18next 依赖
- ✅ 配置 i18n(语言检测、资源加载)
- ✅ 创建语言包文件结构(zh-CN, zh-TW, en)
- ✅ 在 api.ts 中添加语言 Header(X-Language)
- ✅ 在 main.tsx 中初始化 i18n
2. 页面更新 ✅(2个页面已完成)
- ✅ AccountDetail.tsx - 完全使用 i18n
- ✅ App.tsx - 订单推送通知已使用 i18n,Ant Design locale 已配置
- ✅ Login.tsx - 完全使用 i18n
3. 语言包扩展 ✅
- ✅ 添加了登录相关翻译(login.*)
- ✅ 添加了订单相关翻译(order.*)
- ✅ 添加了账户相关翻译(account.*)
- ✅ 添加了通用翻译(common.*)
4. 编译状态 ✅
- ✅ 前端编译通过,无错误
- ⚠️ 有 5 个 TypeScript linter 警告(文件存在,可能是缓存问题)
⏳ 待完成的工作
前端部分(21个页面待更新)
需要更新以下页面组件,使用 useTranslation Hook 替换硬编码文本:
- AccountList.tsx
- AccountImport.tsx
- AccountEdit.tsx
- LeaderList.tsx
- LeaderAdd.tsx
- LeaderEdit.tsx
- TemplateList.tsx
- TemplateAdd.tsx
- TemplateEdit.tsx
- CopyTradingList.tsx
- CopyTradingAdd.tsx
- CopyTradingStatistics.tsx
- CopyTradingBuyOrders.tsx
- CopyTradingSellOrders.tsx
- CopyTradingMatchedOrders.tsx
- PositionList.tsx
- OrderList.tsx
- Statistics.tsx
- UserList.tsx
- ResetPassword.tsx
- SystemSettings.tsx
- ConfigPage.tsx
语言包扩展
根据页面内容,可能需要添加更多翻译键:
- Leader 相关翻译
- Template 相关翻译
- CopyTrading 相关翻译
- Position 相关翻译
- Statistics 相关翻译
- 等等
测试建议
后端测试
- ✅ 编译通过
- ⏳ 测试不同语言 Header 下的错误消息显示
- ⏳ 测试默认语言(无 Header 时)
前端测试
- ✅ 编译通过
- ⏳ 测试系统语言自动检测
- ⏳ 测试语言切换(如果添加了切换功能)
- ⏳ 测试不同语言下的页面显示
- ⏳ 测试 API 请求是否正确传递语言 Header
使用说明
后端
所有 Controller 已更新,错误消息会自动根据 HTTP Header X-Language 或 Accept-Language 返回对应语言。
前端
已更新的页面会自动根据系统语言显示对应文本。其他页面需要逐步更新。
下一步
- 逐步更新剩余的前端页面组件
- 根据页面内容扩展语言包
- 全面测试多语言功能
- (可选)添加语言切换组件