廢話
一直以來都在國內(nèi)小公司,做的應(yīng)用也只是面向國內(nèi)用戶口四,所以在應(yīng)用中基本上是不做本地化(國際化)處理的孵运,畢竟不管是App內(nèi)容的產(chǎn)出,還是使用者都是中文的蔓彩。
??但是不久就要入職一家我自己覺得還算牛逼的公司治笨,做的App都是面向國際用戶的,所以稍微整理了一下關(guān)于iOS本地化(國際化)的知識(shí)赤嚼。
配置工程本地化(國際化)
1.選中項(xiàng)目;
2.選中PROJECT(默認(rèn)是選中TARGETS旷赖,切換下);
3.Info—>Localizations—>設(shè)置多語言環(huán)境;
4.點(diǎn)擊加號(hào)更卒,添加你需要的語言等孵;
應(yīng)用名稱本地化(國際化)
1.New File 選中Resource->Strings File;
2.命名為InfoPlist.string;
3.選中InfoPlist.strings;
4.在Xcode右邊欄找到Localization;
5.在Localization中點(diǎn)“+”進(jìn)行配置。(如沒有則點(diǎn)擊 XCode—>View—>Utilities—>File Inspector)
然后你只需要在InfoPlist.string展開文件下蹂空,編輯對(duì)應(yīng)的語言文件:
CFBundleDisplayName ="多語言本地化";
這個(gè)你加不加引號(hào)都是無所謂的俯萌,但是我覺得還是加上是最好的,自己的理解是上枕,字符串嘛咐熙。
最后,編輯Info.plist:
??打開Info.plist,添加一個(gè)新的屬性Application has localized display name, 設(shè)置其類型為boolean辨萍,并將其value設(shè)置為YES即可棋恼。
本地化文字
在應(yīng)用中,承載文字的控件很多:UILabel分瘦、UITextField蘸泻、UITextView等等,所以在做本地化處理的時(shí)候嘲玫,我覺得這一步是至關(guān)重要的悦施。
1.New File 選中Resource->Strings File;
2.命名為Localizable.string;
3.選中Localizable.strings;
4.在Xcode右邊欄找到Localization;
5.在Localization中點(diǎn)“+”進(jìn)行配置。(如沒有則點(diǎn)擊 XCode—>View—>Utilities—>File Inspector)
在Localizable.strings展開對(duì)應(yīng)語言的文件中以key->value的形式添加所需要本地化的文字去团。
"Hello" ="你好";
"Hello %@" ="你好 %@";
在代碼中使用NSLocalizedString(<#key#>, <#comment#>)來讀取本地化字符串抡诞。
NSString *string = NSLocalizedString(@"Hello", nil);
NSString *string = [NSString localizedStringWithFormat:NSLocalizedString(@"Hello %@",nil), @"狍子君"];
iOS默認(rèn)情況下本地化strings文件名是Localizable穷蛹,如果你命名成其他的了,比如paozijun.strings昼汗,那么在使用過程中肴熏,你需要NSLocalizedStringFromTable(key, @"paozijun", nil)來讀取本地化字符串,中間那個(gè)是@"paozijun"文件名。
本地化圖片
在不同語言的Localizable.strings中指定不同的圖片名稱顷窒,通過NSLocalizedString()獲取不同的圖片名稱后進(jìn)行顯示不同的圖片蛙吏。
本地化StoryBoard
因?yàn)楸救碎L期純代碼工作,這個(gè)就不多說了鞋吉,也說不清鸦做。