iOS APP 內(nèi)切換國際化

iOS國際化(應(yīng)用內(nèi)切換語言)

2018-05-08 17:20 編輯: yyuuzhu 分類:iOS開發(fā) 來源:anonymousCat

2 2412

iOS

招聘信息:

[](javascript:void(0))[](javascript:void(0))

首先問一個弱弱的問題,在項目開發(fā)過程中盗棵,哪些內(nèi)容需要國際化征峦?App中出現(xiàn)的所有文本內(nèi)容本文嗎?非也非也。

本文將以適配中文和英文為例台丛,分為四個部分來介紹國際化的實現(xiàn)纬朝。

1.哪些內(nèi)容需要國際化个绍?

首先來說開頭提到的看似弱弱的問題。乍一看写穴,你一定會覺得不就是所有的文本內(nèi)容嗎惰拱?非也。舉個栗子:比如你要發(fā)一條微博啊送,文本內(nèi)容包括:用戶名偿短,XX分鐘前,來自XX設(shè)備删掀,正文內(nèi)容翔冀。僅這四個對象,你覺得哪幾個需要適應(yīng)用戶的語言呢披泪?用戶名纤子,顯然不需要翻譯,我給自己起名叫二狗子,你給我翻譯成 The second son of dog控硼,你覺得合適么泽论?XX分鐘前,"分鐘前"就是一個需要翻譯的內(nèi)容卡乾。同樣翼悴,來自XX設(shè)備的“來自”也需要翻譯,而XX設(shè)備則是獲取的動態(tài)數(shù)據(jù)幔妨,不需要翻譯鹦赎,當(dāng)然也不是所有的動態(tài)數(shù)據(jù)都不需要翻譯,這個就要根據(jù)各自項目視不同情況而定了误堡。正文內(nèi)容古话,與用戶名同理,比如我是個泰國人锁施,我發(fā)個“薩瓦迪卡”陪踩,你給我翻譯成“你好”,我反而看不懂了悉抵。這一段話寫的稍顯啰嗦肩狂,總結(jié)起來就一句話:固定文本內(nèi)容一般需要翻譯,動態(tài)數(shù)據(jù)要視情況而定姥饰,另外傻谁,項目名稱依據(jù)實際需求而定。

2.需要哪些類媳否,文件栅螟,配置作為支持?

  • 類:皮膚管理者類篱竭,繼承自NSObject

  • 文件:Strings File如圖

1.png

3.各個文件力图,類之間如何配合?

  • 皮膚管理者類會包含三個方法供外部調(diào)用掺逼。

一吃媒、生成單利+ (instancetype)sharedInstance;

二、獲取文本內(nèi)容+ (NSString *)localizedStringWithKey:(NSString *)key;

三吕喘、切換語言+ (void)changeLanguage;注意赘那,正式項目中該方法會根據(jù)實際需求有所變化,在該例中僅做簡單的中英文互相切換氯质。

下面來具體說說募舟,單利方法自不必多說。主要講最核心的方法+localizedStringWithKey:它的內(nèi)部是這樣的

1.png

方法一共有四行代碼

第一行[self currentLanguage] 會獲取本地偏好中保存的當(dāng)前語言闻察,比如英文返回en拱礁,中文返回zh-Hans琢锋。獲取這個值的目的是選擇下圖中紅色標(biāo)注的路徑:

1.png

en.lproj中會保存 英文環(huán)境需要的strings文件。zh-Hans.lproj中則保存中文環(huán)境需要的stings文件呢灶。strings文件內(nèi)部是這樣的:

1.png
1.png

這個文件中每一行可以寫一對 鍵值對吴超, = 前面的是鍵(切換語言),= 后面的是要顯示在界面上的值(language)鸯乃。

第二行就是獲取到當(dāng)前語言環(huán)境的路徑了鲸阻。

