程序國際化
準備工作:
首先我們要先創建一個工程,我們給他命名Internationalization-Demo,然后添加語言。
添加語言.jpeg
從代碼中分離文本:
目前,應用展示的所有文本都是以硬編碼字符串存在于Main.storyboard
和 ViewController
里。為了本地化這些字符串,你需要把它們放在一個單獨的文件中。他將會在包中簡單地引用這些字符串,而不是在你的方法中進行硬編碼。
Xcode使用帶有.strings
擴展名的文件來存儲和檢索app
中使用的所有字符串,以支持每種語言。根據iOS 設備當前使用的語言,代碼中一個簡單的方法調用將會查找并返回要求的字符串。
- 創建一個
.strings
擴展名的文件
打開File
> New
> File
,選擇Resource
中Strings Fils
,如圖:
點擊下一步,為文件命名為InfoPlist.strings
,然后點擊save
。
InfoPlist.strings.jpeg
- 創建完成后,你可以看到工程目錄結構文件如下,單擊
InfoPlist.strings
,查看右邊的屬性,在Localizable
欄添加語言。如圖
添加語言.jpeg
- 添加完成后打開對應語言文件
比如:
English
的添加:
CFBundleDisplayName = "hello world";
Chinese
的添加:
CFBundleDisplayName = "世界 你好";
添加字符串.jpeg
- 運行
如果你的模擬器是中文的,你會看到你的程序名稱變成了世界 你好
中文程序名稱.jpeg
在設置中把語言設置成英文的,你就會看到你的程序名稱變成了hello world
英文程序名稱.jpeg
內容國際化
- 新建一個
Localizable.strings
文件 (Localizable.strings
是系統默認名字) - 添加語言同上
- 添加語言內容
在
Localization.strings
中,按照"key" = "value"
的格式;然后使用時用
NSLocalizedString(@"key", @"")
讀取內容;如果不是用系統默認名字那么使用
Localization.strings English
文件添加
"key" = "hello world"
Localization.strings Chinese
文件添加
"key" = "世界 你好"
內容國際化.jpeg