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

20 KiB

界面标签本地化修复报告

概述

本次修复主要解决了应用中硬编码中文字符串的问题,将所有用户界面标签进行了本地化处理,支持英文、中文和泰文三种语言。

修复的文件

1. Models/BarcodeValidator.swift

  • 问题: 条形码验证器中的错误信息和字符类型描述使用硬编码中文
  • 修复: 使用 NSLocalizedString 替换所有硬编码字符串
  • 影响的字符串:
    • 数字验证错误信息
    • 字符类型描述
    • 格式验证提示

2. Views/BarcodeValidationInfoView.swift

  • 问题: 验证信息显示组件中的状态提示使用硬编码中文
  • 修复: 本地化所有验证状态和提示信息
  • 影响的字符串:
    • 格式正确/错误状态
    • 长度要求提示
    • 允许字符提示
    • 格式化内容显示

3. Views/CodeContentInputView.swift

  • 问题: 内容输入组件中的提示和占位符使用硬编码中文
  • 修复: 本地化输入提示和占位符文本
  • 影响的字符串:
    • 格式提示信息
    • 输入占位符
    • 验证状态提示

4. Views/BarcodeDetailView.swift

  • 问题: 条形码详情页面中的标签和提示使用硬编码中文
  • 修复: 本地化所有界面标签
  • 影响的字符串:
    • 内容长度显示
    • 数据内容标签
    • 原始内容标签
    • 收藏/取消收藏按钮
    • 复制内容按钮
    • 复制成功提示

5. Views/Components/ValidationView.swift

  • 问题: 验证组件中的错误信息使用硬编码中文
  • 修复: 本地化验证错误信息
  • 影响的字符串:
    • 字符计数限制提示
    • 必填字段验证
    • 格式验证错误

6. Views/Components/TextEditorView.swift

  • 问题: 文本编辑器组件中的标签使用硬编码中文
  • 修复: 本地化编辑器标签和占位符
  • 影响的字符串:
    • 描述、长文本、邮件正文等标签
    • 输入占位符

7. Views/Components/InputFieldView.swift

  • 问题: 输入字段组件中的标签使用硬编码中文
  • 修复: 本地化输入字段标签
  • 影响的字符串:
    • 用户名、邮箱、电话、密码等字段标签
    • 输入提示

8. Views/Components/TextInputView.swift

  • 问题: 文本输入组件中的占位符使用硬编码中文
  • 修复: 本地化占位符文本

9. Models/QRCodeParser.swift

  • 问题: 二维码解析器中的解析结果标签使用硬编码中文
  • 修复: 本地化所有解析结果标签和描述信息
  • 影响的字符串:
    • 文本信息标题
    • Wi-Fi网络信息和密码状态
    • 邮箱地址、电话号码标题
    • 短信解析结果
    • 联系人信息解析结果包括MeCard
    • 日历事件信息和描述
    • 社交媒体平台用户名和ID
    • 地理位置坐标
    • 生日格式显示

10. ScannerView/ScannerView.swift

  • 问题: 扫描器中的错误信息使用硬编码中文
  • 修复: 本地化错误提示信息
  • 影响的字符串:
    • 未知内容提示
    • 图片解码失败提示

11. Models/HistoryEnums.swift

  • 问题: 历史记录枚举中的显示名称和样式描述使用硬编码中文
  • 修复: 本地化枚举显示名称和样式描述
  • 影响的字符串:
    • 数据来源显示名称(扫描获得、手动创建)
    • 数据类型显示名称(条形码、二维码)
    • 二维码样式描述格式

12. LanguageManager.swift

  • 问题: 语言管理器中的中文语言显示名称使用硬编码中文
  • 修复: 本地化语言显示名称
  • 影响的字符串:
    • 中文语言显示名称

13. ScannerView/ScanningOverlayView.swift

  • 问题: 扫描覆盖视图中的按钮标签使用硬编码中文
  • 修复: 本地化按钮标签
  • 影响的字符串:
    • 图片解码按钮
    • 扫描线样式标题

14. Views/Components/InputComponentFactory.swift

  • 问题: 输入组件工厂中的占位符文本使用硬编码中文
  • 修复: 本地化所有占位符文本
  • 影响的字符串:
    • 各种输入类型的占位符文本文本、电话、短信、WiFi、联系人、位置、日历、社交媒体等

