【发布时间】:2018-09-20 08:19:43
【问题描述】:
我的项目声明了两种语言:英语作为开发语言,法语作为附加语言。它还勾选了Use Base Internationalization。
当我在 Xcode 9 中本地化字符串文件时,我通常将内容移动到法语,然后在 Localization 列表中勾选 Base。这给出了新字符串文件的两个副本,一个位于Base.lproj(包含英文文本),另一个位于fr.lproj,因此英语将用于法语以外的语言。
在 Xcode 10 中,Localization 没有列出 Base,所以我看不到使用 Base.lproj 的方法,只能在 Xcode 9 中进行本地化,然后在已创建基本文件的情况下恢复到 Xcode 10 .
这是一个错误,或者这就是它的本意?
2018 年 9 月更新。
现在 XCode 10 正式发布,即使 Use Base Internationalization 标志仍然存在,问题仍然存在。
如果这不是错误,有人可以解释发生了什么吗?应该有一个 Apple 文档来讨论这个问题。
顺便说一句,storyboard 或 nib 在本地化后仍会列出 Base。只有Strings 文件似乎存在问题。
【问题讨论】:
-
我遇到了类似的问题,我有一些 xib 的本地化:base(on EN)、EN 和 JP。当使用 Xcode 10 编译时,它忽略了 EN 和 JP,它只使用了基本的。我的解决方案是搭上基本款。我不知道现在没有基础系统将使用什么语言。我试了西班牙语,结果是 EN,但我不知道为什么那个不是 JP...
-
rgkobashi。那很奇怪。据我所知,Xcode 10 仍然支持 xib 的“Base”和“storyboard”。否则您将无法保留布局,因为所有非基础文件都不是“xib”,而只是“字符串”。至于您的问题,我想它将是您项目中指定的第一种(默认)语言。好吧,您可以通过在模拟器或方案中设置未实现的语言来轻松检查。
-
Xcode 10.0 打破了故事板文件的本地化。我已经向苹果提交了错误报告。
-
@cyanide 问题是在我的配置(基础、EN 和 JP)上,一切都是
.xib而不是.strings,所以 Xcode 使用了这些布局。感谢您回答我的问题,这是有道理的......
标签: xcode localization xcode10