既然要替換項目中使用到的中文字符串,key
, 這裡不理解的不要緊,下面我還會講到。 既然是辨別中文字符串,那也就是說在項目文件中進行匹配查找,(@"[
即可, 打開你的Xcode 試試看,切記find 後面的選項要選擇 Regular Expression
, 默認選中的是Text
, 如圖
我們已經知道如何識別項目中的字符串了,但是如何取出來使用呢? 這就需要遍歷項目中所有的指定後綴(e.g: .h、.m等)的文件,key=value
已經拿到取出的中文字符串文件,
這個繁體文件,可以直接作為繁體多語言使用,v
, 也就是圖中=
後面雙引號中的內容,格式什麼的也不要讓他亂改,
多語言文件已經配置完成,到了這裡,那麼問題來了,
?假設你已經備份好了,你就可以開始替換工作了,key
進行替換,(@"[^"]
由於我們在iOS 多語言版本的開發(二)中,對取key對應的語言內容,
#define ASLocalizedString(key) [NSString stringWithFormat:@"%@", [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"ASLocalized"]]
以上是宏的定義,我們需要將字符串進行替換成宏的使用,如:
替換前是這樣的_lbl.text = @"我是多語言";
替換後_lbl.text = ASLocalizedString(@"我是多語言")
替換規則如圖:
這次選中的是Replace
, 不是Find
。按圖中所示,選擇完畢後,點擊ReplaceAl
, 會出來一個彈框,不用管它直接繼續,即可,
1、正則表達式,不懂得可以先照文章裡寫就行,然後再去學習下,
2、ASLocalizedString(key) , 該宏使用面積廣,可以將其定義成公共頭文件中,
3、替換後,可能會有些地方報錯,command + b 編譯下,看看報錯的地方,進行相應修改即可。報錯原因:a. 可能是你定義的常量字符串; b. 可能是定義的宏; c. 可能是替換後沒有換行; 基本上報的錯誤很明顯,進行修改即可;
4、在迭代版本中,再次使用中文字符串,就需要使用ASLoca
, 來代替了,然後再多語言文件中,進行key=value
配置;
原文地址:http://www.devashen.com/
作者博客地址:www.devashen.com