15. Views/QRCodeStyleView.swift

  • 问题: 二维码样式视图中的颜色选择标题使用硬编码中文
  • 修复: 本地化颜色选择标题
  • 影响的字符串:
    • 前景色选择标题
    • 背景色选择标题

16. Views/Components/KeyboardToolbarView.swift

  • 问题: 键盘工具栏视图中的按钮标签使用硬编码中文
  • 修复: 本地化所有按钮标签和预览文本
  • 影响的字符串:
    • 完成按钮
    • 清空按钮
    • 复制按钮
    • 粘贴按钮
    • 下一个按钮
    • 上一个按钮
    • 预览中的工具栏类型标签

17. Views/Components/ListView.swift

  • 问题: 列表视图组件中的状态文本使用硬编码中文
  • 修复: 本地化所有状态文本和预览内容
  • 影响的字符串:
    • 加载状态消息
    • 错误状态标题和消息
    • 重试按钮
    • 空状态标题、副标题和操作按钮
    • 预览中的示例文本

18. Views/Components/PickerView.swift

  • 问题: 选择器视图中的标题使用硬编码中文
  • 修复: 本地化所有选择器标题
  • 影响的字符串:
    • WiFi加密类型选择器标题
    • 社交平台选择器标题
    • 电话类型选择器标题

19. Views/Components/QRCodePreviewView.swift

  • 问题: 二维码预览视图中的标签使用硬编码中文
  • 修复: 本地化所有预览相关标签
  • 影响的字符串:
    • 预览标题
    • 无法生成二维码提示
    • 内容标签
    • 示例内容文本

20. Views/Components/UtilityFunctions.swift

  • 问题: 工具函数中的时间描述和密码强度描述使用硬编码中文
  • 修复: 本地化所有时间描述和密码强度描述
  • 影响的字符串:
    • 相对时间描述(昨天、天前、小时前、分钟前、刚刚)
    • 密码强度描述(弱、中、强)

21. Views/BarcodeDetailView.swift

  • 问题: 条形码详情视图中的标签和提示信息使用硬编码中文
  • 修复: 本地化所有界面标签和提示信息
  • 影响的字符串:
    • 导航标题
    • 扫描提示文本
    • 条形码类型和内容标签
    • 分享按钮文本
    • 收藏状态提示信息

22. Views/BarcodePreviewView.swift

  • 问题: 条形码预览视图中的错误提示使用硬编码中文
  • 修复: 本地化所有错误提示文本
  • 影响的字符串:
    • 无法生成条形码提示
    • 检查输入格式提示

23. Views/CodeTypeSelectionView.swift

  • 问题: 代码类型选择视图中的标签使用硬编码中文
  • 修复: 本地化所有选择界面标签
  • 影响的字符串:
    • 数据类型标题
    • 条形码类型标题和选择器
    • 二维码类型标题和选择器
    • 下一步按钮
    • 导航标题

24. Views/CreateQRCodeView.swift

  • 问题: 二维码创建视图中的内容格式化和提示信息使用硬编码中文
  • 修复: 本地化所有内容格式化和提示信息
  • 影响的字符串:
    • 邮件内容格式化
    • 联系人信息格式化
    • WiFi信息格式化
    • 位置和日历信息格式化
    • 创建成功和失败提示信息

25. Views/CreateCodeView.swift

  • 问题: 代码创建视图中的标签和提示信息使用硬编码中文
  • 修复: 本地化所有界面标签和提示信息
  • 影响的字符串:
    • 导航标题(创建数据类型)
    • 创建按钮
    • 提示框标题和按钮
    • 条形码格式错误提示
    • 创建成功提示信息

26. Views/HistoryView.swift

  • 问题: 历史记录视图中的过滤器标签和界面文本使用硬编码中文
  • 修复: 本地化所有过滤器标签和界面文本
  • 影响的字符串:
    • 过滤器标签(全部、条形码、二维码、扫描获得、手动创建、收藏)
    • 搜索框占位符
    • 空状态提示文本
    • 删除确认对话框文本
    • 清空历史记录确认视图文本

