? ? ? 以前做加菲狗的時(shí)候因?yàn)槊嫦虻氖菄H市場次伶,所以運(yùn)營對APP的一些國際化要求比較高。涉及了八國語言稽穆,但是因?yàn)橥茝V力度的加強(qiáng)冠王,一些未做國際化的語言國家也進(jìn)行了推廣,這樣一來秧骑,app與AppStore中的默認(rèn)語言的設(shè)置就成了中文版确,于是程序再次被運(yùn)營吊打······
? ? ?其實(shí)上面的解決辦法是自己工程里面設(shè)置好默認(rèn)語言為英文,上傳AppStore中的時(shí)候也設(shè)置成英文就行了乎折。 好了绒疗,言歸正傳,下面我們一步一步的讓我們的項(xiàng)目走向國際化骂澄。
1.讓我們建立一個(gè)多語言文件
? ? 給我們的國際化文件命名為Localization吓蘑,這個(gè)隨意哈~
2.讓我們建立一個(gè)多語言文件
? ? 注意哦,這里蘋果給了我們一點(diǎn)點(diǎn)小驚喜坟冲,這個(gè)多語言文件的命名必需是“Localizable”這樣才能被Xcode識(shí)別磨镶。
? ? ? 注意哦,這里有個(gè)小坑健提!下面琳猫,我們可以看一下我們國際化后的工程目錄。 請點(diǎn)擊那個(gè)紅框標(biāo)注的按鈕哦私痹,原因在下面
3.為我們的多語言文件添加新的語言
? ? ? 注意咯脐嫂,如果不按照第二部操作的話你可能會(huì)遇見一個(gè)問題,那就是你無法為你的多語言文件添加新的語言!為毛?那是因?yàn)檎也坏蕉嗾Z言文件了成洗,原諒我沒有深究下去吧~
? ?點(diǎn)擊”+“后里面后很多語言的選擇,這里不好截圖我就不貼出來了匀奏。下面有兩種情況:
(1).不按照第二步點(diǎn)擊的,會(huì)找不到多語言文件学搜,無法為其添加語言:
(2).正常的是為所需要的多語言文件添加語言
4.多語言的使用
? ? ? iOS會(huì)根據(jù)你的系統(tǒng)語言自己判別使用哪種語言娃善,例如你使用簡體中文论衍,并且多語言文件夾里有簡體中文的文件自己進(jìn)行相應(yīng)的替換。使用的API就是
? ? ? ? ? ? ? ? ? ?NSLocalizedString(<#key#>, <#comment#>)
? ? ? ”key“就是多語言文件對應(yīng)關(guān)鍵字聚磺,comment就是內(nèi)容饲齐,可以寫備注,也可以不寫咧最,iOS就是由這個(gè)key根據(jù)系統(tǒng)的語言尋找對應(yīng)語言文本的關(guān)鍵字進(jìn)行替換的。不過建議關(guān)鍵字的選取要尊重原文御雕,不要圖簡單矢沿,因?yàn)楹竺鎯?nèi)容多了,你圖簡單省事酸纲,縮寫少寫捣鲸,你就會(huì)發(fā)現(xiàn),全亂套了~
大家做兩個(gè)文件一個(gè)中文繁體闽坡,一個(gè)英文切換系統(tǒng)語言試試看~~~
5.圖片國際化
? ? ?這些東西說穿了一文不值栽惶。
```
+ (NSString *) getLanPicNameWithPicName:(NSString *)picName
{
if ([SYSTEM_LANG hasPrefix:@"zh-Hans"])
{
return [NSString stringWithFormat:@"%@_hans",picName];
}
return [NSString stringWithFormat:@"%@_en",picName];
}
```
? ? ? 這個(gè)是我封裝的一個(gè)方法,將圖片的名字輸入疾嗅,來”自動(dòng)“進(jìn)行圖片國際化外厂。其實(shí)就是將圖片的名字進(jìn)行卻分開而已,通過判別系統(tǒng)語言代承,再給imageNmae換個(gè)名字而已汁蝶。看了我圖片的命名方式你就明白了论悴。