NSLocalizedString在设备语言未适配时的返回逻辑咨询
关于NSLocalizedString未匹配设备语言时的返回逻辑
嘿,这个问题问得特别实用!我来给你把这个逻辑讲明白~
当你调用NSLocalizedString("HELLO", comment:"An initial greeting")但设备当前语言(比如你说的德语)没有对应的Localizable.string配置时,系统会按照以下优先级返回内容:
优先 fallback 到项目的「基准语言(Base Localization)」
绝大多数iOS项目都会设置一个基准语言(默认通常是英文),这个语言对应的本地化文件是系统的最后兜底选项。如果你的项目基准语言是英文,那即使设备是德语,也会返回英文的"Hello"。如果没有设置基准语言,直接返回传入的key
要是你的项目没配置基准语言,系统找不到任何匹配的本地化字符串时,就会直接把你传入的第一个参数(也就是这里的"HELLO")原封不动返回给你。
举个更直观的例子:如果你的项目Base Localization是英文,那不管设备切到日语、俄语还是德语这种没配置的语言,都会用英文的字符串;但如果没设Base,就只会显示HELLO这个key。
另外提一句,你可以在Xcode的项目设置→Info→Localizations里查看和修改基准语言,Base那一行就是啦~
内容的提问来源于stack exchange,提问作者Jeronimo Cabezuelo Ruiz
相关产品推荐
相关产品推荐

