iOS多國語言國際化由于我個(gè)人也是第一次做叮叹,所以遇到了很多問題,
在此我把我所遇到的一些問題分享給大家瘤运。
最基礎(chǔ)的怎么進(jìn)行多國語言國際化在此就不老生常談了辱挥,有興趣的朋友可自行百度。
1.首先我們說下翻譯的格式:"你好" = "hello"
;
我們可以把需要翻譯的文檔制作成"你好" = "";
這種Word文檔
每一種語言一個(gè)Word文檔无虚,這樣你會(huì)發(fā)現(xiàn)缔赠,你做國際化的時(shí)候會(huì)快很多,不必到處找啊找的友题,我們這次搞得就是表格樣式的嗤堰,坑死人了,放翻譯文檔放的手都軟了度宦;
2.我們盡量把同一個(gè)VC
的詞語翻譯成差不多長的其他語言踢匣。
大家可以想象一下如果你的一個(gè)布局里面有一排按鈕告匠,等分排練的,然后翻譯的title
一個(gè)好長一個(gè)非常短的离唬,我們?cè)撨@么去適配呢后专?而我們最簡單的做法是
btn.titleLabel.adjustsFontSizeToFitWidth = YES;
想象一下當(dāng)時(shí)我是有多痛苦了嗎?所以說输莺,當(dāng)你看到這篇文章的時(shí)候說明你很慶幸戚哎,至少下次你遇到這樣的需求你可以及時(shí)的和翻譯說。
3.由于某些國家的語言有很多種不同的系列嫂用,導(dǎo)致測試的時(shí)候會(huì)出現(xiàn)型凳,這種語言缺失,其實(shí)不然嘱函,只是你在選擇語言的時(shí)候少選了他的語種甘畅,就像中文一樣,有簡體和繁體中文实夹。我這里最常見的有這么幾種:
西班牙語(最坑爹橄浓,我選了3個(gè)才搞定)
丹麥語
俄語
葡萄牙語
意大利語
4.當(dāng)初做項(xiàng)目的時(shí)候沒管那么多,直接是只考慮了中文亮航,然而國際版我們的項(xiàng)目需要減少一個(gè)tabBarItem
所以通過判斷是否為中文來判斷的具體寫法是寫了個(gè)單例的類然后寫的方法:
//判斷是否為中文簡體
- (BOOL)isSimpleChinese
{
NSString *language = [[NSLocale preferredLanguages] firstObject];
if ([language isEqualToString:@"zh-Hans"]) {
return 1;
}else{
return 0;
}
}
然而我們的運(yùn)氣貌似有點(diǎn)差荸实,剛好碰上的iOS9升級(jí),失效了缴淋,打開代碼斷點(diǎn)看看准给,原來是蘋果IOS9增加了語言后面的地區(qū)代碼,原來的zh-Hanz
變成了zh-Hanz-CN
能怎么辦呢重抖?當(dāng)然是改代碼咯露氮。。钟沛。畔规。下面是改過的代碼
//判斷是否為中文簡體
- (BOOL)isSimpleChinese
{
NSString *language = [[NSLocale preferredLanguages] firstObject];
if ([language hasPrefix:@"zh-Hans"]) {
return 1;
}
else {
return 0;
}
}
仔細(xì)的你是否發(fā)現(xiàn)了代碼的不同之處啊恨统?
5.國際化一些有圖片的地方叁扫,我們需要特別注意下取名哦,比如:
hello_en@2x.png
(英語)
這樣做的好處就是我們替換圖片的時(shí)候只要判斷下后綴是否是en
就可以判斷當(dāng)前語言所需的圖片下面我截個(gè)圖給大家瞧瞧
記得叫美工改好名字哦畜埋,我們用起來的時(shí)候就會(huì)方便快捷莫绣!
如對(duì)你有幫助,請(qǐng)不要吝惜你的star和喜歡哦悠鞍!
推薦一款學(xué)習(xí)iOS開發(fā)的app_____|______| | 傳送門
暫時(shí)就發(fā)現(xiàn)這么多对室,大家有什么需要補(bǔ)充的也可以簡信給我。
技術(shù)交流群:534926022(免費(fèi)) 511040024(0.8/人付費(fèi))
版權(quán)歸?Bison所有 如需轉(zhuǎn)載請(qǐng)保留原文超鏈接地址!否則后果自負(fù)掩宜!