91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS如何實現應用內切換本地化語言的方法

發布時間:2021-05-24 11:54:47 來源:億速云 閱讀:291 作者:小新 欄目:移動開發

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

前言

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

最近因為工作的原因,遇到個需要在應用內部設置語言的需求,默認使用系統設置的語言,如果用戶在App內設置了別的語言,以后則按照新設置的語言顯示界面。

iOS確定應用的語言

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

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

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

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

方法如下:

1.創建本地化文件。

創建本地化字符串文件,文件名可以是默認的 infoPlist.strings,也可以是別的,為這個文件設置好要支持的語言及內容。

2.導入 SOLocalization。

3.配置 SOLocalization。

設置支持的語言及默認語言,當系統設置的語言不屬于支持的語言時會使用默認語言。

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

4.設置 UIKit 對象。

為 UIKit 對象設置合適的屬性,像下面這樣簡單,而且這樣設置后,當語言切換時,這些 UIKit 對象的文本內容會自動變為新設置的語言,不需要任何額外處理。

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 暫不支持切換語言后自動修改文本內容的 UIKit 對象,可以這樣獲取需要的本地化字符串:

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

5.修改應用內使用的語言

// 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如何實現應用內切換本地化語言的方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

大竹县| 英超| 方山县| 延长县| 临清市| 彭山县| 桂平市| 永城市| 桦南县| 武乡县| 泸西县| 平塘县| 齐齐哈尔市| 潼关县| 那坡县| 长兴县| 定西市| 安义县| 岗巴县| 北安市| 曲靖市| 泰兴市| 巴青县| 南投县| 汪清县| 永春县| 左贡县| 广南县| 扎囊县| 绵阳市| 子长县| 来宾市| 盐津县| 华容县| 鹤峰县| 怀宁县| 嘉善县| 卓尼县| 揭西县| 津市市| 梨树县|