我决定使用相同的代码库将我的几个项目合并到一个项目中,并为我的应用程序的不同版本使用不同的目标。
我的应用程序被翻译成7种语言,默认为英语。其他语言包括:瑞典语,荷兰语,德语,法语,波兰语和西班牙语。翻译之前就像一个魅力。我正在使用NSLocalizedString
并将我的Localizable.strings
翻译过来。
但是,现在我将我的项目合并在一起,并且还添加了InfoPlist.strings
文件,应用程序就会使用默认文本(英语)。当我启动应用程序并获得“共享位置”问题时,我以本地化语言提出问题(因此操作系统确实获得了本地化),但应用程序的其余部分仍然是英语。
文件正确翻译且没有错误。我测试了几种语言,但都是英文的。
如果我将CFBundleDevelopmentRegion
设置为例如Swedish
,整个应用程序都是瑞典语。因此本地化可以工作,但应用程序会忽略系统设置。
我错过了什么吗?
答案 0 :(得分:2)
我找到了问题的答案。我有几个字符串文件,一个用于我的应用翻译,一个用于每个名为InfoPlist.strings
的目标,其中只包含CFBundleDisplayName
和CFBundleName
的本地化应用名称。这些不能包含在Localizable.strings
中,因为每个目标都有所不同。
我从项目中删除了InfoPlist.strings
个文件,现在应用程序又重新本地化了。