19 | 本地化(國際化)

iPhone擁有完整的本體化(Localization)體系結構,使用它可以將應用程序翻譯成多種語言,如此就可以把程序發佈在任何一個語言區的AppStore上。

鏈接:Localization_Demo

本地化主要分爲三類:

本地化字符串

本地化nib文件

本地化圖像:本地化圖像 & 本地化應用程序圖標


預備知識點:

NSLocalizationString(key,comment)函數:

NSLocalizationString在應用程序束中查找名爲localizable.strings的字符串文件。如果找到了,則返回key對應的值,未找到則返回key。comment參數只是一個對key的註釋

----------------------------------------------

添加需要國際化的語言 | 這裏以英文和簡體中文爲例


說明:

目前,應用程序展示的所有文本都是以硬編碼字符串存在於Main.storyboard和ViewController裏面的。爲了本地化這些字符串,你就需要把它們放在一個擴展名爲.strings(Xcode使用這種格式的文件來存儲和檢索app中使用的所有字符串,以支持各種語言)的單獨問件中。根據iOS設備當前使用的語言,代碼中一個簡單的方法調用將會查找並返回要求的字符串。


應用程序名稱國際化:

注意:添加.strings文件,名字用InfoPlist.strings。

好了,看看效果:

這是簡體中文下的效果:


總結:你想讓你的程序國際化哪種語言,就添加哪種語言,並在InfoPlist.strings下面找到屬於那種語言的文件,輸入上面的代碼,就OK。


字符串國際化

注意:添加.strings文件,名字爲Localizable.strings


說明:內容國際化,在文件裏面是"鍵" = "值"的形式來存儲數據的。用法如下:

說明:調用文件裏面的數據用NSLocalizedString方法,第一個參數是鍵。將模擬器的語言設置爲English,運行:


說明:這就是內容國際化。將文件名定爲Localizable.strings(系統默認)的方式就是上面的。如果文件名是隨便設的,只是調用方法不一樣,用NSLocalizedStringFromTable這個方法,第一個參數同上,第二個參數是文件名稱,第三個同上。推薦使用默認的。


圖片國際化




StoryBoard國際化|nib國際化一樣的操作

storyBoard國際化很簡單:


說明:只要你的SB裏面有文字,你的文件裏面就會自動生成。比方說你的SB裏面有字符串“倉井空”,那麼生成的幾個文件你都可以找到,但是你得把不同語言文件裏面的字符串改過來,中文裏面,找到““蒼井空””不改,英文裏面同樣找到““蒼井空””,改成““Aoi Sora””,記住,只改對應的文字,其它的別動。


發佈了34 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章