iOS 應(yīng)用程序的本地化

一遍尺、概述

應(yīng)用程序本地化截酷,從名字理解就是,應(yīng)用程序App的入鄉(xiāng)隨俗化處理乾戏,比喻說App的名字迂苛,在手機設(shè)置語言為簡體中文的時候,App名字也是簡體中文鼓择,在手機設(shè)置語言為英文的時候灾部,名字則變成英文。這樣說惯退,就能理解本地化是什么東西了赌髓。

既然可以對App名字本地化,同樣也可以對其他的內(nèi)容進行本地化處理,比喻說圖片锁蠕、nib文件及指定字符串等夷野。在后面會講述一些常用的本地化處理

開發(fā)中,對項目進行本地化處理荣倾,不是勾選某個選項就可以了的悯搔,需要為項目添加文件,這個文件稱為”本地化文件夾”舌仍,文件名后綴為.lproj妒貌。下面就開始一步一步講解

二、本地化

先創(chuàng)建一個項目铸豁,我這里就寫了一個簡單的項目灌曙,兩個界面,demo可以在文章后面下載节芥。新建項目在刺,本地語言默認是英文,現(xiàn)在是添加中文本地語言头镊,下面以中文和英文本地化處理為例(當然蚣驼,你也可以添加其他的本地語言,思路是一樣的)
如下圖相艇,找到添加本地語言的位置颖杏,Localizations,點擊加號


統(tǒng)一設(shè)置

在展開的選項例表中選擇你需要的處理的語言,這里選擇簡體中文zh-Hans


選擇語言

選擇語言后坛芽,會讓你再選擇需要做本地化處理的文件留储,都勾上就行了(這里既是給項目添加本地語言,也是給你選中文件添加本地化的子文件)靡馁,勾上以后并確認
選擇本地化的文件

確認以后欲鹏,可以看到本地語言有兩個了
結(jié)果顯示1

同時机久,回到工程我們可以看到臭墨,剛才勾選的兩個storyboard文件,都有各自的子文件了膘盖,在展開的子文件列表中可以看到多了一個**.string(chinese(Simplified))文件


結(jié)果顯示2

到這一步胧弛,準備工作做完了。下面開始示例講解
圖片本地化

圖片本地化侠畔,就是不同的語言環(huán)境结缚,用不同的圖片,打個比喻說首頁的圖片主題是過年软棺,那么對應(yīng)中國是餃子加鞭炮红竭,而對于英文國家,則是圣誕老人加禮物。當然我這里的圖片比較簡單茵宪,僅僅是兩張不同的圖片而已

往項目中拖入一張圖片并且寫到界面上(具體怎么拖怎么寫就不說了)最冰,然后找到圖片Localization設(shè)置界面,如下圖


圖片本地化選項

點擊上圖中的“Localize...”按鈕稀火,會提示你暖哨,選擇對應(yīng)的語言,這里是中文槽驶,并確認瓣戚。如下圖


選擇語言

會看到Localization的列表框下面多了幾個選項让腹,勾上"English"和"Chinese(Simplifile)",bese可以不用勾,基類达布,勾上的話和English是一個效果,如圖
勾選語言

可以看到勾上以后斩熊,剛才那張圖片也有了子下拉列表往枣,展開可以看到兩個文件,對應(yīng)著中文和英文粉渠,如下圖


本地化添加結(jié)果

因為分冈,想要實現(xiàn)中英文下展示不同的圖片,所以就要提供另外一張圖片到項目中霸株。首先準備一張圖片雕沉,然后在本地化文件@“飛豬.png(Chinese(Simplified))”右鍵,選擇在文件中顯示去件,如圖
在文件目錄中顯示

將準備好圖片替換掉原有的圖片坡椒,當然名字得是一樣的,我替換的結(jié)果如下
替換圖片

運行結(jié)果如下尤溜,前提是你的把模擬器設(shè)置成中文和英文各運行一次倔叼,才能看出區(qū)別
英文環(huán)境運行結(jié)果

中文環(huán)境下運行結(jié)果
字符串本地化

字符串本地化,就是把在項目中你可以控制或捕捉到的字符串宫莱,在不同的語言環(huán)境下將其顯示為不同丈攒。在這里我是把界面上的一個label的字符串在不同語言環(huán)境下顯示不同
先創(chuàng)建一個字符串的本地化文件 strings File文件如下圖


創(chuàng)建.strings

將文件保存為Localizable


命名為Localizable

在項目列表中找到找到剛剛創(chuàng)建的文件,然后點擊右邊的Localize...按鈕授霸,步驟和圖片本地化類似巡验,如下圖
本地化處理

選擇簡體中文即Chinese(Simplified)
選擇簡體中文

勾選Localization列表下的English和Chinese(Simplefied)


勾選簡體中文

可以看到Localizable.strings有兩個子文件,分別對應(yīng)的是簡體中文和英文
本地化結(jié)果

在Localizable.strings(Chinese(Simplified))文件中添加代碼labelKey = "簡體中文模式"碘耳。如下圖
WX20170405-141712@2x.png

在Localizable.strings(English)文件中添加代碼labelKey = "英文模式"显设。如下
WX20170405-141652@2x.png

