無論是撰寫Android還是iOS應用程式,在這科技無國界的現代化社會中,支援多國語言可說是相當重要的一個環節,也是讓應用程式被更多人使用的關鍵要素之一。
欲讓iOS應用程式能支援多國語言,請參照以下步驟一步步來即可。
(筆者的XCode版本是5.0.2,若您的XCode的版本與筆者差異甚大,請斟酌參考)
在Info.plist中增加Localizations
在Info.plist中找到名為Localizations的key
(若沒有,則手動新增即可)
展開其子項目,設定欲支援的語言,如下圖:
在專案中新增Localizable.strings檔案
在專案中新增Localizable.strings檔案, 檔案類型選擇iOS -> Resource -> Strings File,檔名輸入Localizable.strings
Project的Info頁籤中增加Localizations
點開Project的Info頁籤,找到Localizations項目, 增加欲支援的語言。
每增加一個語言時,XCode會彈出視窗詢問『有哪些檔案需要製作該語言版本』, 此時先選擇Localizable.strings即可,如下圖:
編輯各語言版本的Localizable.strings
完成上述步驟後, 可以看到Localizable.strings檔案多了不同語言的版本 如下圖:
而各個不同的多國語言文字,則分別存放在這幾個檔案中。
因此我們需要編輯這幾個Localizable.strings檔案,
Localizable.strings檔案內容的格式為
"key1" = "字串內容1"
"key2" = "字串內容2"
key為識別這段文字的英文字串,稍後在程式中會用到。
舉例來說,繁體中文版Localizable.strings的範例如下:
"testHello" = "測試你好"
"settings" = "設定"
"networkerror" = "網路連線發生問題!"
而英文版Localizable.strings的範例如下:
"testHello" = "test hello"
"settings" = "Settings"
"networkerror" = "Network Error!"
只要將程式中所有需要用到的多國語言文字,輸入至各個Localizable.strings檔案即可。
在程式中讀取多國語言字串
在程式中,可以使用NSLocalizedString函式讀取多國語言字串。
第一個參數是Localizable.strings中的key,
第二個參數是注解,可視情況使用。
-(void)viewWillAppear:(BOOL)animated {
self.label.text = NSLocalizedString(@"testHello", @"");
}
此函式會依照當前iOS系統所設定的語言,以及key參數讀取對應於Localizable.strings中的文字。
以上,即為讓iOS應用程式支援多國語言的完整流程。
iOS Localizable.strings與Android strings.xml線上轉換工具
多數手機應用程式開發者會同時開發iOS與Android應用程式,而Android應用程式則以XML格式儲存多國語言文字,範例如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="testHello">測試你好</string>
<string name="settings">設定</string>
<string name="networkError">網路連線發生問題</string>
</resources>
以下介紹一個iOS Localizable.strings與Android strings.xml的線上轉換工具
只要將多國語言文字檔拖曳至網頁中央,等待後端處理完畢,即可依需求選擇iOS Localizable.strings或是Android strings.xml下載。在多國語言文字檔案相當龐大時,是個很方便的線上處理工具。
結語
開發手機應用程式時,支援多國語言往往是被開發者忽略的功能之一。 然而,支援多國語言在技術上並不是非常困難, 卻是使應用程式能被更多人注意到的重要因素之一, 正所謂事半功倍,支援多國語言應當是所有應用程式開發者必須注意的課題。
沒有留言:
張貼留言