2

我创建了一个 OS X Today 扩展并想测试我的本地化。但是 Widget-Simulator 拒绝接受我的语言选择。

*.strings为来自源代码并通过以下方式翻译的文本创建了文件:

NSLocalizedString("Some text", tableName: "nameOfTheStringFile", comment: "foo")

这是字符串文件的一些结构的屏幕截图:

在此处输入图像描述

整个项目包含 8 个本地化文件。但其中只有两个与小部件相关。一般Info.plist和一个文件命名TranslationsWidget.strings如上图。

所有语言都已通过项目信息选项卡中的语言列表添加,如下所示:

在此处输入图像描述

现在在模拟器中发生的是,模拟器本身被翻译了。模拟器的所有菜单项都将以我在方案中选择的任何语言显示。但小部件的内容不是。我不认为这是我的配置或代码的问题,因为该小部件实际上已被翻译:系统语言是德语,而开发语言是英语。所以这不仅仅是不翻译,而是翻译成错误的语言。

包含的主应用程序(Today Extension 必须打包在普通应用程序中)可以很好地转换为我在相应方案中选择的任何内容。

我不仅多次从菜单中运行Product -> Clean ,还删除了所有派生数据:

cd ~/Library/Developer/Xcode/DerivedData && rm -rf *

不仅因为如此,我确信它不是某种缓存的东西。同样,如果我更新德语翻译字符串,小部件会在下次运行时更新。

我通过更改系统语言测试了小部件的本地化效果。通过更改 Scheme 中的语言,它在 Widget-Simulator 中不起作用。

我现在必须覆盖德语翻译来测试其他语言,这非常烦人。这是一个常见问题吗?有人找到解决方法吗?

4

0 回答 0