• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 试图读取 InfoPlist.strings 文件...获取 key (?)

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:32:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

许多人不知道,在 iOS 和 OSX 上本地化应用程序名称的方法是将 InfoPlist.strings 文件添加到包中并本地化该文件。人们将此文件与 Info.Plist 文件混合使用。本地化不是在 Info.plist 中完成的,而是在 InfoPlist.strings 文件中完成的。

也就是说,我用两个键创建了这个文件:CFBundleDisplayNameCFBundleName,就像我一直做的那样。这非常有效,您可以在不同的本地化中为您的应用程序定义不同的名称。该文件可以无缝运行。您无需执行任何操作,只需将文件添加到项目中并进行本地化即可。

InfoPlist.strings 是这样的字符串文件:

"CFBundleDisplayName" = "My Localized App Name";
"CFBundleName" = "My Localized App Name";

对于这个项目,我还必须在运行时读取 CFBundleDisplayName 的值。

我已尝试使用此代码:

NSString *appName = [[NSBundle mainBundle] localizedStringForKey"CFBundleDisplayName" value:nil table"InfoPlist"];

读取 CFBundleDisplayName 键,但我得到的值是 CFBundleDisplayName。换句话说,我提供 key 并接收返回的 key ,而不是值。我应该会收到 My Localized App Name

我错过了什么?



Best Answer-推荐答案


我在 Swift 中完全做到了这一点,它按预期工作。

let appname = NSBundle.mainBundle().localizedStringForKey("CFBundleDisplayName", value: nil, table: "InfoPlist")

但是,如果我从相应的 InfoPlist.strings 文件中删除本地化字符串,它会返回 "CFBundleDisplayName"

因此,请检查您的 .strings 文件中是否缺少某些内容

After trying several possibilities..

BUG 是“项目中的 InfoPlist.strings 的第二个副本”

关于ios - 试图读取 InfoPlist.strings 文件...获取 key (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348982/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap