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.
4.4 KiB
4.4 KiB
泰语国际化支持实现
概述
本项目已成功添加泰语国际化支持,现在支持三种语言:
- 英语 (English) - 默认语言
- 中文简体 (中文)
- 泰语 (ไทย)
实现内容
1. 语言管理器更新
更新了 LanguageManager.swift
文件,在 Language
枚举中添加了泰语支持:
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. 完整的本地化覆盖
泰语本地化文件包含了应用中的所有用户可见文本,包括:
- 主界面文本
- 扫描器界面
- 二维码创建界面
- 历史记录界面
- 设置界面
- 错误信息和提示
- 输入表单标签
- 验证消息
使用方法
用户切换语言
- 打开应用
- 进入设置界面
- 点击"语言设置"
- 选择"ไทย" (泰语)
- 语言将立即生效
开发者添加新文本
当需要添加新的用户界面文本时,请:
- 在
en.lproj/Localizable.strings
中添加英文版本 - 在
zh-Hans.lproj/Localizable.strings
中添加中文版本 - 在
th.lproj/Localizable.strings
中添加泰语版本 - 在代码中使用
"key".localized
来获取本地化文本
技术特点
1. 自动语言检测
- 应用启动时自动检测用户的语言偏好
- 支持运行时语言切换
- 语言设置持久化保存
2. 完整的本地化支持
- 所有用户界面文本都已本地化
- 支持格式化字符串 (如
%@
,%d
) - 错误信息和提示信息完整翻译
3. 用户体验优化
- 语言切换即时生效
- 显示国旗图标便于识别
- 支持语言代码显示
文件结构
MyQrCode/
├── en.lproj/
│ └── Localizable.strings # 英文本地化
├── zh-Hans.lproj/
│ └── Localizable.strings # 中文本地化
├── th.lproj/
│ └── Localizable.strings # 泰语本地化 (新增)
├── LanguageManager.swift # 语言管理器 (已更新)
└── LanguageSettingsView.swift # 语言设置界面
测试建议
- 功能测试: 确保所有界面在不同语言下正常显示
- 文本长度测试: 泰语文本可能较长,确保UI布局适应
- 特殊字符测试: 确保泰语特殊字符正确显示
- 语言切换测试: 验证语言切换功能正常工作
注意事项
- 文本长度: 泰语翻译通常比英文长,需要确保UI布局能够适应
- 字体支持: 确保应用使用的字体支持泰语字符
- 文化适应性: 某些概念可能需要根据泰国文化进行调整
- 维护更新: 添加新功能时需要同步更新所有语言版本
未来扩展
如需添加更多语言支持,只需:
- 在
Language
枚举中添加新语言 - 创建对应的
.lproj
目录和Localizable.strings
文件 - 添加翻译内容
这种模块化的设计使得添加新语言支持变得简单高效。