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 應用顯示名稱。這樣我們就可以根據不同的語言,顯示不同語言的應用名。
更多字段資訊,請參考
的 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檔案 都可以自動切換顯示語言了。
iOS應用的國際化i18n
ios應用的國際化,主要分為3個部分 下面我就來一一說明。info.plist 檔案的國際化 我們使用xcode 4.5 建立乙個新專案,會自動建立乙個 en.lproj 目錄,這個目錄下存放的就是需要國際化的檔案 預設為英文 下面,我們還需要建立中文國際化支援。1.建立名為 zh hans.lpr...
iOS應用的國際化i18n
m ios應用的國際化,主要分為3個部分 下面我就來一一說明。info.plist 檔案的國際化 我們使用xcode 4.5 建立乙個新專案,會自動建立乙個 en.lproj 目錄,這個目錄下存放的就是需要國際化的檔案 預設為英文 下面,我們還需要建立中文國際化支援。1.建立名為 zh hans.l...
react Taro 使用i18n國際化
npm install react i18next i18next i18next browser languagedetector 新建index.jsx import languagedetector from i18next browser languagedetector import i1...