使用Xcode 10进行基础国际化

cya*_*ide 11 xcode localization xcode10

我的项目声明了两种语言:英语作为开发,法语作为附加.它也Use Base Internationalization打勾了.

当我在Xcode 9中本地化一个Strings文件时,我通常将内容移动到法语,然后BaseLocalization列表中打勾.这给出了两个新的Strings文件的副本Base.lproj(包含英文文本),另一个用于fr.lproj,因此英语将用于法语以外的语言.

使用Xcode 10,Localization它没有列出Base,所以Base.lproj除了在Xcode 9中进行本地化之外我无法看到使用方法,然后在已创建基本文件的情况下恢复为Xcode 10.

这是一个错误,或者这是它的意思?


更新20Sep18.

现在有一个XCode 10的官方版本,即使Use Base Internationalization旗帜仍然存在,问题仍然存在.如果这不是一个错误,有人可以解释发生了什么?应该有Apple文档来讨论这个问题.

当本地化时,BTW,a storyboardnib静止列表Base.只有一个Strings文件似乎有问题.

小智 3

发生这种情况是因为 iOS 不仅仅查找当前的系统语言。它在首选语言列表中查找第一个受支持的语言。

但是当你在系统偏好设置中选择语言时,iOS会自动将该语言添加到首选语言列表中(设置--常规--语言和区域--“首选语言顺序”部分)。

因此,当您将语言更改为不受支持的语言时,应用程序会在“首选语言顺序”列表中选择第二种语言。

因此,“Base.lproj”文件不起作用。

也许正是因为这个原因,Apple 从 Xcode 10 中删除了“Base.lproj”。

  • 首先,XCode 10 中仍然存在“使用基本国际化”勾选。这表明 XCode 10 中尚未删除基本国际化支持。其次,我通过将语言设置为西班牙语来编辑该方案,该语言未列为我的首选语言语言。你猜怎么着:该应用程序使用英语(来自 Base.lproj),而不是您建议的第二语言(如果我理解正确的话)。 (7认同)