首页 文章

Xcode - 按语言更改Bundle显示名称

提问于
浏览
1

我希望我的应用名称已本地化(英文和简体中文) . 我在我的项目中本地化Info.plist并添加了简体中文 . 所以我现在有两个Info.plist文件 . 构建项目时出错 . “无法找到Info.plist” . 所以我在Build Settings> Packaging> Info.plist文件路径中编辑了Info.plist的路径 . 现在它奏效了 .

问题是在Build Settings> Packaging> Info.plist File Path中,Xcode只寻找一个Info.plist . 如果我改变zh-Hans.lproj / Info.plist的路径它只会在英文和中文语言设置上显示中文应用名称 . 当我将其更改为en.lproj时也是如此 .

如何设置Info.plist的路径,以便xcode可以识别出根据语言设置需要使用其中两个?

还是有比我正在做的更好的方式?

非常感谢!

1 回答

  • 1

    您没有本地化Info.plist本身,您将本地化的字符串放在单独的文件 InfoPlist.strings 中 . Quoting Apple:

    本地化值不存储在Info.plist文件本身中 . 而是将特定本地化的值存储在名为InfoPlist.strings的字符串文件中 . 将此文件放在与用于存储同一本地化的其他资源相同的特定于语言的项目目录中 . InfoPlist.strings文件的内容是您想要本地化的各个键以及适当翻译的值 . 查找Info.plist文件中的键值的例程会考虑用户的语言首选项,并在存在时返回键的本地化版本(来自相应的InfoPlist.strings文件) . 如果不存在密钥的本地化版本,则例程将返回存储在Info.plist文件中的值 .

    在显示名称的特定情况下, InfoPlist.strings 的每个本地化版本都包含类似的内容

    CFBundleDisplayName = "My Cool App";
    

    并且 Info.plist 中的显示名称仅在 InfoPlist.strings 中未被覆盖时使用 .

相关问题