Swift - 如何使用共享扩展的本地化

Swift - How to use localisation from Shared Extension

如何在 Swift 中使用来自共享扩展的容器应用程序本地化字符串。我已经将容器字符串文件添加到 extension -> build phase -> compile sources 中,但它仍然无法正常工作。我应该在配置中设置什么吗?从主容器应用程序字符串被翻译,但从共享扩展它只显示文本字符串 keys/ids。

您需要更改 Localizable.strings 文件的目标成员资格。 Select Localizable.strings 在左侧的项目导航器中,然后打开右侧的文件检查器并在 "Target Membership" 字段中的扩展目标旁边添加复选标记。

有几件事需要检查:

  • 一个是@ovejka 在这里提供的解决方案——点击你的字符串 本地化文件并确保在右侧设置窗格中, 该文件适用于您的小部件以及您的主应用程序(目标 会员资格)。
  • 另一个是确保你的故事板字符串文件,它应该 已在您添加第二语言时自动创建 您的应用程序具有正确的翻译。
  • 如果这些都不起作用,考虑到一个小部件非常小而且 可能只有几个标签,您可以向 'viewWillAppear' 添加 switch 语句以根据检测到的语言翻译每个标签

最后,none 似乎在模拟器中为我工作,甚至通过切换模式语言并 运行 在我的实际 phone 上使用它。

事实证明,它一直在工作,并且模拟语言不适用于小部件。我将 phone 的实际语言变成了西班牙语,运行 我的应用程序的新版本,小部件也被翻译了。