# 多语言切换 **Repository Path**: 174/MutableLanguage ## Basic Information - **Project Name**: 多语言切换 - **Description**: 多语言切换 - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-03 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MutableLanguage - iOS多语言应用 这是一个支持中文、英文、法语的iOS多语言应用示例。 ## 功能特性 - ✅ 支持三种语言:中文(简体)、英文、法语 - ✅ 运行时语言切换 - ✅ 语言设置持久化保存 - ✅ 优雅的UI界面 - ✅ 完整的本地化字符串管理 - ✅ TabBar多语言支持 - ✅ 实时语言切换通知机制 ## 项目结构 ``` MutableLanguage/ ├── MutableLanguage/ │ ├── zh-Hans.lproj/ # 简体中文资源 │ │ └── Localizable.strings │ ├── en.lproj/ # 英文资源 │ │ └── Localizable.strings │ ├── fr.lproj/ # 法语资源 │ │ └── Localizable.strings │ ├── LanguageManager.h # 语言管理类头文件 │ ├── LanguageManager.m # 语言管理类实现 │ ├── ViewController.h # 主视图控制器头文件 │ ├── ViewController.m # 主视图控制器实现 │ └── ... # 其他项目文件 └── MutableLanguage.xcodeproj/ # Xcode项目文件 ``` ## 核心组件 ### 1. LanguageManager(语言管理器) 单例类,负责: - 语言切换和管理 - 本地化字符串获取 - 语言设置持久化 - 语言改变通知 ### 2. Localizable.strings文件 每个语言文件夹下的本地化字符串文件,包含: - 通用文本(欢迎、问候等) - 语言选项 - 按钮文本 - 消息提示 - TabBar标签文本 ### 3. ViewController(主视图控制器) 包含: - 多语言UI元素 - 语言切换分段控制器 - 实时语言更新 ### 4. TabBarController(标签栏控制器) 实现了多语言TabBar,包含: - 四个标签页:首页、视频、音乐、我的 - 实时语言切换支持 - 语言改变通知监听 - 自动更新TabBar标题 ## 使用方法 ### 1. 添加新的本地化字符串 在三个语言的`Localizable.strings`文件中添加相同的key: ```objc // zh-Hans.lproj/Localizable.strings "new_key" = "新文本"; // en.lproj/Localizable.strings "new_key" = "New Text"; // fr.lproj/Localizable.strings "new_key" = "Nouveau Texte"; ``` ### 2. 在代码中使用本地化字符串 ```objc NSString *localizedText = [[LanguageManager sharedManager] localizedStringForKey:@"new_key"]; ``` ### 3. 切换语言 ```objc [[LanguageManager sharedManager] setLanguage:@"en"]; // 切换到英文 ``` ### 4. 监听语言改变 ```objc [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(languageChanged:) name:@"LanguageChanged" object:nil]; ``` ## 支持的语言代码 - `zh-Hans`: 简体中文 - `en`: 英文 - `fr`: 法语 ## 编译和运行 1. 使用Xcode打开`MutableLanguage.xcodeproj` 2. 选择目标设备或模拟器 3. 点击运行按钮或使用快捷键`Cmd+R` ## 扩展功能 ### 添加新语言 1. 创建新的`.lproj`文件夹(如`es.lproj`用于西班牙语) 2. 添加`Localizable.strings`文件 3. 在`LanguageManager.m`的`supportedLanguages`方法中添加新语言 4. 在`displayNameForLanguage:`方法中添加显示名称 5. 更新项目配置 ### 添加更多本地化资源 除了字符串,还可以本地化: - 图片资源 - Storyboard文件 - Info.plist文件 - 音频文件 ## 注意事项 1. 确保所有语言的`Localizable.strings`文件包含相同的key 2. 使用UTF-8编码保存字符串文件 3. 语言切换会发送通知,需要相应的视图控制器监听并更新UI 4. 语言设置会自动保存到`NSUserDefaults`中 ## 技术要点 - 使用`NSBundle`进行资源本地化 - 通过`NSNotificationCenter`实现语言切换通知 - 使用`NSUserDefaults`持久化语言设置 - 采用单例模式管理语言状态