iOS應用的國際化i18n – iPhone手機開發技術文章 iPhone軟體開發教學課程

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文件 都可以自動切換顯示語言瞭。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。