简单几步搞定国际化

  1. 在NSBundle.h类中有几个定义的宏,如下:
#define NSLocalizedString(key, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \
        [bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \
        [bundle localizedStringForKey:(key) value:(val) table:(tel)]

在key处设置该文本的key,用于替换文本。comment字段仅用于提示,建议设置成自己要替换的文本,比如:NSLocalizedString(@"find", @"发现")

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

  1. 把.m文件中全部替换完成之后,重要的一步就来了。首先用终端进入工程目录,然后mkdir新建一个en.lproj目录,目录名字固定的,不要随意乱改。运行find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj即可生成一套英文的国际化文件,具体路径自己把握,然后在Xcode中添加到工程目录,编辑.string文件即可。

(基本都说genstrings -o en.lproj *.m就可以生成Localizable.strings,但是这个命令只能生成当前目录的,并没有遍历子目录,所以基本没用)

如果你想国际化更多语言,比如中文,就重复第二步,新建一个zh-Hans.lproj目录完成操作即可生成一套简体中文国际化文件。
以此类推。

具体可以参考:http://my.oschina.net/u/1049180/blog/215695

你可能感兴趣的:(简单几步搞定国际化)