苹果手表基地本地化显示错误的默认语言
我有一个应用程序本地化为三种语言(简体中文,法文和捷克文),英文为开发语言。苹果手表基地本地化显示错误的默认语言
虽然的本地化在iPhone上完美地工作,有一个与Apple关注的一个问题:如果用户设置的观察语言的任何其他语言不是英语/法语/中国/捷克,那么内容以中文而不是英文显示(应该是默认设置)。
根据这一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(库)文件。通常在iOS端,你并不需要指定文件的基本版本,只需要翻译。但在手表上它似乎需要系统的基本版本才能在那里工作。事实上,我只有一个接口已翻译(在手表应用程序中),甚至在手表扩展中甚至没有Localizable.strings ...所以我必须在扩展中添加一些可本地化的字符串,导出翻译,再次导入它们,然后手动添加一个Base版本(通过检查File Inspector的Localization部分中的Base),因为这个显然需要的东西不会自动创建。
谢谢,但这没有什么区别;问题依然存在 – spassas