* feat: integrate i18next for internationalization support - Added i18next and react-i18next dependencies for localization. - Updated various components to utilize translation functions for user-facing text. - Enhanced user experience by providing multilingual support across the application. * feat: improve i18n implementation with better translations and accessibility - Add proper i18n keys for language switcher tooltips and aria-labels - Replace hardcoded Chinese console error messages with i18n keys - Add missing translation keys for new UI elements - Improve accessibility with proper aria-label attributes --------- Co-authored-by: Jason <farion1231@gmail.com>
2.2 KiB
2.2 KiB
CC Switch 国际化功能说明
已完成的工作
- 安装依赖:添加了
react-i18next和i18next包 - 配置国际化:在
src/i18n/目录下创建了配置文件 - 翻译文件:创建了英文和中文翻译文件
- 组件更新:替换了主要组件中的硬编码文案
- 语言切换器:添加了语言切换按钮
文件结构
src/
├── i18n/
│ ├── index.ts # 国际化配置文件
│ └── locales/
│ ├── en.json # 英文翻译
│ └── zh.json # 中文翻译
├── components/
│ └── LanguageSwitcher.tsx # 语言切换组件
└── main.tsx # 导入国际化配置
默认语言设置
- 默认语言:英文 (en)
- 回退语言:英文 (en)
使用方式
-
在组件中导入
useTranslation:import { useTranslation } from 'react-i18next'; function MyComponent() { const { t } = useTranslation(); return <div>{t('common.save')}</div>; } -
切换语言:
const { i18n } = useTranslation(); i18n.changeLanguage('zh'); // 切换到中文
翻译键结构
common.*- 通用文案(保存、取消、设置等)header.*- 头部相关文案provider.*- 供应商相关文案notifications.*- 通知消息settings.*- 设置页面文案apps.*- 应用名称console.*- 控制台日志信息
测试功能
应用已添加了语言切换按钮(地球图标),点击可以在中英文之间切换,验证国际化功能是否正常工作。
已更新的组件
- ✅ App.tsx - 主应用组件
- ✅ ConfirmDialog.tsx - 确认对话框
- ✅ AddProviderModal.tsx - 添加供应商弹窗
- ✅ EditProviderModal.tsx - 编辑供应商弹窗
- ✅ ProviderList.tsx - 供应商列表
- ✅ LanguageSwitcher.tsx - 语言切换器
- 🔄 SettingsModal.tsx - 设置弹窗(部分完成)
注意事项
- 所有新的文案都应该添加到翻译文件中,而不是硬编码
- 翻译键名应该有意义且结构化
- 可以通过修改
src/i18n/index.ts中的lng配置来更改默认语言