# 多语言支持说明

## 功能概述

MyQrCode 应用现在支持多国语言，包括英文和中文，英文为默认语言。

## 支持的语言

- 🇺🇸 **English (en)** - 默认语言
- 🇨🇳 **中文简体 (zh-Hans)**

## 文件结构

```
MyQrCode/
├── en.lproj/
│   └── Localizable.strings          # 英文本地化字符串
├── zh-Hans.lproj/
│   └── Localizable.strings          # 中文本地化字符串
├── LanguageManager.swift             # 语言管理器
├── LanguageSettingsView.swift        # 语言设置界面
├── ContentView.swift                 # 主界面（已本地化）
├── ScannerView.swift                 # 扫描界面（已本地化）
└── Info.plist                        # 语言配置
```

## 主要功能

### 1. 语言切换
- 在主界面右上角显示当前语言标识
- 点击语言标识进入语言设置界面
- 支持实时语言切换，无需重启应用

### 2. 本地化内容
- **应用标题**: MyQrCode
- **主界面**: 条码扫描器 / Barcode Scanner
- **扫描界面**: 扫描指令、按钮文本、提示信息
- **扫描线样式**: 5种样式的本地化名称
- **错误信息**: 扫描失败提示
- **语言设置**: 设置界面的所有文本

### 3. 语言管理
- 自动保存用户语言选择
- 应用启动时恢复上次选择的语言
- 支持系统语言检测

## 使用方法

### 切换语言
1. 在主界面点击右上角的语言标识
2. 在语言设置界面选择目标语言
3. 语言立即生效，无需重启

### 添加新语言
1. 创建新的 `.lproj` 文件夹（如 `ja.lproj`）
2. 在 `Localizable.strings` 中添加翻译
3. 在 `Language` 枚举中添加新语言
4. 在 `Info.plist` 中添加语言代码

## 技术实现

### 语言管理器 (LanguageManager)
- 单例模式管理语言状态
- 使用 UserDefaults 持久化语言设置
- 提供本地化字符串获取方法

### 本地化扩展
```swift
extension String {
    var localized: String {
        return LanguageManager.shared.localizedString(for: self)
    }
}
```

### 通知系统
- 语言变化时发送 `languageChanged` 通知
- 界面自动响应语言变化

## 本地化字符串示例

### 英文 (en.lproj/Localizable.strings)
```strings
"main_title" = "Barcode Scanner";
"scan_instruction" = "Place QR code or barcode in the frame";
```

### 中文 (zh-Hans.lproj/Localizable.strings)
```strings
"main_title" = "条码扫描器";
"scan_instruction" = "将二维码或条形码放入框内";
```

## 注意事项

1. **默认语言**: 英文为默认语言，确保所有字符串都有英文版本
2. **字符串键**: 使用有意义的键名，便于维护
3. **格式字符串**: 支持 `String(format:)` 的格式化字符串
4. **实时更新**: 语言切换后界面立即更新
5. **持久化**: 语言选择保存在 UserDefaults 中

## 扩展建议

- 添加更多语言支持（日语、韩语、法语等）
- 支持系统语言自动检测
- 添加语言特定的日期和数字格式
- 支持 RTL 语言（阿拉伯语、希伯来语） 