在控制器中使用該字符串的地放使用系統(tǒng)的宏NSLocalizedString(key, comment),第一個參數(shù)是本地化字符串的鍵辛辨,其實這個鍵就是本地化文件中的那個“l(fā)abelKey”捕捂,第二個參數(shù)是注釋瑟枫,可忽略。通過這個宏就可以得到對應(yīng)語言環(huán)境下字符串的值指攒。代碼如下
- (void)viewDidLoad {
    [super viewDidLoad];
    self.label.text = NSLocalizedString(@"labelKey", @"驗證不通的語言環(huán)境文字是否改變");
}

在簡體中文環(huán)境下運行項目力奋,結(jié)果如下


簡體中文環(huán)境下運行結(jié)果

在英文環(huán)境下運行項目,結(jié)果如下


英文環(huán)境下運行結(jié)果

可以看到其中的區(qū)別了幽七。
應(yīng)用程序名字本地化

應(yīng)用程序名稱本地化景殷,就是英文環(huán)境下顯示一個名稱,簡體中文環(huán)境下顯示一個名稱澡屡,這里的例子是猿挚,分別顯示中文和英文
套路和之前的差不多,簡單說明下
首先要創(chuàng)建一個Strings File文件驶鹉,如下圖


創(chuàng)建strings文件

將名字命名為InfoPlist


命名InfoPlist

添加本地化文件绩蜻,和之前的一樣,勾選簡體中文和英文
本地化處理

WX20170405-171135@2x.png

在中英文本地化文件中分別添加應(yīng)用程序的名字室埋,注意應(yīng)用程序名字值對應(yīng)的鍵不能錯办绝,一定是:“CFBundleDisplayName”,如下圖


分別在英文環(huán)境和中文環(huán)境下運行項目姚淆,結(jié)果如下


英文環(huán)境下運行結(jié)果

中文環(huán)境下運行結(jié)果

這樣就完成了應(yīng)用程序名字的本地化處理
nib文件本地化

nib文件本地化孕蝉,這里以xib文件為例,要實現(xiàn)的內(nèi)容是界面上的返回按鈕上的標題腌逢,在英文下為“back”降淮,在簡體中文下為“返回”。
步驟和上面的類似搏讶,先創(chuàng)建本地化文件


本地化處理

這里一定要選擇Base佳鳖,不要問我為什么,你試試就知道了媒惕。然后將三個都勾上系吩,如圖


選擇base

勾選語言

在兩個文件中更改按鈕標題對應(yīng)的字符串,像下圖中那樣更改
簡體中文本地化文件修改

英文本地化文件修改

分別在簡體中文和英文環(huán)境下運行項目妒蔚,得到結(jié)果如下


中文環(huán)境下的運行結(jié)果

英文環(huán)境下的運行結(jié)果

到此穿挨,應(yīng)用程序本地化處理的講解結(jié)束。其實套路不復雜面睛,也可以以此類推絮蒿,對別的內(nèi)容也可以進行本地化處理尊搬,自行發(fā)揮
另外補充一點文章開頭說的添加本地化文件叁鉴,涉及到**.lproj文件。這里說明一下佛寿,意思就是只要你添加了本地化文件幌墓,比喻說中文或者法語但壮,就會自動生成這個文件,而且每種語言對應(yīng)一個常侣,命名也是自動的蜡饵。這個文件在項目文件中,打開項目文件就可以看到胳施,如下圖

三溯祸、下載

點擊下載Demo

四、推薦閱讀

第一篇:應(yīng)用程序本地化 這篇文章寫的很詳細舞肆,除了老一點
第二篇:iOS 設(shè)置App的名稱

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焦辅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椿胯,更是在濱河造成了極大的恐慌筷登,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哩盲,死亡現(xiàn)場離奇詭異前方,居然都是意外死亡,警方通過查閱死者的電腦和手機廉油,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門惠险,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抒线,你說我怎么就攤上這事莺匠。” “怎么了十兢?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵趣竣,是天一觀的道長。 經(jīng)常有香客問我旱物,道長遥缕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任宵呛,我火速辦了婚禮单匣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宝穗。我一直安慰自己户秤,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布逮矛。 她就那樣靜靜地躺著鸡号,像睡著了一般。 火紅的嫁衣襯著肌膚如雪须鼎。 梳的紋絲不亂的頭發(fā)上鲸伴,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天府蔗,我揣著相機與錄音,去河邊找鬼汞窗。 笑死姓赤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的仲吏。 我是一名探鬼主播不铆,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼裹唆!你這毒婦竟也來了狂男?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤品腹,失蹤者是張志新(化名)和其女友劉穎岖食,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舞吭,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡泡垃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了羡鸥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔑穴。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惧浴,靈堂內(nèi)的尸體忽然破棺而出存和,到底是詐尸還是另有隱情,我是刑警寧澤衷旅,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布捐腿,位于F島的核電站,受9級特大地震影響柿顶,放射性物質(zhì)發(fā)生泄漏茄袖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一嘁锯、第九天 我趴在偏房一處隱蔽的房頂上張望宪祥。 院中可真熱鬧,春花似錦家乘、人聲如沸蝗羊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耀找。三九已至,卻和暖如春扑馁,著一層夾襖步出監(jiān)牢的瞬間涯呻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工腻要, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留复罐,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓雄家,卻偏偏與公主長得像效诅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子趟济,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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