iOS國(guó)際化——看這里足矣

一催式、簡(jiǎn)介

所謂國(guó)際化就是讓你的APP能在不同國(guó)家的人們都能看懂悬而,即讓你APP中的語(yǔ)言跟隨系統(tǒng)變化呜舒,若系統(tǒng)當(dāng)前語(yǔ)言是英文,則你APP中顯示英文笨奠,若系統(tǒng)當(dāng)前語(yǔ)言是中文袭蝗,則APP顯示中文。廢話不多說(shuō)般婆,直接開始到腥。

二、 初始化蔚袍。

  • 如下圖所示乡范,在工程中添加中文,當(dāng)然你還可以添加其他語(yǔ)言,這里只演示支持兩種語(yǔ)言篓足,英語(yǔ)和中文段誊。


  • 點(diǎn)擊Chinese(Simplified)(zh-Hans)后,彈出如下圖界面:

三. App名稱國(guó)際化

  • 新建Strings File文件栈拖,設(shè)置文件名為InfoPlist.strings
  • 創(chuàng)建完成后连舍,你可以看到工程目錄結(jié)構(gòu)文件如下,單擊InfoPlist.strings涩哟,查看右邊的屬性索赏,在Localizable欄添加語(yǔ)言。
    InfoPlist.strings(English)中添加:CFBundleDisplayName = "hello world";
    InfoPlist.strings(Chinese(Simplified))的添加:CFBundleDisplayName = "世界 你好";
    注意每句結(jié)尾有分號(hào)贴彼!
  • 運(yùn)行程序潜腻,在中文環(huán)境下,你就可以看到:



    在英文環(huán)境下:


四器仗、在Storyboard或Xib中設(shè)置多語(yǔ)言

在Storyboard或Xib中設(shè)置多語(yǔ)言有兩種方法融涣,Localizable.StringsInterfaceBuilder.String

  1. Localizable.Strings
    注意一下兩步:
    首先把Storyboard中的勾去掉:


    然后精钮,在Storyboard中威鹿,加入你需要的控件,當(dāng)你的布局基本完成之后轨香,注意忽你,一定是在你布局完成后,把剛才去掉的勾再選中臂容。這樣做的目的是讓Xcode自動(dòng)幫我們生成對(duì)應(yīng)的代碼科雳,而不需要我們自己去手寫,否則……大家試試就知道了:

    可以看見多出了幾個(gè)文件脓杉,在這幾個(gè)文件中糟秘,國(guó)際化已經(jīng)做好了,我們只需要在對(duì)應(yīng)的文件中設(shè)置對(duì)應(yīng)的語(yǔ)言就OK了丽已。如果不按照上述步驟蚌堵,這兩個(gè)文件將沒有內(nèi)容,全部需要手敲沛婴。
    在InfoPlist.strings(Chinese(Simplified))中設(shè)置中文

    在InfoPlist.strings(English)中設(shè)置英文

    上圖代碼中左邊的那一串編號(hào)是啥?那是每個(gè)控件的ObjectID督赤,這根據(jù)控件的ObjectID來(lái)設(shè)置值嘁灯,每個(gè)控件的ObjectID可以在下圖中找到,所以在后期如果額外需要添加幾個(gè)控件躲舌,仿照上面寫就可以了:

    運(yùn)行程序丑婿,在中文下,可以看見:
    中文

    在英文下可以看見:
    英文

    建議:在Storyboard中全用中文,這樣方便后續(xù)找到這個(gè)控件羹奉,設(shè)置對(duì)應(yīng)的文字

  2. InterfaceBuilder.String
    InterfaceBuilder.String的使用方法與上述基本類似秒旋,在下圖我們可以看到,如果選用Interface Builder Storyboard方案诀拭,那么每種語(yǔ)言都有一套相應(yīng)的Storyboard迁筛,但是各個(gè)語(yǔ)言Storyboard間的界面改動(dòng)不關(guān)聯(lián),所以耕挨,還是先取消勾選细卧,當(dāng)界面布局完成后,再選中筒占。


    這種方法會(huì)有多個(gè)Xib文件贪庙,不方便維護(hù),所以還是建議使用第一種方法翰苫。

五止邮、純代碼設(shè)置

如果沒有使用Xib或Storyboard,需要先新建一個(gè)Localizable.strings奏窑,它是iOS默認(rèn)加載的文件导披,如果想用自定義名稱命名,在使用NSLocalizedString方法時(shí)指定tableName為自定義名稱就好了良哲,但你的應(yīng)用規(guī)模不是很大就不要分模塊搞特殊了盛卡。


創(chuàng)建完成后溶诞,記得勾選EnglishChinese:

中文和英文設(shè)置分別如下:


一定要注意每一行結(jié)尾都有分號(hào)
在代碼中:

[self.button setTitle:NSLocalizedString(@"button", nil) forState:UIControlStateNormal];

NSLocalizedString(@"button", nil)會(huì)去Localizable.strings中找key為button的value撵颊,上述設(shè)置在英文環(huán)境下顯示I'm button描孟,在中文環(huán)境下顯示按鈕屿愚。若沒有這個(gè)key顾瞪,則會(huì)直接返回key尼斧。例如:

[self.button setTitle:NSLocalizedString(@"123456", nil) forState:UIControlStateNormal];

Localizable.strings找不到123456這個(gè)key霜旧,則按鈕的title會(huì)顯示123456冯吓。
至此為止棚潦,已經(jīng)全部OK令漂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丸边,隨后出現(xiàn)的幾起案子叠必,更是在濱河造成了極大的恐慌,老刑警劉巖妹窖,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纬朝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡骄呼,警方通過(guò)查閱死者的電腦和手機(jī)共苛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門判没,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人隅茎,你說(shuō)我怎么就攤上這事澄峰。” “怎么了辟犀?”我有些...
    開封第一講書人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵俏竞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我踪蹬,道長(zhǎng)胞此,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任跃捣,我火速辦了婚禮漱牵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疚漆。我一直安慰自己酣胀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開白布娶聘。 她就那樣靜靜地躺著闻镶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丸升。 梳的紋絲不亂的頭發(fā)上铆农,一...
    開封第一講書人閱讀 49,850評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音狡耻,去河邊找鬼墩剖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛夷狰,可吹牛的內(nèi)容都是我干的岭皂。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼沼头,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼爷绘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起进倍,我...
    開封第一講書人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤土至,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后猾昆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毙籽,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年毡庆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坑赡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡么抗,死狀恐怖毅否,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝇刀,我是刑警寧澤螟加,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站吞琐,受9級(jí)特大地震影響捆探,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜站粟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一黍图、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奴烙,春花似錦助被、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至幅虑,卻和暖如春丰滑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倒庵。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工褒墨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哄芜。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓貌亭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親认臊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子圃庭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容