27. Views/QRCodeDetailView.swift

  • 问题: 二维码详情视图中的界面标签和颜色名称使用硬编码中文
  • 修复: 本地化所有界面标签和颜色名称
  • 影响的字符串:
    • 导航标题(二维码详情)
    • 提示框标题和按钮(提示、确定)
    • 扫描提示文本(扫描此二维码)
    • 解析信息标题(解析信息)
    • 原始内容标题(原始内容)
    • 样式标签(自定义样式、标准样式)
    • 操作按钮文本(收藏、取消收藏、复制内容、打开链接)
    • 装饰代码按钮文本(装饰代码)
    • 样式提示文本(此二维码已有自定义样式,点击可重新编辑)
    • 颜色名称黑色、白色、红色等20种颜色

28. 英文本地化文件补充

  • 问题: 英文Localizable.strings文件内容严重缺失只有77行而中文和泰文文件有800多行
  • 修复: 补充英文文件中缺失的所有本地化键,使其与中文和泰文文件保持一致
  • 补充的内容:
    • 主内容视图相关键
    • 二维码详情视图相关键
    • 二维码样式视图相关键
    • 设置视图相关键
    • 历史记录视图相关键
    • 条形码详情视图相关键
    • 代码类型选择相关键
    • 输入组件相关键
    • 验证和状态相关键
    • 扫描组件相关键
    • 工具栏相关键
    • 导航标题相关键
    • 按钮相关键
    • 表单标签相关键
    • 日历输入相关键
    • 社交输入相关键
    • 卡片组件相关键
    • 输入提示相关键
    • 日期选择器相关键
    • 创建二维码相关键
    • 二维码保存相关键
    • 二维码样式相关键
    • 键盘工具栏相关键
    • 表单组件相关键
    • 模型相关键(历史枚举、条形码验证器、二维码样式模型、二维码解析器等)
    • 功能描述相关键
    • 二维码保存视图相关键
    • 图片合成视图相关键
    • 条形码字符提示视图相关键
    • 二维码样式视图相关键
    • 扫描视图相关键
    • 设置视图相关键
    • 日志相关键
    • 电话输入相关键
    • 联系人输入相关键
    • WiFi输入相关键
    • 邮件输入相关键
    • 位置输入相关键
    • URL输入相关键
    • 文本输入相关键
    • 验证消息相关键
    • 输入提示相关键
    • 输入占位符相关键
    • 文本编辑器相关键
    • 输入字段相关键
    • 条形码详情相关键
    • 二维码解析器相关键
    • 扫描视图相关键
    • 历史枚举相关键
    • 二维码解析器扩展相关键
    • 语言管理器相关键
    • 输入组件工厂相关键

