genstrings iOS国际化语言支持

iOS国际化的知识。

首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:

genstrings iOS国际化语言支持_第1张图片

我们应用只支持中文,英文,所以只建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值。举例如下:

 

这样程序就能根据系统语言,去选择“登录”还是“Log In”。

 

但是如果每次加了一个本地化字符串,就得手动去Localizable.strings添加对应的key,那就太麻烦了,幸好苹果提供了快捷生成本地化key的命令。下面以en.lproj的生成为例:

首先,我们进入程序工程所在的目录,用命令建立en.lproj 

  mkdir en.lproj

然后我们遍历所有的子目录文件,去生成Localizable.strings,命令如下:

  find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj

这样系统就会把子目录用到NSLocalizedString函数的key值都写到文件里。

需要注意的是,NSLocalizedString(key,comment),用这个函数时,key不能是宏定义或者一些动态字符串,否则用上面的命令会报错。

你可能感兴趣的:(ios修炼之路)