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 未本地化的主要内容,如果未能解决你的问题,请参考以下文章

无法在模拟器中运行 Today 扩展小部件(iOS 8)

在 Swift 中的主 App 和 Today 小部件/扩展之间共享 UI 元素

为啥 Today Widget 在 iOS 14 上显示“无法加载”且无法调试?

iOS Today 扩展/小部件——位置权限?

.task 崩溃 - Swift 5.5 (iOS 15 Beta 5)

iOS - 在 Today Extension 上显示图像时收到内存警告