您可能知道 iOS 8 需要 NSLocationWhenInUseUsageDescription 键来使用用户的位置 . 我已将此密钥和一些常规信息添加到我的信息plist中 .
如何在plist文件中使用翻译字符串?
- 更新 -
我已经有了一个Localizable字符串 . 我只是想知道我可以在plist字符串中使用类似NSLocalizedString(MYSTRING,nil)的东西 . 我知道我可以创建多个info.plist文件进行本地化,但我想知道可能有一个更简单的方法 .
9 回答
您应该使用
InfoPlist.strings
文件来本地化Info.plist
的值 . 要执行此操作,请转到File->New->File
,在iOS
的Resource
选项卡下选择Strings File
,将其命名为InfoPlist
,然后创建 . 打开并插入要本地化的Info.plist
值,如:现在,您可以使用翻译本地化
InfoPlist.strings
文件 . 祝好运!编辑:
选择本地化选项,或根据需要启用本地化,
你应该能够在左侧编辑器中看到该文件 .
EDIT:
Here是
Info.plist
键本地化的官方文档 .以上所有内容对我来说都不起作用(XCode 7.3)所以我阅读了Apple如何做的参考,它比上面描述的要简单得多 . 根据Apple的说法:
因此,我创建了一个名为 InfoPlist.strings 的字符串文件,并将其放在"xx"语言的xx.lproj文件夹中(并使用File-> Add Files to ...将其添加到项目中) . 而已 . 不需要键"Localized resources can be mixed" = YES,并且不需要base.lproj或en.lproj中的InfoPlist.strings .
如果无法在特定于语言的文件中找到密钥,则应用程序将使用Info.plist键值作为默认值 . 因此,我将我的英文值放在Info.plist文件中,并将已翻译的文件放在特定于语言的文件中,进行测试,一切正常 .
特别是,不需要本地化InfoPlist.strings(在base.lproj,en.lroj和xx.lproj中创建该文件的版本),在我的情况下,这样做不起作用 .
如果某些东西不起作用,请确保添加:
“可以混合本地化资源”= YES
进入info.plist . 在我的例子中,InfoPlist.strings文件被忽略了 .
我强烈建议您阅读Apple的指南,并查看此处列出的WWDC资源:Internationalization and Localization Topics
要专门回答您的问题,当您向项目中添加新语言
时,您有机会选择要包含的InfoPlist文件(如果您有多个目标,则会有多个Info plist文件) . 要获得以下屏幕,您只需点击“本地化”下的内容,然后选择一种新语言来添加支持 .
一旦添加,它将在给定语言的相应lproj目录中创建必要的字符串文件 .
为了清楚起见,iOS将使用plist条目的键作为本地化字符串文件中的键,根据用户当前选择的语言替换Plist文件的字符串 .
提示
请记住,iOS模拟器默认使用您的系统语言 . 请更改iOS模拟器设置中的语言(和区域)以测试您的翻译 .
本地化字符串(请参阅Apple文档here)应该是
而不是(引用“......”)
正如RGML所说,你可以创建一个InfoPlist.strings,本地化它然后添加你的密钥和值如下:“NSLocationWhenInUseUsageDescription”=“帮助找到我!”;
它将为您指定语言的info.plist添加密钥 .
对于在尝试添加本地化时遇到info.plist问题的人,例如在Xcode 9中 .
您需要进入info.plist localiazble,然后单击文件检查器中的localize按钮,如下所示 .
然后,当您添加新的本地化时,info.plist将包含在文件资源中 .
在我的情况下,一切都设置正确但仍然找不到InfoPlist.strings文件 .
唯一真正奏效的是,到 remove and add the InfoPlist.strings files again 到项目 .
逐步本地化Info.plist:
在x-code中查找文件夹资源(放在root中)
选择文件夹资源
然后按主菜单File-> New-> File ...
在"Resource"字符串文件部分中选择,然后按下一步
然后在另存为字段中仅写入InfoPlist("I" capital和"P" capital)
然后按“创建”
然后选择在Resources文件夹中创建的文件InfoPlist.strings,并在右侧菜单中按下按钮"Localize"
然后从项目导航器中选择项目,并从项目列表中选择项目
在底部的信息选项卡中,您可以使用所需的语言(在“本地化”部分中)
您可以在资源文件夹中看到的语言
要从info.plist文件本地化值("key"),您可以使用文本编辑器打开并获取要本地化的所有键
您可以在任何InfoPlist.strings中编写任何键作为示例,如上例所示
“NSLocationAlwaysAndWhenInUseUsageDescription”= “布拉布拉”;
“NSLocationAlwaysUsageDescription”= “blabla2”;
这一切都工作,你已经本地化了info.plist文件!