【问题标题】:Swift Package not localizing correctly after Xcode 12.5 UpdateXcode 12.5 更新后 Swift 包无法正确本地化
【发布时间】:2021-05-26 14:38:13
【问题描述】:

我有一个 Swift 包,它在“资源”文件夹内的文件夹中有多个翻译,例如“Resources/de.lproj/Localizable.strings”和“Resources/en.lproj/Localizable.strings”。

自从我更新到 Xcode 12.5 后,实现这个 Swift 包的应用程序总是回退到英文,它只返回英文本地化的字符串。 我的Package.swift 默认有“de”:

defaultLocalization: "de",

示例: 在设置为德语的设备上运行应用程序:

print(Locale.preferredLanguages) // ["de"]
print(Bundle.module.localizations) // ["de", "en", "es", "it", "fr"]
print(NSLocalizedString("Yes", tableName: nil, bundle: .module, value: "", comment: "")) // "Yes" (instead of "Ja" from the German file)

在 iOS 模拟器中设置“App Language”也会导致同样的问题。

【问题讨论】:

    标签: swift xcode swift-package-manager


    【解决方案1】:

    问题是宿主应用似乎没有任何本地化,因此 Swift 包也不会本地化。

    在 Swift 论坛上有详尽的解释:https://forums.swift.org/t/swift-package-manager-localization/46685/6

    听起来真正的问题可能是您希望库使用主应用程序包支持的本地化之外的其他本地化。如果是这样,在应用程序的 Info.plist 中将 CFBundleAllowMixedLocalizations 设置为 YES 是正确的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 2021-06-10
      • 2023-01-31
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      相关资源
      最近更新 更多