Apple Watch基本本地化显示错误的默认语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apple Watch基本本地化显示错误的默认语言相关的知识,希望对你有一定的参考价值。

我有一个本地化的应用程序,有三种语言(简体中文,法语和捷克语),英语作为开发语言。

enter image description here

虽然本地化在iPhone上完美运行,但Apple Watch存在一个问题:如果用户使用除英语/法语/中文/捷克语之外的任何其他语言设置Watch语言,则内容将以中文而非英语显示(这应该是默认的)。

根据这个Technical Note

如果您的应用不支持用户首选语言,则ios会选择与您应用的开发区域(CFBundleDevelopmentRegion)匹配的语言。

注意:请务必为您的应用设置CFBundleDevelopmentRegion。如果采用基本本地化,请确保CFBundleDevelopmentRegion的值与Base.lproj文件夹中内容使用的语言相匹配。

我已经确认上述要求都得到满足(CFBundleDevelopmentRegion="en"和所有Base.lproj文件确实是英文的)。有什么我想念的吗?同样,这仅适用于Watch应用程序,而不适用于iPhone应用程序。

答案

来自https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-130430,CFBundleDevelopmentRegion是语言和地区,例如en-US,而不仅仅是en。

另一答案

我有繁体中文和简体中文,但它选择繁体中文作为默认语言。当我删除繁体中文翻译时,选择英语。

我还将CFBundleDevelopmentRegion设置为en,这是默认值。

从你的屏幕截图我没看到英语 - 发展英语。

另一答案

我遇到了同样的问题,并在这个帖子中找到了解决方案:https://forums.developer.apple.com/thread/86889

基本上,手表扩展需要一个Localizable.strings(Base)文件。通常在iOS端,您实际上不需要指定文件的基本版本,只需要指定翻译。但是在手表上似乎需要该系统的基本版本才能在那里工作。事实上,我只有一个界面翻译(在手表应用程序中),甚至在手表扩展中没有Localizable.strings ...所以我不得不在扩展中添加一些可本地化的字符串,导出翻译,再次导入它们,然后手动添加Base版本(通过检查File Inspector的Localization部分中的Base),因为这个显然需要的东西不是自动创建的。

以上是关于Apple Watch基本本地化显示错误的默认语言的主要内容,如果未能解决你的问题,请参考以下文章

在 Apple Watch 中显示 iPhone 本地通知

Apple Watch 中的本地通知

如何在 Apple Watch 模拟器中测试本地通知?

Companion Apple Watch App 本地通知延迟?

Apple Watch Series 4 显示全屏错误

Apple Watch 中模态序列中的“取消”标签显示错误文本 - “abbrechen”