我们如何为 macOS 应用添加国际化和多语言支持

我们如何为 macOS 应用添加国际化和多语言支持



支持多语言对于拓展全球用户至关重要。本文将以我们的 macOS 应用 iTrans 为例,介绍我们如何通过 Swift 和 Xcode 实现国际化(i18n)和中文本地化。

1. 审查所有用户可见文本

第一步是查找代码中所有用户可见的字符串。我们在 SwiftUI 视图、模型和操作符中搜索所有硬编码文本。

2. 提取待本地化字符串

我们将所有硬编码字符串替换为支持本地化的 API:

  • 在 SwiftUI 中,Text 视图使用 LocalizedStringKey
  • 其他字符串使用 NSLocalizedString


Text(LocalizedStringKey("Unlock your iPhone"))
// 或
NSLocalizedString("Untitled", comment: "File with no name")

3. 创建本地化文件

我们为每种支持的语言创建了 Localizable.strings 文件:

  • en.lproj/Localizable.strings —— 英文
  • zh-Hans.lproj/Localizable.strings —— 简体中文
每个文件都包含所有用户可见文本的键值对。

英文示例:


"Unlock your iPhone" = "Unlock your iPhone";
中文示例:

"Unlock your iPhone" = "解锁你的 iPhone";

4. 将本地化文件添加到 Xcode 工程

为了让 Xcode 识别本地化文件:

  • 我们通过项目导航器将 Localizable.strings 文件添加到工程。
  • 在文件检查器中,启用本地化并勾选所有支持的语言。

5. 测试本地化效果

Xcode 让我们可以轻松测试不同语言下的应用效果:

  • 在 Scheme 编辑器中,将应用语言设置为“简体中文”并运行应用。
  • 我们还验证了所有界面文本在英文和中文下都能正确显示。

6. 效果展示

通过以上步骤,我们的应用现已完整支持英文和中文。所有用户可见文本都已本地化,用户切换语言体验流畅。


结论:
在 Swift 和 Xcode 中实现国际化非常直接。只需遵循最佳实践:提取所有用户可见文本、使用本地化 API、为每种语言维护 .strings 文件并充分测试。这样你的应用就能面向全球用户。

❤️ Support This Blog


If this post helped you, you can support my writing with a small donation. Thank you for reading.


Comments

Popular posts from this blog

fixed: embedded-redis: Unable to run on macOS Sonoma

Copying MDC Context Map in Web Clients: A Comprehensive Guide

Reset user password for your own Ghost blog