IOS 多語言本地化 完美解決方案【自動+手動】

多語言本地化戏仓,是我們在做IOS項目的時候經(jīng)常用的,下面根據(jù)自己的經(jīng)驗和使用場景籽腕,來全面的說說多語言本地化的解決方案爱葵。

首先我們要明白本地化的原理和過程施戴,才能更好的理解本地化的方案,本地化主要包括下面幾個部分:

本地化應用程序名稱
本地化字符串
本地化圖片
本地化其他文件

一萌丈、本地化應用程序名稱赞哗,這個只有一種方案:
點擊“new file”然后在彈出窗口左側選擇IOS的resource項,在右側就可以看到“String File”的圖標辆雾。創(chuàng)建這個文件肪笋,命名為“InfoPlist”(一定是這個文件名) 就生成一個InfoPlist.strings文件;
選中InfoPlist.strings 點擊 XCode-> View-> Utilities -> File Inspector,在Localization中點“+”度迂,添加chinese (zh-Hans)類型的為簡體中文藤乙,english 應該會自動添加上。然后在InfoPlish.strings 左邊會多出一個三角形惭墓,點擊展開后可以看到InfoPlish.strings(english)和InfoPlish.strings(chinese)兩個版本的文件坛梁;
在InfoPlish.strings(english)文件中加入:
CFBundleDisplayName ="Program"; 其中“Program”為英文應用程序名稱,同理在InfoPlish.strings(chinese)文件中加入:
CFBundleDisplayName ="應用程序"; 其中“應用程序”為中文名稱腊凶,注意:CFBundleDisplayName加不加雙引號都行
編輯Info.plist罚勾,添加一個新的屬性Application has localized display name, 設置其類型為boolean,并將其value設置為YES即可

二吭狡、本地化字符串和本地化圖片的解決方案有下面兩種:

程序中提供給用戶自己選擇的機會,用戶可以使用按鈕等方式自有切換語言丈莺,和當前系統(tǒng)的語言沒有關系划煮;

根據(jù)當前用戶當前移動設備的語言自動將我們的app切換對應語言。

第一種做法看似比較簡缔俄,當時其實想靈活實現(xiàn)也需要費點心思弛秋,具體的實現(xiàn)方法如下:

創(chuàng)建多個strings文件器躏,名字不能用
Localizable.strings。
多個strings文件如:English.strings/Chinese.strings/German.strings等等蟹略。
每個文件中的內(nèi)容和寫法與Localizable.strings類似登失。
使用方式:
NSLocalizedStringFromTable(@"start",@"Chinese", nil) 。
根據(jù)用戶的操作挖炬,來更新頁面的多語言顯示揽浙。

圖片的本地化,不同語言獲取不同的圖片名稱即可意敛。

第二種做法馅巷,主要分一下幾點:
類似“本地化應用程序名稱”第一步,點擊“new file”然后在彈出窗口左側選擇IOS的resource項草姻,在右側就可以看到“String File”的圖標钓猬。創(chuàng)建這個文件,命名為“Localizable”(一定是這個文件名否則后面調用會有一些區(qū)別)就生成一個Localizable.strings文件撩独;
類似“本地化應用程序名稱”第二第三步敞曹,在Localizable.strings(english)文件中加入:
"welcome"="Click on the screen to continue...";

同理在Localizable.strings(chinese)文件中加入:

"welcome"="點擊屏幕繼續(xù)...";

在代碼中使用NSLocalizedString(<#key#>, <#comment#>)來讀取本地化字符串。

注:圖片的本地化综膀, 這里不同語言的圖片的名稱要一樣澳迫,但是要放到不同的語言文件夾中。

三僧须、本地化其他文件

本地化其他文件和本地化圖片第二種方法類似纲刀,先在Localization中添加語言,然后把對應版本拷貝到en.lproj和zh-Hans.lproj文件夾中担平,最后引用就行了示绊。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市暂论,隨后出現(xiàn)的幾起案子面褐,更是在濱河造成了極大的恐慌,老刑警劉巖取胎,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件展哭,死亡現(xiàn)場離奇詭異,居然都是意外死亡闻蛀,警方通過查閱死者的電腦和手機匪傍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來觉痛,“玉大人役衡,你說我怎么就攤上這事⌒桨簦” “怎么了手蝎?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵榕莺,是天一觀的道長。 經(jīng)常有香客問我棵介,道長钉鸯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任邮辽,我火速辦了婚禮唠雕,結果婚禮上,老公的妹妹穿的比我還像新娘逆巍。我一直安慰自己及塘,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布锐极。 她就那樣靜靜地躺著笙僚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灵再。 梳的紋絲不亂的頭發(fā)上肋层,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音翎迁,去河邊找鬼栋猖。 笑死,一個胖子當著我的面吹牛汪榔,可吹牛的內(nèi)容都是我干的蒲拉。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼痴腌,長吁一口氣:“原來是場噩夢啊……” “哼雌团!你這毒婦竟也來了?” 一聲冷哼從身側響起士聪,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤锦援,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后剥悟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灵寺,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年区岗,在試婚紗的時候發(fā)現(xiàn)自己被綠了略板。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡慈缔,死狀恐怖蚯根,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤颅拦,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站教藻,受9級特大地震影響距帅,放射性物質發(fā)生泄漏。R本人自食惡果不足惜括堤,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一碌秸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悄窃,春花似錦讥电、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至横媚,卻和暖如春纠炮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灯蝴。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工恢口, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人穷躁。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓耕肩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親问潭。 傳聞我的和親對象是個殘疾皇子猿诸,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

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