我需要本地化info.plist的两个键:NSLocationUsageDescription
和NSCameraUsageDescription
。所以我尝试创建一个名为InfoPlist.strings的新文件,然后我将其本地化,但应用程序始终显示存储在info.plist文件中的字符串。怎么了?
Information Property List Key Reference
的官方文件本地化值不存储在Info.plist文件本身中。 相反,您将特定本地化的值存储在 名为InfoPlist.strings的字符串文件。您将此文件放入 用于存储的特定于语言的项目目录 同一本地化的其他资源。的内容 InfoPlist.strings文件是您想要本地化的各个键 适当翻译的价值。查找键的例程 Info.plist文件中的值采用用户的语言首选项 考虑并返回密钥的本地化版本(来自 适当的InfoPlist.strings文件)当存在时。如果是本地化的 一个键的版本不存在,例程返回存储的值 在Info.plist文件中。
我的InfoPlist.strings文件:
NSCameraUsageDescription = "hello";
NSLocationUsageDescription = "hello hello";
答案 0 :(得分:8)
请检查生成的应用程序包,文件是否确实存储在那里并将其放在正确的位置。通常这是缺少的一步。
进入项目设置,打开"构建阶段"看看是否 该文件可以在"复制捆绑资源"
中找到答案 1 :(得分:4)
您的plist文件可以为您的应用程序支持的每种语言提供多个版本。 在Utilities \ File Inspector(右侧)中,单击“Localize”:
然后选择您想拥有自己版本的语言:
之后,您将能够输入每个plist文件并根据需要进行编辑。
答案 2 :(得分:1)
有时您必须首先进行清洁,点击菜单 - >产品 - >干净。
答案 3 :(得分:0)
事实上,我的问题是我拼错了NSLocationWhenInUseUsageDescription常量,所以当然没有考虑到它。
答案 4 :(得分:0)
自iOS 10起,您需要将隐私密钥添加到Info.plist。
<key>NSPhotoLibraryUsageDescription</key>
<string>Please allow access to the photo library.</string>
当然,您仍然需要对这些密钥进行本地化(并且您无法本地化应用程序的Info.plist)。因此,您还要将这些隐私密钥添加到InfoPlist.strings中,而InfoPlist.strings又是本地化的。
"NSPhotoLibraryUsageDescription" = "Please allow access to the photo library.";
答案 5 :(得分:0)
InfoPlist.strings
不考虑方案的“应用程序区域”,而是设备中设置的区域!在您的设备上:Settings
-> General
-> Language & Region
,检查您是否喜欢使用iPhone语言。< / p>
答案 6 :(得分:0)
就我而言,与另一个构建目标的其他 InfoPlist.strings 文件存在冲突。
答案 7 :(得分:-1)
该文件需要位于指示语言的目录内,例如en.lproj