iOS/macOS中文本地化:苹果为何未遵循标准ISO 639编码?
中文本地化陷阱:Xcode生成的lproj命名与ISO标准差异
问题提醒
- 开发无需切换设备区域的多语言App时,若代码依赖ISO 639-1/2标准编码(比如简体中文用
zh、繁体中文(台湾)用zh-TW)对接第三方语言处理API,一定要注意:Xcode 14.0.1添加中文本地化后,App Bundle里生成的是zh-Hans.lproj(简体)和zh-Hant.lproj(繁体)文件夹,而非符合ISO标准的命名。 - 这个差异会直接导致依赖标准编码的语言逻辑失效,我当初排查了好几小时才定位到问题,特意提醒其他开发者避开这个坑。
苹果命名逻辑说明
苹果的本地化文件夹命名遵循IETF BCP 47标准,而非单纯的ISO 639-1。zh-Hans对应简体中文(Hans是简体的脚本标识),zh-Hant对应繁体中文(Hant是繁体脚本标识)——这种命名方式能更精准地区分中文的不同书写体系,覆盖港澳台及海外所有繁体使用场景,比ISO仅按地域划分的方式更全面。
关于标准不一致的疑问
苹果没有完全遵循ISO 639-1,核心原因是ISO标准只定义了语言大类,无法满足中文不同书写体系的细分需求。至于文档没有及时更新,大概率是官方文档的迭代滞后于工程实现,导致开发者的预期和实际行为不匹配。
内容的提问来源于stack exchange,提问作者BlueskyMed
相关产品推荐
相关产品推荐

