代碼中字符串的本地化
阿新 • • 發佈:2018-07-30
中文 字符串賦值 繁體中文 步驟 inf 法語 只需要 能夠 app名
- 所謂字符串本地化,就是指App內的字符串在不同的語言環境下顯示不同的內容。
- 比如,"主頁"這個字符串在中文語言環境下顯示“主頁”,在英語環境下顯示“home”。下面就開始進行字符串本地化。
- 其實字符本地化和App名稱本地化過程如出一轍,只是創建的文件名成不一樣(連同後綴一起,文件名必須是Localizable.strings),其他步驟完全相同。
- 為了能夠讓大家徹底了解,此處還是會把步驟一一貼出來。
1、準備操作流程
1.1 創建
- 和應用名稱本地化一樣,首先需要command + N,選擇iOS -> Resource -> Strings File
- 和應用名稱本地化一樣,首先需要command + N,選擇iOS -> Resource -> Strings File
1.2 命名要求
- 文件名必須命名為Localizable
- 備註:因本人電腦取消隱藏文件後綴名,所以會自動補全.strings後綴名。
1.3 創建結果
- 文件創建成功,查看Xcode左側導航列表,發現多了一個名為Localizable.strings的文件,如下圖:
- 文件創建成功,查看Xcode左側導航列表,發現多了一個名為Localizable.strings的文件,如下圖:
1.4 選擇需要本地化的語言
- 選中Localizable.strings文件,在Xcode的File inspection中點擊Localize,目的是選擇我們需要本地化的語言(和本地化App名稱同理),如下圖:
- 依次選擇English->Localize,如下圖:
- 選中Localizable.strings文件,在Xcode的File inspection中點擊Localize,目的是選擇我們需要本地化的語言(和本地化App名稱同理),如下圖:
1.5 選擇我們需要本地化的語言
- 然後勾選French、Chinese(zh-Hans)、Chinese(zh-Hant)、Korean,如下圖:
- 然後我們發現Xcode右側的File inspection變成了下圖的樣式:
- 然後勾選French、Chinese(zh-Hans)、Chinese(zh-Hant)、Korean,如下圖:
1.6 配置結果
- 此時,Xcode左側的Localizable.stirings左側多了一個箭頭,展開後,如下圖所示:
- 此時,Xcode左側的Localizable.stirings左側多了一個箭頭,展開後,如下圖所示:
2、開始國際化
2.1 然後我們只需要在Localizable.strings下對應的文件中,分別以Key-Value的形式,為代碼中每一個需要本地化的字符串賦值,如下圖:
- 英語
- 法語
- 簡體中文
- 繁體中文
- 韓語
- 英語
2.2 使用
- 本地化代碼中的字符串,如下圖:
- 我們只需要使用Foundation框架自帶的NSLocalizedString(key, comment)這個宏根據Key獲取對應的字符串,然後賦值給代碼中的字符串。
// NSLocalizedString(key, comment) 本質 // NSlocalizeString 第一個參數是內容,根據第一個參數去對應語言的文件中取對應的字符串,第二個參數將會轉化為字符串文件裏的註釋,可以傳nil,也可以傳空字符串@""。
- 本地化代碼中的字符串,如下圖:
3、國際化結果
- 不同語言環境下運行效果,如下圖:
英語環境下:
法語環境下:
簡體中文環境下:
繁體中文環境下:
韓語環境下:
- 如此一來,我們就實現了代碼中字符串的本地化。
4、技巧
- 其實,我們不需要給Localizable.strings(English)文件添加Key-Value。
- 原因如下:系統根據某個key去獲取對應的字符串時,如果沒有找到,那麽就會以key作為value返回。
- 所以如果我們在Localizable.strings(English)文件中沒有添加 click = "hit";那麽在english環境下btn最終顯示的title會是click.
- 切換語言無需在模擬器中設置,只需要在Xcode中進行如下設置: Edit->Scheme->Run->Arguments Passed On Launch ->-AppleLanguages (語言代碼)。
- 例如,我們模擬器此時雖然是韓語,如果通過上述步驟設置為zh-Hans,那麽語言環境將會變為漢語,如下圖:
- 運行效果:
- 如此一來,切換語言變得更加簡單,無需在模擬器的設置中進行繁瑣的語言切換。
代碼中字符串的本地化