You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MyQRCode/docs/THAI_LANGUAGE_SUPPORT_READM...

152 lines
4.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 泰语国际化支持实现
## 概述
本项目已成功添加泰语国际化支持,现在支持三种语言:
- 英语 (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. 添加翻译内容
这种模块化的设计使得添加新语言支持变得简单高效。