iOS應用的國際化,主要分為3個部分:
- Info.plist 檔案的國際化
- .xib檔案的國際化
- .m檔案的國際化
下面我就來一一說明。
Info.plist 檔案的國際化
我們使用Xcode 4.5 建立一個新項目,會自動建立一個 en.lproj 目錄,這個目錄下存放的就是需要國際化的檔案(預設為英文)。下面,我們還需要建立中文國際化支援。
1. 建立名為 zh-Hans.lproj 的目錄
2. 在項目的 Info.plist 檔案中增加配置 Localizations, 添加英文和中文的支援:English, Chinese(simplified)
3. 将 en.lproj/InfoPlist.strings 檔案拷貝到 zh-Hans.lproj/InfoPlist.strings 檔案中。
4. 将 zh-Hans.lproj 目錄添加到項目。注意要選擇 Add to targets
5. 選擇 File -> Info -> Localization 為對應的語言
在 InfoPlist.strings 檔案中,我們可以國際化一些應用資訊,例如:
CFBundleDisplayName 應用顯示名稱。這樣我們就可以根據不同的語言,顯示不同語言的應用名。
更多字段資訊,請參考
http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
的 Key Summary 部分。
.xib 檔案的國際化
我們已經建立了一個英文的xib檔案,在 en.lproj 檔案下。然後,需要使用指令行來操作:
1. 将 .xib檔案 中的文字提取,另存為 .strings檔案。
ibtool --generate-strings-file MainViewController.strings MainViewController.xib
2. 将 MainViewController.strings 拷貝到 zh-Hans.lproj 目錄下,然後漢化該檔案中的文字
3. 執行指令,根據英文的 .xib檔案 和 .strings漢化檔案 生成一個漢化後的 .xib 檔案
ibtool --strings-file zh-Hans.lproj/MainViewController.strings --write zh-Hans.lproj/MainViewController.xib en.lproj/MainViewController.xib
4. 将生成的這個 .xib 檔案添加到項目中的 zh-Hans.lproj 分組下,注意要選擇 Add to targets
5. 選擇 File -> Info -> Localization 為對應的語言
至此,xib檔案的漢化已經完成。
.m 檔案的國際化
1. 代碼中,凡是需要國際化的文字,都使用 NSLocalizedString 函數,例如
NSLocalizedString(@"hello_world", @"Hello world!");
2. 執行指令,将所有 .m 檔案中需要漢化的文字都提取出來,并放入 en.lproj 檔案夾下
genstrings -o en.lproj *.m
此時,會自動生成 Localizable.strings 檔案。接着将該檔案也拷貝到 zh-Hans.lproj 檔案夾下去。這個檔案就是需要漢化的内容
3. 将 .strings 檔案添加到項目中相應的漢化目錄下,注意要選擇 Add to targets
4. 選擇 File -> Info -> Localization 為對應的語言
然後,我們運作程式,通過修改系統語言發現,檔案顯示名稱、.xib檔案 和 .m檔案 都可以自動切換顯示語言了。
附上示例:
http://download.csdn.net/detail/midfar/4749454