iOS開發進階 - 項目的本地化處理(多語言開發)

什么是本地化

码报开奖结果本期 www.iwqgw.icu 本地化說直白點就是多語言開發,通過系統語言來判斷應用使用的哪種語言,實現應用的本地化開發

本地化處理需要處理的文件

  • 本地化應用程序的info.plist

  • 本地化字符串處理(項目中所涉及的字符串)

  • 本地化圖片

  • XIB和storyboard的本地化處理

  • 其他文件,比如csv等等

讓我們的項目支持本地化

首先我們只有設置成支持多語言了,我們才能在展示項目名稱和項目中的字符串等將語言進行切換,具體操作如下圖所示:

這里寫圖片描述

在如上圖所示的地方添加你需要支持的語言就行了,我這里是添加了簡體漢語和英語

如何判斷當前系統使用的語言

我們使用Locale這個類來判斷當前的系統語言,方法:

//獲取當前的localelet locale = Locale.current//返回本地語言環境的語言代碼,或者如果沒有零//例如,對于地區“zh-Hant-HK”,返回“zh”let languageCode = locale.languageCode//返回該地區代碼的語言環境,或者如果沒有零//例如,對于地區“zh-Hant-HK”,返回“HK”let regionCode = locale.regionCode1234567812345678

同過以上的代碼基本上能清楚的知道當前系統的使用的語言

獲取系統支持的所有語言

同樣我們也是通過Locale來獲取系統支持的所有語言

//返回可用“語言環境”標識符的列表let availableList = Locale.availableIdentifiers//返回一個可用“語言環境”語言代碼的列表let languageCodeList = Locale.isoLanguageCodes//返回一個可用“語言環境”地區代碼的列表let languageCodeList = Locale.isoRegionCodes123456123456

如何本地化info.plist

1.首先我們建一個名稱叫InfoPlist.strings的本地化文件,記住名稱必須叫InfoPlist.strings

這里寫圖片描述

2.選擇讓InfoPlist.strings支持的語言,如下圖所示:

這里寫圖片描述

3.在InfoPlist.strings分別寫入你想本地化的值,如下圖所示 (格式如下所示,以分號結尾):

這里寫圖片描述 
這里寫圖片描述

如何獲得info.plist中對應的Key

我們可以通過打開info.plist的源碼來獲取到對于的Key值,如下圖所示 :

這里寫圖片描述

這里寫圖片描述

本地化字符串處理

本地化字符串處理原理上跟infoPlist的處理差不多,只是我們需用配合一個方法來使用它:

let str = NSLocalizedString("需要本地化的字符串", comment: "")11

默認使用NSLocalizedString這個方法時我們是獲取mainBundle中一個名字叫Localizable.strings的本地化文件,所以我們一般只需要建一個名字叫Localizable.strings的文件即可,方法步驟跟建立infoPlist.strings類似(傳送門

使用自定義的本地化文件

使用自定義的本地化文件也很容易,也是之前的方法,我們只需要多填一些參數就可以了:

//返回一個本地化的字符串,默認使用main bundle,如果沒有指定一個public func NSLocalizedString(_ key: String, tableName: String? = default, bundle: Bundle = default, value: String = default, comment: String) -> String1212

以上就是NSLocalizedString這個方法的所有參數,其中的tableName就是本地化文件的名稱,默認就是Localizable.strings,自定義的話只需要建立一個新的,然后名稱填你自己建立的本地化文件即可.

XIB和storyboard的本地化處理

XIBstoryboard的方法也很簡單,跟本地放字符串類似,不過是本地化的XIB文件,如下圖所示:

這里寫圖片描述

XIBstoryboard的本地化又兩種方式,如上圖所示,一種是以本地化文件的方式實現,就是以.strings的本地化文件;另外一種是以XIBstoryboard的方式展示,具體如下圖所示 :

這里寫圖片描述

本地化圖片和其他文件

對于本地化圖片和其他文件就比較費勁一點了,因為Xcode中圖片并沒有支持本地化,我們只有通過代碼判斷來決定使用相對于的本地化圖片和文件了,判斷方法的傳送門

本地化中所遇到的問題

在本地化中必須謹記一個問題,就是必須按本地化文件的格式來寫入文件,因為本地化文件并不能檢查出你分號后面是否多多余的字符串,造成的后果就是本地化文件失效??!

來源:CSDN-W_C_L博客

上一篇: 如何在Xcode 8中更好地使用StoryBoard

下一篇: App Store 商業模式

分享到: 更多
传真料平特二中一 类似彩神的快三计划软件 广东时时官方网站 重庆时时计划免费 山东时时11选5走势图 福彩双色球技巧 2019女篮亚洲杯直播 六肖稳赚计划 188比分直播 欢乐推筒子二八杠下载 在线21点游戏平台 足球竞彩 重庆老时时开奖360 内蒙古时时综合走势图百度百度贴吧 排列三投注高级技巧 香港赛马手机投注下载