iOS 是不是依赖另一个区域本地化字符串?
Posted
技术标签:
【中文标题】iOS 是不是依赖另一个区域本地化字符串?【英文标题】:Does iOS fall back on another regional localized string?iOS 是否依赖另一个区域本地化字符串? 【发布时间】:2017-09-11 18:41:28 【问题描述】:ios 应用程序有一个 Localizable.strings
文件,用于带有区域的语言 es-MX
(西班牙语-墨西哥),但没有该语言的通用本地化文件,例如es
(西班牙语)。
设备区域设置为es-PE
(西班牙语-秘鲁)的用户会看到es-MX
的翻译,还是会退回到基本语言en
?
【问题讨论】:
好问题。我不知道答案。但无论哪种方式,都不需要很长时间就可以建立一个实验来测试它。最多只需要一个小时左右。您只需要一个标签和不同语言的不同字符串。 @Fogmeister 我希望有人参考文档,因为测试只能告诉我这么多。请参阅下面的答案。 【参考方案1】:我在模拟器上用iOS 10.3试了一下,结果是:
如果存在es-MX
翻译,但没有es
翻译,则区域设置为es-PE
的用户的Localizeable.strings
会退回到基本语言,在我的情况下为en
。
如果有人对文档有参考,请发表评论,我会将其添加到答案中。因为如果当前未定义行为,它可能会在未来的 iOS 版本中发生变化,甚至可能取决于语言和地区。有些地区可以作为其他地区的“父母”,例如es-419
(西班牙拉丁美洲)代表es-MX
(西班牙-墨西哥),所以如何定义回退行为会很有趣。
但是,由于es-419
是一种可以在 iOS 设置中选择的独特语言,我假设后备层次结构是:
base
↑
|- es
↑
|- es-MX
|- es-PE
|- es-419
|- es-ES
【讨论】:
以上是关于iOS 是不是依赖另一个区域本地化字符串?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UILabel 在使用另一种语言时没有初始化? (iOS 本地化)
ios 中用于 DateFormatters 的“区域”设置的目的