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

时间:2016-09-06 06:07:33

标签: ios swift localization translation

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

2 个答案:

答案 0 :(得分:6)

您需要更改Localizable.strings文件的目标成员身份。在左侧的Project Navigator中选择Localizable.strings,然后打开右侧的File Inspector,并在“Target Membership”字段中的扩展目标旁边添加复选标记。

enter image description here

答案 1 :(得分:0)

有几件事要检查:

  • 一种是@ovejka在此处提供的解决方案-单击您的字符串 本地化文件,并在右侧的设置窗格中确保 该文件适用于您的小部件以及您的主应用(目标 成员资格)。
  • 另一种是确保您的情节提要字符串文件,该文件应 当您向其中添加第二种语言时已自动创建 您的应用具有正确的翻译。
  • 如果这些都不起作用,则考虑到小部件很小并且 可能只有几个标签,您可以在'viewWillAppear'中添加一个switch语句,以根据检测到的语言翻译每个标签

最后,这些似乎都没有在模拟器中为我工作,甚至没有切换模式语言并在我的实际手机上运行。

事实证明,它一直在工作,并且模拟语言未应用于小部件。我将手机的实际语言转换为西班牙语,运行了新版本的应用程序,并且该小部件已翻译。