iOS-應(yīng)用名稱(chēng)和內(nèi)容國(guó)際化

iOS應(yīng)用的國(guó)際化,主要分為3個(gè)部分:
Info.plist 文件的國(guó)際化
.xib文件的國(guó)際化
.m文件的國(guó)際化

Info.plist 文件的國(guó)際化
我們使用Xcode 創(chuàng)建一個(gè)新項(xiàng)目,會(huì)自動(dòng)創(chuàng)建一個(gè) en.lproj 目錄,這個(gè)目錄下存放的就是需要國(guó)際化的文件(默認(rèn)為英文)。下面,我們還需要?jiǎng)?chuàng)建中文國(guó)際化支持。

  1. 創(chuàng)建名為 zh-Hans.lproj 的目錄
  2. 在項(xiàng)目的 Info.plist 文件中增加配置 Localizations, 添加英文和中文的支持:English, Chinese(simplified)
  3. 將 en.lproj/InfoPlist.strings 文件拷貝到 zh-Hans.lproj/InfoPlist.strings 文件中。
  4. 將 zh-Hans.lproj 目錄添加到項(xiàng)目。注意要選擇 Add to targets
  5. 選擇 File -> Info -> Localization 為對(duì)應(yīng)的語(yǔ)言在 InfoPlist.strings 文件中,我們可以國(guó)際化一些應(yīng)用信息,例如:CFBundleDisplayName 應(yīng)用顯示名稱(chēng)。這樣我們就可以根據(jù)不同的語(yǔ)言,顯示不同語(yǔ)言的應(yīng)用名。更多字段信息,請(qǐng)參考http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html的 Key Summary 部分。
    .xib 文件的國(guó)際化
    我們已經(jīng)創(chuàng)建了一個(gè)英文的xib文件,在 en.lproj 文件下。然后,需要使用命令行來(lái)操作:
  6. 將 .xib文件 中的文字提取,另存為 .strings文件。ibtool --generate-strings-file MainViewController.strings MainViewController.xib
  7. 將 MainViewController.strings 拷貝到 zh-Hans.lproj 目錄下,然后漢化該文件中的文字
  8. 執(zhí)行命令,根據(jù)英文的 .xib文件 和 .strings漢化文件 生成一個(gè)漢化后的 .xib 文件ibtool --strings-file zh-Hans.lproj/MainViewController.strings --write zh-Hans.lproj/MainViewController.xib en.lproj/MainViewController.xib
  9. 將生成的這個(gè) .xib 文件添加到項(xiàng)目中的 zh-Hans.lproj 分組下,注意要選擇 Add to targets
  10. 選擇 File -> Info -> Localization 為對(duì)應(yīng)的語(yǔ)言至此,xib文件的漢化已經(jīng)完成。
    .m 文件的國(guó)際化
  11. 代碼中,凡是需要國(guó)際化的文字,都使用 NSLocalizedString 函數(shù),例如 NSLocalizedString(@"hello_world", @"Hello world!");
  12. 執(zhí)行命令,將所有 .m 文件中需要漢化的文字都提取出來(lái),并放入 en.lproj 文件夾下genstrings -o en.lproj *.m此時(shí),會(huì)自動(dòng)生成 Localizable.strings 文件。接著將該文件也拷貝到 zh-Hans.lproj 文件夾下去。這個(gè)文件就是需要漢化的內(nèi)容
  13. 將 .strings 文件添加到項(xiàng)目中相應(yīng)的漢化目錄下,注意要選擇 Add to targets
  14. 選擇 File -> Info -> Localization 為對(duì)應(yīng)的語(yǔ)言然后,我們運(yùn)行程序,通過(guò)修改系統(tǒng)語(yǔ)言發(fā)現(xiàn),文件顯示名稱(chēng)、.xib文件 和 .m文件 都可以自動(dòng)切換顯示語(yǔ)言了。

一.iOS名稱(chēng)國(guó)際化(根據(jù)系統(tǒng)語(yǔ)言修改App的名字)

1.新建工程名為"iOS國(guó)際化"如圖1-1

1.png

圖 1-1 新建文件名為"iOS國(guó)際化"的項(xiàng)目

2.添加InfoPlist.strings(注意文件名千萬(wàn)不能改,我就是因?yàn)榘?Info"的"I"寫(xiě)成小寫(xiě),弄了半天)如圖1-2 和圖1-3/圖1-4

2.png

圖1-2 選擇Strings File

3.png

圖1- 3 這里名字一定要一致

4.png

圖1-4 InfoPlist.strings文件創(chuàng)建完畢

3.添加漢語(yǔ)到工程中如圖1-5

5.png

圖 1-5 選擇簡(jiǎn)易中文到工程中

4.給InfoPlist.strings添加多語(yǔ)言如圖1-6和圖1-7

6.png

圖1-6 添加Localize...

7.png

圖 1-7 勾選英文和中文

5.添加修改名稱(chēng)的代碼分別到InfoPlist.strings(English)和InfoPlist.strings(Chinese(Simplified))中如圖1-8和圖1-9

8.png

圖1-8 在中文中添加代碼

9.png

圖1-9 在英文下添加代碼

OK大功告成了.運(yùn)行結(jié)果分別把設(shè)備調(diào)到英文和中文語(yǔ)言上,如圖1-10和圖1-11

10.png

圖1-10 在設(shè)備系統(tǒng)為中文時(shí)的app名字

11.png

圖1-11 在設(shè)備系統(tǒng)為英文時(shí)的app名字

二.內(nèi)容國(guó)際化(程序中的名稱(chēng)進(jìn)行本地化顯示)

1.在ViewController.swift中加入一個(gè)紅色的label如圖1-11

13.png

圖1-11 在視圖加入一個(gè)紅色label

2.添加一個(gè)名字為L(zhǎng)ocalizable.strings(同樣的這個(gè)名字是固定的)并對(duì)它加入本地化如圖1-11

14.png

圖1-12 添加Localizable.strings

3.勾選英文和中文并添加相應(yīng)代碼如圖1-13和1-14

15.png

圖1-13 在英文里面寫(xiě)英文

16.png

如圖1-14 在中文里面寫(xiě)中文(它們的key都是name)

4.在代碼中進(jìn)行應(yīng)用如圖1-15

17.png

圖1-15 在代碼中加入NSLocalizedString("name", comment: "name")

OK大功告成了,運(yùn)行下看看結(jié)果,萌萌噠......

18.png

圖 1- 16手機(jī)系統(tǒng)是英文

19.png

圖1-17手機(jī)系統(tǒng)是中文的

原文地址:http://www.cnblogs.com/MoGuiBianCheng/p/5231885.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容