Cocoa Touch国际化
開(kāi)發(fā)項(xiàng)目的時(shí)候不用管顯示語(yǔ)言的問(wèn)題,在代碼中任何地方要顯示文字都這樣調(diào)用:
NSLocalizedString(@"aaa", @"bbb");
這里aaa相當(dāng)于關(guān)鍵字,它用于以后從文件中取出相應(yīng)語(yǔ)言對(duì)應(yīng)該的文字。bbb相當(dāng)于注釋,翻譯人員可以根據(jù)bbb的內(nèi)容來(lái)翻譯aaa,這里的aaa與顯示的內(nèi)容可以一點(diǎn)關(guān)系也沒(méi)有,只要程序員自己能看懂就行。比如,一個(gè)頁(yè)面用于顯示聯(lián)系人列表,這里調(diào)用可以這樣寫(xiě)。
NSLocalizedString(@"shit_or_anything_you_want", @"聯(lián)系人列表標(biāo)題");
項(xiàng)目寫(xiě)好后,取出全部的文字內(nèi)容送給翻譯去翻譯。這里取出所有的文字列表很簡(jiǎn)單。使用Mac的genstrings命令。方法如下:
1. 打開(kāi)控制臺(tái),切換到項(xiàng)目所在目錄。
2. 輸入命令:genstrings ./Classes/*.m。
3. 這時(shí)在項(xiàng)目目錄中會(huì)有一個(gè)Localizable.strings文件。其中內(nèi)容如下:
/* 聯(lián)系人列表標(biāo)題 */
"shit_or_anything_you_want" = "shit_or_anything_you_want";
4. 翻譯只需將等號(hào)右邊改好就行了。這里如果是英文,修改后如下:
/* 聯(lián)系人列表標(biāo)題 */
"shit_or_anything_you_want" = "Buddies";
如果是法文,翻譯后如下:
/* 聯(lián)系人列表標(biāo)題 */
"shit_or_anything_you_want" = "Copains";
語(yǔ)言文件翻譯好以后,將英語(yǔ)文件拖入項(xiàng)目中,再右擊->Get Info,選擇Make Localization。XCode會(huì)自動(dòng)拷貝文件到English.lproj目錄下。再添加其它語(yǔ)言。
在編譯程序后,運(yùn)行在iPhone上,程序會(huì)根據(jù)當(dāng)前系統(tǒng)設(shè)置的語(yǔ)言來(lái)自動(dòng)選擇相應(yīng)的語(yǔ)言包。
注意:genstrings產(chǎn)生的文件拖入XCode中可能是亂碼,這時(shí)只要在XCode中右擊文件->Get Info->General->File Encoding下選擇UTF-16即可解決。
總結(jié)
以上是生活随笔為你收集整理的Cocoa Touch国际化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么跟踪别人的手机位置(怎么查别人手机号
- 下一篇: ASP.NET 服务器控件授权