新聞中心
這篇文章主要介紹了iOS如何實現(xiàn)應用內(nèi)切換本地化語言的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言
當我們的應用僅僅面向國內(nèi)用戶群,一般僅支持一種語言--中文就可以了。當面向國外用戶時就需要進行國際化了,不僅僅是語言的轉(zhuǎn)變,也可能包括設(shè)計風格,頁面布局、交互效果的轉(zhuǎn)變,如微信,微博,QQ這類應用都有著切換語言的功能。
最近因為工作的原因,遇到個需要在應用內(nèi)部設(shè)置語言的需求,默認使用系統(tǒng)設(shè)置的語言,如果用戶在App內(nèi)設(shè)置了別的語言,以后則按照新設(shè)置的語言顯示界面。
iOS確定應用的語言
1.iOS首先搜索用戶的語言偏好設(shè)置(設(shè)置-通用-語言與地區(qū))
2.檢測你的應用是否支持用戶的語言,先用偏好設(shè)置的第一個語言,檢測應用是否包含該語言對應的文件夾(后綴是.lproj,文件名部分,英語為en,中文簡體為zh-Hans,日語為ja)如果存在,那就是該語言,否則用偏好設(shè)置第二個語言來匹配。重復該過程。
3.一旦系統(tǒng)為應用確定了語言,對應的.lproj文件夾就會用作本地化資源。
于是,寫了個新輪子SOLocalization (本地下載),希望大家喜歡,其實代碼很簡單,有興趣的可以直接去讀源代碼,有補充的可以直接向我提交 pull request。下面話不多說了,來一起看看詳細的介紹吧。
方法如下:
1.創(chuàng)建本地化文件。
創(chuàng)建本地化字符串文件,文件名可以是默認的 infoPlist.strings,也可以是別的,為這個文件設(shè)置好要支持的語言及內(nèi)容。
2.導入 SOLocalization。
3.配置 SOLocalization。
設(shè)置支持的語言及默認語言,當系統(tǒng)設(shè)置的語言不屬于支持的語言時會使用默認語言。
[SOLocalization configSupportRegions:@[SOLocalizationEnglish, SOLocalizationSimplifiedChinese] fallbackRegion:SOLocalizationEnglish];
4.設(shè)置 UIKit 對象。
為 UIKit 對象設(shè)置合適的屬性,像下面這樣簡單,而且這樣設(shè)置后,當語言切換時,這些 UIKit 對象的文本內(nèi)容會自動變?yōu)樾略O(shè)置的語言,不需要任何額外處理。
UIBarButtonItem *change = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(changeLanguage:)]; // 這里的 @"Setting" 就是 strings 文件中對應的那個 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 文件中對應的 key,“infoPlist”是本地化字符串文件名 NSString *localizedString = SOLocalizedStringFromTable(@"title", @"infoPlist");
5.修改應用內(nèi)使用的語言
// to use English [SOLocalization sharedLocalization].region = SOLocalizationEnglish; // to use 簡體中文 [SOLocalization sharedLocalization].region = SOLocalizationSimplifiedChinese;
6.自定義的本地化字符串文件名
SOLocalization 提供的 API 中,默認使用的本地化字符串文件名為 infoPlist.strings 文件,如果使用其他文件名(比如使用這個文件名:local.strings),如下即可:
// 對于支持的 UIKit 對象 label.sol_table = @"local"; // 使用 SOLocalizedStringFromTable 時 NSString *localizedString = SOLocalizedStringFromTable(@"title", @"local");
感謝你能夠認真閱讀完這篇文章,希望小編分享的“iOS如何實現(xiàn)應用內(nèi)切換本地化語言的方法”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁名稱:iOS如何實現(xiàn)應用內(nèi)切換本地化語言的方法-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.dlmjj.cn/article/ddioed.html


咨詢
建站咨詢
