由于最近項(xiàng)目要做多語言適配,所以本人經(jīng)過多方面查閱,在完成任務(wù)的情況下,總結(jié)了一下國際化的基本步驟,并記錄于此,方便以后查閱(實(shí)際是怕忘記了).如果有寫的不好的地方,歡迎批評指導(dǎo).
APP名稱國際化
1.首先我們要先創(chuàng)建一個工程,我們給他命名 “國際化” ,然后添加語言.
2.創(chuàng)建一個 .strings 拓展名的文件,打開 File > New > File(command + N),選擇Resource中Strings Fils,如下圖.點(diǎn)擊 “next” ,命名文件為 InfoPlist.strings, 然后點(diǎn)擊 “create”.
3.創(chuàng)建完成,可以看到工程目錄結(jié)構(gòu)如下,選中InfoPlist.strings, 在右邊屬性欄Localization中選擇語言,如圖.
4.選擇完語言后打開對應(yīng)的語言文件,比如
Simplified(簡體中文)
“CFBundleDisplayName” = “你好 世界”;
English
“CFBundleDisplayName” = “hello world”;
到此,APP名稱國際化完畢,接下來只需要修改對應(yīng)的系統(tǒng)語言,便可看到對應(yīng)的效果.
內(nèi)容國際化
1.新建一個Localizable.strings 文件 (因?yàn)镹SLocalizedString方法默認(rèn)是前往本地化項(xiàng)目內(nèi)部的應(yīng)用程序包中查找名為"Localizable.strings" 字符串文件)
注:如果不是采用系統(tǒng)的默認(rèn)名字,則需要調(diào)用 NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>) 這個宏定義.這個宏定義的作用是讀取 table 中定義的 key 所對應(yīng)的 value.
第一個參數(shù):自定義 .strings 文件中對應(yīng)的 key
第二個參數(shù):自定義 .strings 文件的文件名,不需要后綴.
第三個參數(shù):填 nil 就可以了
2.選擇語言同上
3.在Localization.strings 中,按照”key” = “value”的格式;然后使用時用NSLocalizedString(@”key”, nil)讀取內(nèi)容;
Simplified(簡體中文)
“哈哈哈”=”哈哈哈!”;
English
“哈哈哈”=”hahaha”;
xib國際化
1.創(chuàng)建一個view并帶上xib,點(diǎn)擊右側(cè)屬性欄 Localization 中 Localize…,在彈窗選擇”Base”,然后點(diǎn)擊Localize,如圖:
2.Localize 完畢后,在右側(cè)屬性欄中選擇語言,如圖:
3.點(diǎn)擊xib的箭頭展開xib,會顯示出語言文件,選擇語言文件,會看到文件里也是”key” = “value” 的形式存在的,不同的是需要 “Object ID”,如果xib上的控件是在生成語言文件之前創(chuàng)建好的,系統(tǒng)會自動生成 “key” = “value” 的鍵值對,我們只需要將”value”修改成對應(yīng)的語言便可,如圖:
如果xib上的控件是在生成語言文件之后創(chuàng)建的,則需要自己寫”key” = “value”,而 “Object ID” 則是選擇對應(yīng)的控件,在右側(cè)屬性欄查看,如圖:
注:其實(shí)xib也可以不用生成對應(yīng)的語言文件,只需要在代碼中書寫控件對應(yīng)的title或者text,然后在Localization.strings 中,按照”key” = “value”的格式;然后使用時用NSLocalizedString(@”key”, nil)讀取內(nèi)容.