我有这个可重现的问题:( xCode 7.0和8.0,OS X El Capitan 10.11.6)
1)将密钥添加到标准Info.plist文件中,例如:NSCameraUsageDescription,NSBluetoothPeripheralUsageDescription和NSHealthShareUsageDescription
2)为这些密钥的已翻译警告字符串创建InfoPlist.strings本地化文件(在这种情况下,处理一次显示的隐私设置对话框)。本地化为英语(美国),法语,德语等。您可以在运行时验证每种语言的翻译字符串是否出现在相应的对话框中。即:
/* NSBluetoothPeripheralUsageDescription */
NSBluetoothPeripheralUsageDescription = "myApp would like Bluetooth to connect to your device";
(我已尝试使用带引号和不带引号的NSBluetoothPeripheralUsageDescription。)
3)在某处的某些代码中添加对每个使用过的Key / String的引用,以便您能够导出/导入它们。 e.g:
NSString *strg = NSLocalizedStringFromTable(@"NSCameraUsageDescription", @"InfoPlist", @"NSCameraUsageDescription");
(我不确定这一步是否必要。)
4)使用编辑器下的菜单|导出本地化...将所有本地化导出为.xliff文件。
5)通过编辑器|下的菜单项重新导入在步骤4中创建的完全相同的.xliff文件导入本地化...
InfoPlist.strings中的字符串会消失,即使它们已正确导出!
知道这个本地化有什么问题吗?这是一个错误吗?据我所知,这只发生在Info.plist本地化。