第三行[[NSBundle bundleWithPath:lPath] localizedStringForKey:key value:nil table:@"Localizable"]則是根據(jù)第二行獲取到的路徑再根據(jù) 剛才我們提到的=前面的鍵 比如“切換語言”,以及文件名字"Localizable" 獲取到我們最終要在界面上顯示的內(nèi)容缨睡,就是前面說到的 =后面的值鸟悴。

所以,外部的實例通過調(diào)用語言管理者的localizedStringWithKey:方法奖年,傳入key(比如:傳入切換語言)遣臼,就能得到英文環(huán)境下要顯示的內(nèi)容:language,中文環(huán)境下則是:切換語言拾并。

1.png

動圖效果如下:

123.gif

4.總結(jié)

通過上面的描述可以看到,國際化的核心在于

[[NSBundle bundleWithPath:lPath] localizedStringForKey:key value:nil table:@"Localizable"] 這個方法以及Localizable.strings文件鹏浅。我們在切換語言時嗅义,僅僅是在本地偏好中保存了一個字符串,en或者zh-Hans隐砸,而最終顯示的內(nèi)容要依賴于我們在Localizable.strings文件中寫的內(nèi)容之碗,以及NSBundle加載哪個路徑的strings文件。

如果有不妥之處季希,歡迎指正補(bǔ)充褪那。謝謝。

作者:anonymousCat

鏈接:http://www.reibang.com/p/c70e0b168799

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末式塌,一起剝皮案震驚了整個濱河市博敬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峰尝,老刑警劉巖偏窝,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異武学,居然都是意外死亡祭往,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門火窒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硼补,“玉大人,你說我怎么就攤上這事熏矿∫押В” “怎么了离钝?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疾捍。 經(jīng)常有香客問我奈辰,道長,這世上最難降的妖魔是什么乱豆? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任奖恰,我火速辦了婚禮,結(jié)果婚禮上宛裕,老公的妹妹穿的比我還像新娘瑟啃。我一直安慰自己,他們只是感情好揩尸,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布蛹屿。 她就那樣靜靜地躺著,像睡著了一般岩榆。 火紅的嫁衣襯著肌膚如雪错负。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天勇边,我揣著相機(jī)與錄音犹撒,去河邊找鬼。 笑死粒褒,一個胖子當(dāng)著我的面吹牛识颊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奕坟,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼祥款,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了月杉?” 一聲冷哼從身側(cè)響起刃跛,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沙合,沒想到半個月后奠伪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡首懈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年绊率,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片究履。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡滤否,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出最仑,到底是詐尸還是另有隱情藐俺,我是刑警寧澤炊甲,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站欲芹,受9級特大地震影響卿啡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜菱父,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一颈娜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浙宜,春花似錦官辽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裙品,卻和暖如春俗批,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背市怎。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工扶镀, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焰轻。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像昆雀,于是被迫代替她去往敵國和親辱志。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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

  • 1揩懒、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 2018年09月07日添加localizedStringForKey:value:table:調(diào)用解析 1 添加要...
    Jacob_LJ閱讀 6,592評論 10 20
  • 遇上每件事辅愿,每個人智亮,都有它存在的意義。 要么使你瘋狂点待,要么使你墮落阔蛉,要么使你上進(jìn)癞埠。 總歸最后這些決定總會讓自己改變...
    缺心大大閱讀 143評論 0 0
  • 薺菜 瘋長在四月的田野 香氣肆意 唱著酣暢的情歌 薺菜 茂盛比得過野花的嫵媚 掐一把薺菜 沾滿嫩綠色的汁液 引魂入...
    李遠(yuǎn)紅閱讀 160評論 0 1
  • 昨天有朋友說:“你每天要上課寫作業(yè),還要推送毕莱,還要做電臺器贩,還有各種活動央串,時間被排得滿滿的磨澡,我好羨慕這種充實的感覺质和。...
    卷毛維安閱讀 11,533評論 91 418