【问题标题】:Base internationalisation with Xcode 10使用 Xcode 10 进行基础国际化
【发布时间】: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 文档来讨论这个问题。

顺便说一句,storyboardnib 在本地化后仍会列出 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


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 首先,XCode 10 中仍然存在“使用基本国际化”标记。这表明 XCode 10 中没有删除基本国际化支持。其次,我通过将语言设置为西班牙语来编辑方案,这不是我的首选语言。猜猜看:该应用使用英语(来自 Base.lproj),而不是您建议的第二语言(如果我理解正确的话)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2018-02-05
  • 2019-03-02
相关资源
最近更新 更多