如何在iOS info.plist文件中本地化一个字符串?

8 浏览
0 Comments

如何在iOS info.plist文件中本地化一个字符串?

你可能已经知道,在使用用户位置时,iOS 8需要NSLocationWhenInUseUsageDescription密钥。我已经在我的信息plist中添加了该密钥和一些通用信息。

\"“enter\"

我如何在plist文件中使用翻译字符串?

——更新——

我已经有一个可本地化的字符串。我只是想知道是否可以在plist字符串中使用类似于NSLocalizedString(MYSTRING,nil)的东西。我知道我可以创建多个info.plist文件进行本地化,但我想知道是否有更简单的方法。

admin 更改状态以发布 2023年5月22日
0
0 Comments

所有上述方法对我都不起作用(XCode 7.3),所以我查了一下苹果的参考资料,发现其实比上述方法更简单。根据苹果的说法:\n\n本地化值并不会存储在Info.plist文件本身中。相反,你把特定本地化的值存储在名为InfoPlist.strings的字符串文件中。你把该文件放在用于存储同一本地化的其他资源的同一特定语言项目目录中。\n\n因此,我创建了一个名为InfoPlist.strings的字符串文件,并将其放在“xx”语言的xx.lproj文件夹中(通过“文件”->“添加文件到…”添加到项目中)。就这样,不需要键“Localized resources can be mixed” = YES,也不需要在base.lproj或en.lproj中添加InfoPlist.strings。\n\n应用程序会使用Info.plist键值作为默认值,如果它在语言特定的文件中找不到键。因此,我把英文值放在Info.plist文件中,把翻译值放在特定语言的文件中,测试了一下,一切都正常。\n\n特别地,不需要本地化InfoPlist.strings(这样会在base.lproj、en.lproj和xx.lproj中创建文件的版本),而在我的情况下,这种方式并不起作用。

0
0 Comments

您应该使用 InfoPlist.strings 文件(保持 IP 大写)来本地化 Info.plist 的值。要执行此操作,转到 文件->新建->文件,选择 iOS 下的 资源 选项卡下的 Strings File,将其命名为 InfoPlist,然后创建。打开并像这样插入您要本地化的 Info.plist 值:

NSLocationWhenInUseUsageDescription = "Description of this";

现在,您可以使用翻译来本地化 InfoPlist.strings 文件。

选择本地化选项,或根据需要启用本地化,

right side editor

您也应该在左侧编辑器中看到该文件。

left side editor

注意:在模拟器上测试本地化时。您必须在模拟器本身上更改语言,而不仅仅是 Xcode 目标中的语言。(鸣谢 John Webb)

这里是 Info.plist 键本地化的官方文档。

感谢 Marco,感谢他在此答案中包含图片!

0