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

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. 完整的本地化覆盖

泰语本地化文件包含了应用中的所有用户可见文本,包括:

  • 主界面文本
  • 扫描器界面
  • 二维码创建界面
  • 历史记录界面
  • 设置界面
  • 错误信息和提示
  • 输入表单标签
  • 验证消息

使用方法

用户切换语言

  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. 添加翻译内容

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