|
|
# 泰语国际化支持实现
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
本项目已成功添加泰语国际化支持,现在支持三种语言:
|
|
|
- 英语 (English) - 默认语言
|
|
|
- 中文简体 (中文)
|
|
|
- 泰语 (ไทย)
|
|
|
|
|
|
## 实现内容
|
|
|
|
|
|
### 1. 语言管理器更新
|
|
|
|
|
|
更新了 `LanguageManager.swift` 文件,在 `Language` 枚举中添加了泰语支持:
|
|
|
|
|
|
```swift
|
|
|
enum Language: String, CaseIterable {
|
|
|
case english = "en"
|
|
|
case chinese = "zh-Hans"
|
|
|
case thai = "th" // 新增泰语支持
|
|
|
|
|
|
var displayName: String {
|
|
|
switch self {
|
|
|
case .english:
|
|
|
return "English"
|
|
|
case .chinese:
|
|
|
return "中文"
|
|
|
case .thai:
|
|
|
return "ไทย" // 泰语显示名称
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var flag: String {
|
|
|
switch self {
|
|
|
case .english:
|
|
|
return "🇺🇸"
|
|
|
case .chinese:
|
|
|
return "🇨🇳"
|
|
|
case .thai:
|
|
|
return "🇹🇭" // 泰国国旗
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### 2. 本地化文件
|
|
|
|
|
|
创建了泰语本地化文件 `MyQrCode/th.lproj/Localizable.strings`,包含以下内容:
|
|
|
|
|
|
#### 主要功能翻译
|
|
|
- **扫描功能**: เครื่องสแกนบาร์โค้ด (Barcode Scanner)
|
|
|
- **创建功能**: เครื่องสร้าง QR Code (QR Code Creator)
|
|
|
- **历史记录**: ประวัติการบันทึก (History Records)
|
|
|
- **设置**: การตั้งค่า (Settings)
|
|
|
|
|
|
#### 用户界面元素
|
|
|
- **按钮**: สแกนใหม่ (Rescan), แชร์ (Share), ยกเลิก (Cancel)
|
|
|
- **提示信息**: วาง QR code หรือบาร์โค้ดในกรอบ (Place QR code or barcode in the frame)
|
|
|
- **错误信息**: ข้อผิดพลาดการสแกน (Scan Error)
|
|
|
|
|
|
#### 权限和设置
|
|
|
- **相机权限**: ต้องการสิทธิ์กล้อง (Camera Permission Required)
|
|
|
- **语言设置**: การตั้งค่าภาษา (Language Settings)
|
|
|
- **应用信息**: ข้อมูลแอป (App Information)
|
|
|
|
|
|
### 3. 完整的本地化覆盖
|
|
|
|
|
|
泰语本地化文件包含了应用中的所有用户可见文本,包括:
|
|
|
|
|
|
- 主界面文本
|
|
|
- 扫描器界面
|
|
|
- 二维码创建界面
|
|
|
- 历史记录界面
|
|
|
- 设置界面
|
|
|
- 错误信息和提示
|
|
|
- 输入表单标签
|
|
|
- 验证消息
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
### 用户切换语言
|
|
|
|
|
|
1. 打开应用
|
|
|
2. 进入设置界面
|
|
|
3. 点击"语言设置"
|
|
|
4. 选择"ไทย" (泰语)
|
|
|
5. 语言将立即生效
|
|
|
|
|
|
### 开发者添加新文本
|
|
|
|
|
|
当需要添加新的用户界面文本时,请:
|
|
|
|
|
|
1. 在 `en.lproj/Localizable.strings` 中添加英文版本
|
|
|
2. 在 `zh-Hans.lproj/Localizable.strings` 中添加中文版本
|
|
|
3. 在 `th.lproj/Localizable.strings` 中添加泰语版本
|
|
|
4. 在代码中使用 `"key".localized` 来获取本地化文本
|
|
|
|
|
|
## 技术特点
|
|
|
|
|
|
### 1. 自动语言检测
|
|
|
- 应用启动时自动检测用户的语言偏好
|
|
|
- 支持运行时语言切换
|
|
|
- 语言设置持久化保存
|
|
|
|
|
|
### 2. 完整的本地化支持
|
|
|
- 所有用户界面文本都已本地化
|
|
|
- 支持格式化字符串 (如 `%@`, `%d`)
|
|
|
- 错误信息和提示信息完整翻译
|
|
|
|
|
|
### 3. 用户体验优化
|
|
|
- 语言切换即时生效
|
|
|
- 显示国旗图标便于识别
|
|
|
- 支持语言代码显示
|
|
|
|
|
|
## 文件结构
|
|
|
|
|
|
```
|
|
|
MyQrCode/
|
|
|
├── en.lproj/
|
|
|
│ └── Localizable.strings # 英文本地化
|
|
|
├── zh-Hans.lproj/
|
|
|
│ └── Localizable.strings # 中文本地化
|
|
|
├── th.lproj/
|
|
|
│ └── Localizable.strings # 泰语本地化 (新增)
|
|
|
├── LanguageManager.swift # 语言管理器 (已更新)
|
|
|
└── LanguageSettingsView.swift # 语言设置界面
|
|
|
```
|
|
|
|
|
|
## 测试建议
|
|
|
|
|
|
1. **功能测试**: 确保所有界面在不同语言下正常显示
|
|
|
2. **文本长度测试**: 泰语文本可能较长,确保UI布局适应
|
|
|
3. **特殊字符测试**: 确保泰语特殊字符正确显示
|
|
|
4. **语言切换测试**: 验证语言切换功能正常工作
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
1. **文本长度**: 泰语翻译通常比英文长,需要确保UI布局能够适应
|
|
|
2. **字体支持**: 确保应用使用的字体支持泰语字符
|
|
|
3. **文化适应性**: 某些概念可能需要根据泰国文化进行调整
|
|
|
4. **维护更新**: 添加新功能时需要同步更新所有语言版本
|
|
|
|
|
|
## 未来扩展
|
|
|
|
|
|
如需添加更多语言支持,只需:
|
|
|
|
|
|
1. 在 `Language` 枚举中添加新语言
|
|
|
2. 创建对应的 `.lproj` 目录和 `Localizable.strings` 文件
|
|
|
3. 添加翻译内容
|
|
|
|
|
|
这种模块化的设计使得添加新语言支持变得简单高效。
|