- 在NSBundle.h類中有幾個(gè)定義的宏盯腌,如下:
#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處設(shè)置該文本的key沃斤,用于替換文本弓摘。comment字段僅用于提示焚鹊,建議設(shè)置成自己要替換的文本,比如:NSLocalizedString(@"find", @"發(fā)現(xiàn)")
韧献。
需要注意的是末患,NSLocalizedString(key,comment),用這個(gè)函數(shù)時(shí)锤窑,key不能是宏定義或者一些動(dòng)態(tài)字符串璧针,否則用上面的命令會(huì)報(bào)錯(cuò)。
- 把.m文件中全部替換完成之后渊啰,重要的一步就來了探橱。首先用終端進(jìn)入工程目錄,然后mkdir新建一個(gè)en.lproj目錄绘证,目錄名字固定的隧膏,不要隨意亂改。運(yùn)行
find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj
即可生成一套英文的國際化文件嚷那,具體路徑自己把握胞枕,然后在Xcode中添加到工程目錄,編輯.string文件即可魏宽。
(基本都說genstrings -o en.lproj *.m就可以生成Localizable.strings腐泻,但是這個(gè)命令只能生成當(dāng)前目錄的,并沒有遍歷子目錄队询,所以基本沒用)
如果你想國際化更多語言派桩,比如中文,就重復(fù)第二步蚌斩,新建一個(gè)zh-Hans.lproj目錄完成操作即可生成一套簡體中文國際化文件铆惑。
以此類推。