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_IMPLEMENTATIO...

5.9 KiB

泰语国际化支持实现总结

项目概述

成功为 MyQrCode 项目添加了泰语国际化支持,现在项目支持三种语言:

  • 🇺🇸 英语 (English) - 默认语言
  • 🇨🇳 中文简体 (中文)
  • 🇹🇭 泰语 (ไทย)

实现步骤

1. 语言管理器更新

文件: MyQrCode/LanguageManager.swift

更新内容:

  • Language 枚举中添加了 case thai = "th"
  • 添加了泰语显示名称 "ไทย"
  • 添加了泰国国旗表情符号 "🇹🇭"

代码变更:

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

包含的翻译内容:

主要功能

  • 扫描器: เครื่องสแกนบาร์โค้ด
  • 二维码生成器: เครื่องสร้าง QR Code
  • 历史记录: ประวัติการบันทึก
  • 设置: การตั้งค่า

用户界面元素

  • 按钮: สแกนใหม่ (重新扫描), แชร์ (分享), ยกเลิก (取消)
  • 提示信息: วาง QR code หรือบาร์โค้ดในกรอบ (将二维码或条形码放入框内)
  • 错误信息: ข้อผิดพลาดการสแกน (扫描错误)

权限和设置

  • 相机权限: ต้องการสิทธิ์กล้อง
  • 语言设置: การตั้งค่าภาษา
  • 应用信息: ข้อมูลแอป

3. 更新现有本地化文件

英文本地化文件 (en.lproj/Localizable.strings):

  • 添加了 60+ 个新的本地化字符串
  • 涵盖了所有用户界面元素
  • 包括错误信息、提示信息、表单标签等

中文本地化文件 (zh-Hans.lproj/Localizable.strings):

  • 同步添加了所有新增字符串的中文翻译
  • 保持了与英文版本的一致性

泰语本地化文件 (th.lproj/Localizable.strings):

  • 提供了完整的泰语翻译
  • 包含 160+ 个本地化字符串
  • 涵盖了应用的所有功能模块

4. 编译验证

编译结果: 成功

  • 项目编译无错误
  • 泰语本地化文件正确包含在应用中
  • 所有语言包都已正确打包

验证命令:

xcodebuild -project ../MyQrCode.xcodeproj -scheme MyQrCode -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' clean build

技术特点

1. 自动语言检测

  • 应用启动时自动检测用户语言偏好
  • 支持运行时语言切换
  • 语言设置持久化保存

2. 完整的本地化覆盖

  • 所有用户界面文本都已本地化
  • 支持格式化字符串 (如 %@, %d)
  • 错误信息和提示信息完整翻译

3. 用户体验优化

  • 语言切换即时生效
  • 显示国旗图标便于识别
  • 支持语言代码显示

文件结构

MyQrCode/
├── en.lproj/
│   └── Localizable.strings     # 英文本地化 (160+ 字符串)
├── zh-Hans.lproj/
│   └── Localizable.strings     # 中文本地化 (160+ 字符串)
├── th.lproj/
│   └── Localizable.strings     # 泰语本地化 (160+ 字符串) - 新增
├── LanguageManager.swift       # 语言管理器 (已更新)
└── LanguageSettingsView.swift  # 语言设置界面 (自动支持)

使用方法

用户切换语言

  1. 打开应用
  2. 进入设置界面
  3. 点击"语言设置"
  4. 选择"ไทย" (泰语)
  5. 语言将立即生效

开发者添加新文本

当需要添加新的用户界面文本时:

  1. en.lproj/Localizable.strings 中添加英文版本
  2. zh-Hans.lproj/Localizable.strings 中添加中文版本
  3. th.lproj/Localizable.strings 中添加泰语版本
  4. 在代码中使用 "key".localized 来获取本地化文本

翻译质量

泰语翻译特点

  • 使用了标准的泰语表达方式
  • 保持了技术术语的准确性
  • 考虑了泰语的语言特点和文化背景
  • 文本长度适中,适合移动端显示

主要翻译示例

英文 中文 泰语
Barcode Scanner 条码扫描器 เครื่องสแกนบาร์โค้ด
Create QR Code 创建二维码 สร้าง QR Code
History Records 历史记录 ประวัติการบันทึก
Settings 设置 การตั้งค่า
Share 分享 แชร์
Cancel 取消 ยกเลิก

测试建议

  1. 功能测试: 确保所有界面在不同语言下正常显示
  2. 文本长度测试: 泰语文本可能较长确保UI布局适应
  3. 特殊字符测试: 确保泰语特殊字符正确显示
  4. 语言切换测试: 验证语言切换功能正常工作

注意事项

  1. 文本长度: 泰语翻译通常比英文长需要确保UI布局能够适应
  2. 字体支持: 确保应用使用的字体支持泰语字符
  3. 文化适应性: 某些概念可能需要根据泰国文化进行调整
  4. 维护更新: 添加新功能时需要同步更新所有语言版本

未来扩展

如需添加更多语言支持,只需:

  1. Language 枚举中添加新语言
  2. 创建对应的 .lproj 目录和 Localizable.strings 文件
  3. 添加翻译内容

这种模块化的设计使得添加新语言支持变得简单高效。

总结

泰语国际化支持已成功实现,项目现在支持三种语言,为用户提供了更好的本地化体验。所有功能模块都已完整翻译,编译验证通过,可以正常使用。