最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS實現(xiàn)應(yīng)用內(nèi)切換本地化語言的方法實例

 更新時間:2017年12月01日 10:58:20   作者:scfhao  
網(wǎng)絡(luò)上關(guān)于iOS國際化的文章很多,但基本上都是基于跟隨系統(tǒng)語言的國際化,而這篇文章主要給大家介紹了關(guān)于利用iOS實現(xiàn)應(yīng)用內(nèi)切換本地化語言的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考。

前言

當(dāng)我們的應(yīng)用僅僅面向國內(nèi)用戶群,一般僅支持一種語言--中文就可以了。當(dāng)面向國外用戶時就需要進(jìn)行國際化了,不僅僅是語言的轉(zhuǎn)變,也可能包括設(shè)計風(fēng)格,頁面布局、交互效果的轉(zhuǎn)變,如微信,微博,QQ這類應(yīng)用都有著切換語言的功能。

最近因為工作的原因,遇到個需要在應(yīng)用內(nèi)部設(shè)置語言的需求,默認(rèn)使用系統(tǒng)設(shè)置的語言,如果用戶在App內(nèi)設(shè)置了別的語言,以后則按照新設(shè)置的語言顯示界面。

iOS確定應(yīng)用的語言

      1.iOS首先搜索用戶的語言偏好設(shè)置(設(shè)置-通用-語言與地區(qū))

      2.檢測你的應(yīng)用是否支持用戶的語言,先用偏好設(shè)置的第一個語言,檢測應(yīng)用是否包含該語言對應(yīng)的文件夾(后綴是.lproj,文件名部分,英語為en,中文簡體為zh-Hans,日語為ja)如果存在,那就是該語言,否則用偏好設(shè)置第二個語言來匹配。重復(fù)該過程。

      3.一旦系統(tǒng)為應(yīng)用確定了語言,對應(yīng)的.lproj文件夾就會用作本地化資源。

于是,寫了個新輪子SOLocalization (本地下載),希望大家喜歡,其實代碼很簡單,有興趣的可以直接去讀源代碼,有補(bǔ)充的可以直接向我提交 pull request。下面話不多說了,來一起看看詳細(xì)的介紹吧。

方法如下:

1.創(chuàng)建本地化文件。

創(chuàng)建本地化字符串文件,文件名可以是默認(rèn)的 infoPlist.strings,也可以是別的,為這個文件設(shè)置好要支持的語言及內(nèi)容。

2.導(dǎo)入 SOLocalization。

3.配置 SOLocalization。

設(shè)置支持的語言及默認(rèn)語言,當(dāng)系統(tǒng)設(shè)置的語言不屬于支持的語言時會使用默認(rèn)語言。

[SOLocalization configSupportRegions:@[SOLocalizationEnglish, SOLocalizationSimplifiedChinese] fallbackRegion:SOLocalizationEnglish];

4.設(shè)置 UIKit 對象。

為 UIKit 對象設(shè)置合適的屬性,像下面這樣簡單,而且這樣設(shè)置后,當(dāng)語言切換時,這些 UIKit 對象的文本內(nèi)容會自動變?yōu)樾略O(shè)置的語言,不需要任何額外處理。

UIBarButtonItem *change = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(changeLanguage:)];
// 這里的 @"Setting" 就是 strings 文件中對應(yīng)的那個 key,下同
change.sol_title = @"Setting"; 
self.navigationItem.rightBarButtonItem = change;
self.label.sol_text = @"label";
[self.button sol_setTitle:@"button" forState:UIControlStateNormal];
self.textField.sol_placeholder = @"textField placeholder";
self.navigationItem.sol_title = @"title";

對于 SOLocalization 暫不支持切換語言后自動修改文本內(nèi)容的 UIKit 對象,可以這樣獲取需要的本地化字符串:

// 其中 “title” 為 strings 文件中對應(yīng)的 key,“infoPlist”是本地化字符串文件名
NSString *localizedString = SOLocalizedStringFromTable(@"title", @"infoPlist");

5.修改應(yīng)用內(nèi)使用的語言

