Objective C InfoPlist.strings 本地化 - 使用应用程序名称

Posted

技术标签:

【中文标题】Objective C InfoPlist.strings 本地化 - 使用应用程序名称【英文标题】:Objective C InfoPlist.strings localized - Using app name 【发布时间】:2018-08-13 13:40:04 【问题描述】:

我有一个 $PRODUCT_NAME,以便为我的所有目标引用应用名称。我想在 InfoPlist.strings 中使用它,以便在 CameraUsageDescription 和其他描述中使用目标名称。

如何在字符串中使用它?

类似这样的:

/* Localized versions of Info.plist keys */

"NSLocationWhenInUseUsageDescription" = "Allows geolocation to send your location in the chat or know which institutions and services are near you";
"NSContactsUsageDescription" = "To be able to talk with the contacts who have $PRODUCT_NAME we need to access your agenda";
"NSPhotoLibraryUsageDescription" = 'Allows $PRODUCT_NAME to access the gallery to be able to send photos through the chat';
"NSCameraUsageDescription" = "Allows access to the camera to make a photo and send it";
"NSContactsUsageDescription" = "To be able to talk with the contacts who have $PRODUCT_NAME we need to access your agenda";
"NSPhotoLibraryAddUsageDescription" = "Allows access to save the images received by the chat";

【问题讨论】:

【参考方案1】:

您可以使用$(PRODUCT_NAME) 来引用。 info.plist 中的应用名称。

例如:“$(PRODUCT_NAME) requires camera permission.

它会像“YourAppName requires camera permission.”一样出现

【讨论】:

我正在使用 InfoPlist.strings,所以对此方法的响应(我昨天检查过)是:“$(PRODUCT_NAME)允许地理位置在聊天中发送您的位置或知道哪些机构和服务就在你附近”。 @LordVermiis 我没明白你的意思。这是解决了还是仍然存在?如未解决,请详细说明。 对不起,我没有正确解释。这不起作用,因为模态请求权限不显示 PRODUCT_NAME 值,而是将 $(PRODUCT_NAME) 完全显示为文字。没有解决。我的意思是使用这个公式不会将 $(PRODUCT_NAME) 转换为它的值 我创建了一个示例应用程序来向您展示本地化如何与 .plist 文件一起使用。我已将 .plist 本地化为法语和英语。测试用例:将您的设备语言更改为法语或英语并运行示例项目。 PS:每次运行时都需要卸载应用程序,因为权限弹出窗口只出现一次。链接到示例应用程序:files.fm/u/7fw3zwf9 如果我以任何方式帮助了你,请投票。谢谢你:) @LordVermiis 你检查过示例应用吗?

以上是关于Objective C InfoPlist.strings 本地化 - 使用应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章

objective-c入门

Objective-C和C的区别

objective-c与C++的区别

在 Mac OS X 上结合 Objective-C 和 C/C++

Objective-C 和 MetroWerks C/C++ IDE

objective-c和Cpp怎么混合编程?