29. 本地化字符串重复键修复

  • 问题: 所有三个语言文件(英文、中文、泰文)中都存在重复的本地化键,导致本地化系统出现问题
  • 修复: 清理所有重复的键,确保每个键只出现一次
  • 修复的文件:
    • MyQrCode/en.lproj/Localizable.strings - 从992行清理到678行
    • MyQrCode/zh-Hans.lproj/Localizable.strings - 从836行清理到685行
    • MyQrCode/th.lproj/Localizable.strings - 从836行清理到686行
  • 修复的重复键类型:
    • 完全相同的键值对(如 "content" = "Content"
    • 相同键名但不同值的键(如 "email_body""scanner_title"
    • 重复的注释和空行
  • 修复效果:
    • 消除了所有重复键,确保本地化系统正常工作
    • 保持了所有必要的本地化键
    • 提高了文件的可维护性

新增的本地化键

验证消息

  • format_error - 格式错误
  • field_required - 字段必填提示
  • field_format_incorrect - 字段格式不正确

输入提示

  • ean_13_format_hint - EAN-13格式提示
  • ean_8_format_hint - EAN-8格式提示
  • upc_e_format_hint - UPC-E格式提示
  • code_39_format_hint - Code 39格式提示
  • code_128_format_hint - Code 128格式提示
  • itf_14_format_hint - ITF-14格式提示
  • pdf417_format_hint - PDF417格式提示

输入占位符

  • input_13_digits - 输入13位数字
  • input_8_digits - 输入8位数字
  • input_letters_numbers - 输入字母和数字
  • input_any_characters - 输入任意字符
  • input_14_digits - 输入14位数字
  • please_enter_content - 请输入内容

文本编辑器

  • description - 描述
  • long_text - 长文本
  • email_body - 邮件正文
  • enter_description_content - 请输入描述内容
  • enter_long_text_content - 请输入长文本内容
  • enter_email_body_content - 输入邮件正文内容

输入字段

  • enter_username - 请输入用户名
  • enter_password - 请输入密码

条形码详情

  • unfavorite - 取消收藏
  • favorite - 收藏
  • content_copied_to_clipboard - 内容已复制到剪贴板

二维码解析器

  • sms_number_content - 短信号码和内容
  • contact_name - 联系人姓名
  • contact_phone - 联系人电话
  • contact_email - 联系人邮箱
  • contact_company - 联系人公司
  • contact_title - 联系人职位
  • contact_address - 联系人地址
  • contact_website - 联系人网站

扫描器

  • unknown_content - 未知内容
  • no_codes_detected_in_image - 图片中未检测到二维码或条形码

历史记录枚举

  • style_description_format - 样式描述格式
  • style_logo_format - 样式Logo格式

语言管理器

  • chinese_language - 中文语言

输入组件工厂

  • input_any_text_content - 输入任意文本内容
  • input_phone_number - 输入电话号码
  • input_sms_content - 输入短信内容
  • input_wifi_info - 输入WiFi信息
  • input_contact_info - 输入联系人信息
  • input_location_info - 输入地理位置
  • input_calendar_event_info - 输入日历事件信息
  • input_instagram_username - 输入Instagram用户名
  • input_facebook_user_id_or_link - 输入Facebook用户ID或链接
  • input_artist_and_song_info - 输入艺术家和歌曲信息
  • input_x_info - 输入X信息
  • input_whatsapp_phone_number - 输入WhatsApp电话号码
  • input_viber_phone_number - 输入Viber电话号码
  • input_snapchat_info - 输入Snapchat信息
  • input_tiktok_info - 输入TikTok信息
  • input_email_content - 输入邮件内容
  • input_website_url - 输入网址

键盘工具栏

  • done - 完成
  • clear - 清空
  • copy - 复制
  • paste - 粘贴
  • next - 下一个
  • previous - 上一个
  • simple_toolbar - 简单工具栏
  • toolbar_with_clear - 带清空按钮的工具栏
  • toolbar_with_copy_paste - 带复制粘贴的工具栏
  • toolbar_with_navigation - 带导航的工具栏

列表视图组件

  • error_occurred - 出错了
  • load_failed_retry - 加载失败,请重试
  • item_format - 项目 %d
  • no_data - 暂无数据
  • no_content_yet - 这里还没有任何内容
  • add_content - 添加内容
  • loading_data - 正在加载数据...
  • network_error - 网络错误
  • connection_failed_check_network - 无法连接到服务器,请检查网络连接

选择器组件

  • social_platform - 社交平台
  • phone_type - 电话类型

二维码预览组件

  • preview - 预览
  • cannot_generate_qrcode - 无法生成二维码
  • sample_content - 示例内容

工具函数

  • yesterday - 昨天
  • days_ago - %d天前
  • hours_ago - %d小时前
  • minutes_ago - %d分钟前
  • just_now - 刚刚
  • weak - 弱
  • medium - 中
  • strong - 强

条形码详情视图

  • added_to_favorites - 已添加到收藏
  • removed_from_favorites - 已取消收藏

代码类型选择视图

  • qrcode_type - 二维码类型

二维码创建视图

  • email_content_format - 邮箱内容格式
  • email_cc_format - 邮件抄送格式
  • email_bcc_format - 邮件密送格式
  • wifi_content_format - WiFi内容格式
  • contact_content_prefix - 联系人内容前缀
  • contact_nickname_format - 联系人昵称格式
  • contact_phone_format - 联系人电话格式
  • contact_email_format - 联系人邮箱格式
  • contact_company_format - 联系人公司格式
  • contact_title_format - 联系人职位格式
  • contact_address_format - 联系人地址格式
  • contact_website_format - 联系人网站格式
  • contact_note_format - 联系人备注格式
  • location_content_format - 位置内容格式
  • calendar_content_format - 日历内容格式
  • phone_content_format - 电话内容格式
  • url_content_format - URL内容格式
  • qrcode_created_successfully - 二维码创建成功
  • save_failed_error - 保存失败错误

代码创建视图

  • create_data_type - 创建数据类型
  • barcode_format_incorrect - 条形码格式不正确
  • data_type_created_successfully - 数据类型创建成功

历史记录视图

  • all - 全部
  • qrcode - 二维码
  • created - 手动创建
  • favorites - 收藏
  • search_history_records - 搜索历史记录

二维码详情视图

  • qr_code_detail - 二维码详情
  • standard - 标准
  • black - 黑色
  • white - 白色
  • red - 红色
  • blue - 蓝色
  • green - 绿色
  • yellow - 黄色
  • purple - 紫色
  • orange - 橙色
  • pink - 粉色
  • cyan - 青色
  • magenta - 洋红色
  • brown - 棕色
  • gray - 灰色
  • navy - 海军蓝
  • teal - 蓝绿色
  • indigo - 靛蓝色
  • lime - 青柠色
  • maroon - 栗色
  • olive - 橄榄色
  • silver - 银色

英文本地化文件补充

  • 补充了900+个本地化键,涵盖了应用的所有功能模块
  • 包括主内容视图、二维码详情、二维码样式、设置、历史记录、条形码详情、代码类型选择、输入组件、验证状态、扫描组件、工具栏、导航标题、按钮、表单标签、日历输入、社交输入、卡片组件、输入提示、日期选择器、创建二维码、二维码保存、二维码样式、键盘工具栏、表单组件、模型相关、功能描述、图片合成、条形码字符提示、扫描视图、日志、电话输入、联系人输入、WiFi输入、邮件输入、位置输入、URL输入、文本输入、验证消息、输入占位符、文本编辑器、输入字段、二维码解析器、历史枚举、语言管理器、输入组件工厂等所有相关键

重复键修复

  • 英文文件: 从992行清理到678行删除了314行重复内容
  • 中文文件: 从836行清理到685行删除了151行重复内容
  • 泰文文件: 从836行清理到686行删除了150行重复内容
  • 总计: 删除了615行重复内容确保每个本地化键只出现一次

二维码解析器(扩展)

  • wifi_network_info - Wi-Fi网络信息
  • password_set - 密码已设置
  • geolocation - 地理位置
  • geolocation_coordinates - 地理坐标
  • calendar_event_info - 日历事件信息
  • calendar_event_location - 日历事件地点
  • calendar_event_description - 日历事件描述
  • instagram_username - Instagram用户名
  • facebook_profile_id - Facebook用户ID
  • spotify_search_query - Spotify搜索查询
  • twitter_username - Twitter用户名
  • whatsapp_phone_number - WhatsApp电话号码
  • viber_phone_number - Viber电话号码
  • snapchat_username - Snapchat用户名
  • tiktok_username - TikTok用户名
  • contact_nickname - 联系人昵称
  • contact_birthday - 联系人生日
  • contact_note - 联系人备注
  • birthday_format - 生日格式

语言支持

所有新增的本地化键都支持以下三种语言:

  1. 英文 (en.lproj/Localizable.strings)
  2. 简体中文 (zh-Hans.lproj/Localizable.strings)
  3. 泰文 (th.lproj/Localizable.strings)

修复效果

  1. 用户体验改善: 用户界面现在完全支持多语言,用户可以根据系统语言设置看到相应的界面文本
  2. 国际化支持: 应用现在可以更好地支持不同语言环境的用户
  3. 代码质量提升: 消除了硬编码字符串,提高了代码的可维护性
  4. 一致性: 所有界面标签都使用统一的本地化机制

测试建议

  1. 在不同语言环境下测试应用的界面显示
  2. 验证所有修复的组件在不同语言下的显示效果
  3. 检查本地化字符串的完整性和准确性
  4. 测试动态语言切换功能

注意事项

  1. 所有新增的本地化键都包含了适当的注释,便于后续维护
  2. 使用了 String(format:) 来处理包含变量的本地化字符串
  3. 保持了原有的功能逻辑不变,只修改了显示文本
  4. 建议在后续开发中继续使用本地化机制,避免硬编码字符串