IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    COCOA国际化的小笔记

    Xiang Wangfeng发表于 2012-07-22 00:00:00
    love 0

    一般提到COCOA的国际化无非就是在所有需要显示文本的地方调用NSLocalizedString(key,comment)方法,由程序自动按照当前系统语言设置载入相应Localizable.strings,并获取key所对应的文本。比如NSLocalizedString(@”username”,nil),在中文系统下显示为用户名,而在英文系统下显示为username。(值得注意的是XCode中所有工程的默认语言设置都是英文,在找不到其他语言strings文件时都统一使用英文的Localizable.strings文件)。

    而更复杂的应用场景是需要对xib文件做国际化—-不同语言环境下显示不同的界面(而不仅仅是文本不同而已)。处理的方法和上面基本一致:在XCode下右击相应的xib文件->Get Info,然后add localization即可。

    而最后一个需要国际化的地方是App名。比如mac系统下的文本编辑app,在英文环境下显示为TextEdit,在中文环境下却是文本编辑。处理方法是:

    • 在info.plist中设置Application has localized display name为YES
    • 设置info.plist的CFBundleDisplayName和CFBundleName都为$(PROJECT_NAME)
    • 对infoPlist.strings文件做国际化处理,方法和处理字符文件和xib一样。
    • 编辑不同的infoPlist.strings文件,设置相应的显示名字:CFBundleDisplayName和CFBundleName。

    对App名做如上国际化影响到的地方包括:Finder中查看到文件名,程序在Monitor中显示进程名,程序菜单第一项名称,程序在Dock上的显示名称等等,但是对程序在终端中显示的文件路径不影响(即真正的文件路径)。比如文本编辑app,在中文下显示为文本编辑,英文下为TextEdit,但不管在哪个语言环境下通过终端查看文件都显示为TextEdit.app。



沪ICP备19023445号-2号
友情链接