Xcode 10实现基本国际化

时间:2018-08-08 09:00:56

标签: xcode localization xcode10

我的项目声明了两种语言:英语为开发语言,法语为其他语言。另外,它还勾选了Use Base Internationalization

在Xcode 9中本地化Strings文件时,通常将内容移至法语,然后在Base列表中勾选Localization。这样就给出了新Strings文件的两个副本,一个在Base.lproj中(包含英语文本),另一个在fr.lproj中,因此英语将用于除法语之外的其他语言。

在Xcode 10中,Localization不会列出Base,因此除了在Xcode 9中进行本地化然后还原为Xcode之外,我看不到使用Base.lproj的方法10,并且已经创建了基本文件。

是一个错误,还是它的本质?


更新20Sep18。

现在有XCode 10的正式版本,即使Use Base Internationalization标志仍然存在,问题仍然存在。 如果这不是错误,那么有人可以解释发生了什么吗?应该有一个Apple文档对此进行讨论。

顺便说一句,storyboardnib在本地化时仍列出Base。仅一个Strings文件似乎有问题。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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