Swift iOS 11 Beta Today 小部件 infoPlist.Strings 未本地化
Posted
技术标签:
【中文标题】Swift iOS 11 Beta Today 小部件 infoPlist.Strings 未本地化【英文标题】:Swift iOS 11 Beta Today Widget infoPlist.Strings Not Localizing 【发布时间】:2017-08-08 19:43:48 【问题描述】:在我开始使用 ios 11 beta 之前,我一直在我的 Swift 程序中使用 Today Widget 并且没有遇到任何问题。从那时起,Bundle Display Name
就没有本地化。在我的Info.Plist
中,我有:
<key>CFBundleDisplayName</key>
<string>NSLocalizedString(CFBundleDisplayName, nil)</string>
在我的InfoPlist.Strings
文件中,我有
"CFBundleDisplayName" = "Recent Chats";
如果我在 iOS 11 beta 之前的任何东西上显示小部件,则字符串会正确本地化,但是当我使用 iOS 11 beta 设备时,会显示字符串 NSLocalizedString(CFBundleDisplayName, nil)
。
是否有人知道 iOS 11 测试版的更改或可能导致此问题的错误?
【问题讨论】:
【参考方案1】:您是在 ios 11 模拟器还是真机上进行测试?如果您在模拟器上测试,请在模拟器中从 Settings>General>Language&Region 更改模拟器语言。
另一个有趣的事情是我意识到如果你只使用 base.lproj 作为英文版本并且没有这样的英文本地化,当模拟器语言更改为 Enlish(U.S) 或 English(U.K) 时,InfoPlist.Strings (Base ) 值未显示。
【讨论】:
我在模拟器和实际设备上实际测试过。更改语言确实有助于发现问题。我必须将默认字符串放在Info.plist
而不是 NSLocalizedString
文本中。以上是关于Swift iOS 11 Beta Today 小部件 infoPlist.Strings 未本地化的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中的主 App 和 Today 小部件/扩展之间共享 UI 元素
为啥 Today Widget 在 iOS 14 上显示“无法加载”且无法调试?