CFBundleDisplayName本地化不起作用

时间:2014-11-17 12:49:38

标签: ios7 localization

我尝试本地化我的应用名称,但无法使其正常运行。我有一个带有以下内容的本地化InfoPlist.strings:

CFBundleDisplayName = "Application Name in English";
CFBundleName = "App Name – in English";

以及设置为LSHasLocalizedDisplayName的{​​{1}}(Application has localized Display Name)。我还能错过什么?

我能错过什么?在另一个应用程序中,它无缝地工作,但对于这个应用程序,我无法将名称本地化。

InfoPlist.strings与其他本地化字符串位于同一目录中,并且也选择了目标成员资格。

编辑:正如我发现的那样,我有两种语言(德语,英语),它适用于德语,但不适用于英语...应用程序locatization(localizable.strings )在同一个目录中工作完美,但InfoPlist.strings没有......

3 个答案:

答案 0 :(得分:3)

您是在设备上还是在模拟器中试过这个?

因为在模拟器中它总是用英语运行(或者你的Mac语言,对我来说是英语),它不会从模拟器本身进行设置。

这很奇怪,但你需要在编译时调整应用程序的语言:

enter image description here

答案 1 :(得分:1)

您提到已添加CFBundleDisplayName& CFBundleName中的InfoPlist.string。有没有可能,你可能没有info.plist文件。

此外,您可能想要检查以下内容是否未返回null

[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleNameKey];
[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleLocalizationsKey];

而且,(你必须阅读它,但仍然)我怀疑这可能是一个问题,如果你可以检查。

  

在显示捆绑包的本地化名称之前,Finder   将此键的值与捆绑包的实际名称进行比较   在文件系统中。如果两个名称匹配,则Finder继续进行   显示相应InfoPlist.strings文件中的本地化名称   你的捆绑。如果名称不匹配,Finder将显示   文件系统名称。

答案 2 :(得分:0)

我知道这已经过时了,但是如果有人没有看到您的应用名称在iOS设备上进行了本地化,即使您编辑了该语言的目标计划,那也是因为它会