// to use English
[SOLocalization sharedLocalization].region = SOLocalizationEnglish;
// to use 簡體中文
[SOLocalization sharedLocalization].region = SOLocalizationSimplifiedChinese;

6.自定義的本地化字符串文件名

SOLocalization 提供的 API 中,默認(rèn)使用的本地化字符串文件名為 infoPlist.strings 文件,如果使用其他文件名(比如使用這個文件名:local.strings),如下即可:

// 對于支持的 UIKit 對象
label.sol_table = @"local";
// 使用 SOLocalizedStringFromTable 時
NSString *localizedString = SOLocalizedStringFromTable(@"title", @"local");

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • iOS-Mac遠(yuǎn)程連接控制Window

    iOS-Mac遠(yuǎn)程連接控制Window

    這篇文章主要為大家詳細(xì)介紹了iOS-Mac遠(yuǎn)程連接控制Window,蘋果電腦遠(yuǎn)程連接控制Windows電腦,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • iOS中長按調(diào)出菜單組件UIMenuController的使用實例

    iOS中長按調(diào)出菜單組件UIMenuController的使用實例

    UIMenuController即是用來制作我們平時對文本長按屏幕后顯示出的復(fù)制粘貼等選項菜單,下面就來詳細(xì)整理一下iOS中長按調(diào)出菜單組件UIMenuController的使用實例:
    2016-06-06
  • iOS實現(xiàn)視頻播放全屏和取消全屏功能

    iOS實現(xiàn)視頻播放全屏和取消全屏功能

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)視頻播放全屏和取消全屏功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • iOS Swift邏輯運(yùn)算符示例總結(jié)

    iOS Swift邏輯運(yùn)算符示例總結(jié)

    運(yùn)算符是一個符號,用于告訴編譯器執(zhí)行一個數(shù)學(xué)或邏輯運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于iOS Swift邏輯運(yùn)算符的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • iOS實現(xiàn)簡單抽屜效果

    iOS實現(xiàn)簡單抽屜效果

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)簡單抽屜效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • iOS應(yīng)用開發(fā)中對UIImage進(jìn)行截取和縮放的方法詳解

    iOS應(yīng)用開發(fā)中對UIImage進(jìn)行截取和縮放的方法詳解

    這篇文章主要介紹了iOS應(yīng)用開發(fā)中對UIImage進(jìn)行截取和縮放的方法,分別講解了如何截取指定區(qū)域大小的UIImage以及縮放到指定大小和等比縮放的具體操作過程,需要的朋友可以參考下
    2016-04-04
  • 微信支付開發(fā)IOS圖文教程案例

    微信支付開發(fā)IOS圖文教程案例

    這篇文章主要介紹了微信支付開發(fā)IOS案例的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • iOS使用原生AVCapture系列

    iOS使用原生AVCapture系列

    這篇文章主要為大家詳細(xì)介紹了iOS使用原生AVCapture系列的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • IOS實現(xiàn)的簡單畫板功能

    IOS實現(xiàn)的簡單畫板功能

    本文主要介紹了IOS實現(xiàn)簡單畫板的示例代碼。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • iOS中關(guān)于模塊化開發(fā)解決方案(純干貨)

    iOS中關(guān)于模塊化開發(fā)解決方案(純干貨)

    這篇文章主要介紹了iOS中關(guān)于模塊化開發(fā)解決方案(純干貨)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09

最新評論

罗山县| 镇巴县| 祥云县| 广南县| 蒙城县| 辽阳县| 永寿县| 津南区| 托克托县| 长兴县| 佳木斯市| 大丰市| 长春市| 永城市| 准格尔旗| 沿河| 鹤岗市| 江华| 翁牛特旗| 千阳县| 阿坝| 集安市| 邹城市| 洪泽县| 特克斯县| 白银市| 郑州市| 宾川县| 澳门| 正定县| 高清| 临海市| 玉溪市| 邢台县| 西丰县| 彭泽县| 万源市| 从江县| 拜城县| 高陵县| 文成县|