首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SwiftUI本地化没有翻译一个字符串

在 SwiftUI 中进行本地化时,如果发现某个字符串没有被翻译,可能是由于以下几个原因:

  1. 本地化文件缺失或配置错误:确保你的本地化文件(.strings 文件)存在并且配置正确。
  2. 字符串键错误:确保你在代码中使用的键与本地化文件中的键一致。
  3. 本地化文件未包含目标语言:确保你的本地化文件包含目标语言的翻译。

以下是一些详细的步骤和示例,帮助你排查和解决 SwiftUI 本地化问题:

1. 创建和配置本地化文件

首先,确保你已经创建了本地化文件并正确配置。

创建本地化文件

  1. 在 Xcode 中,选择你的项目文件。
  2. 在项目导航栏中,选择 Info 选项卡。
  3. Localizations 部分,点击 + 按钮添加新的语言。
  4. 选择要本地化的文件类型(例如,Main.storyboardLocalizable.strings 等)。

配置本地化文件

  1. 右键点击项目导航栏中的 Localizable.strings 文件,选择 Show in Finder
  2. 在 Finder 中,确保 Localizable.strings 文件存在于每个语言的文件夹中(例如,en.lprojzh-Hans.lproj 等)。

2. 在本地化文件中添加翻译

确保在 Localizable.strings 文件中添加了正确的键值对。

示例:Localizable.strings 文件

英文(en.lproj/Localizable.strings

代码语言:javascript
复制
"hello_world" = "Hello, World!";

简体中文(zh-Hans.lproj/Localizable.strings

代码语言:javascript
复制
"hello_world" = "你好,世界!";

3. 在 SwiftUI 代码中使用本地化字符串

使用 NSLocalizedStringLocalizedStringKey 来引用本地化字符串。

示例:使用 NSLocalizedString

代码语言:javascript
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text(NSLocalizedString("hello_world", comment: ""))
    }
}

示例:使用 LocalizedStringKey

代码语言:javascript
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text(LocalizedStringKey("hello_world"))
    }
}

4. 检查本地化设置

确保你的应用程序的本地化设置正确,并且设备或模拟器的语言设置为目标语言。

检查设备语言设置

  1. 打开设备或模拟器的 Settings 应用。
  2. 导航到 General > Language & Region
  3. 确保语言设置为你要测试的语言(例如,中文)。

5. 清理和重建项目

有时,Xcode 可能没有正确加载本地化文件。尝试清理和重建项目。

  1. 在 Xcode 中,选择 Product > Clean Build Folder
  2. 重新构建并运行项目。

6. 检查控制台输出

如果仍然没有翻译字符串,请检查 Xcode 控制台输出,看看是否有任何错误或警告。

7. 确保本地化文件包含在构建中

确保本地化文件被正确包含在构建中。

  1. 在 Xcode 中,选择你的项目文件。
  2. 在项目导航栏中,选择 Build Phases 选项卡。
  3. 确保 Copy Bundle Resources 部分包含所有本地化文件。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券