我创建了一个 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 中不起作用。
我现在必须覆盖德语翻译来测试其他语言,这非常烦人。这是一个常见问题吗?有人找到解决方法吗?