应用程序的国际化与多脚本支持
1. 资源本地化查找机制
当捆绑程序例程查找资源时,会先检查特定区域的本地化资源。若未找到,会接着查找该区域所属语言的本地化资源。例如,系统先在如 en_US.lproj 这样的特定区域本地化文件夹中查找资源,若未找到,会到 en.lproj 或 English.lproj 这样的语言特定本地化文件夹中查找。若仍未找到,会继续查找用户的下一个首选语言或区域。苹果建议,针对特定区域进行本地化的应用程序,也应包含对应语言的本地化资源,这些资源应包含该语言通用的所有资源。
CFBundle 和 NSBundle 参考 ISO 639 标准中的缩写,能处理大多数已知语言,如马恩岛语、法罗语和奥罗莫语等。除特定语言名称外,它们无法将这些缩写映射为英文名称。不过,可以使用 MacLocales.h 中的 Carbon 函数将 ISO 639 缩写转换为特定语言的用户可见名称。也可以使用 CFBundle 和 NSBundle 未知的语言或区域缩写,但必须确保语言偏好使用的缩写(或至少前两个字符)与 .lproj 目录基本名称完全匹配。
CFBundle 和 NSBundle 已知的区域缩写列表较短,仅涉及八种语言:英语、中文、法语、德语、西班牙语、荷兰语、意大利语和葡萄牙语。它们可以通过简单截断将 ISO 3166 区域缩写映射为“父”ISO 639 缩写。
超级会员免费看
订阅专栏 解锁全文
1847

被折叠的 条评论
为什么被折叠?



