亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 889 | 回復(fù): 0
打印 上一主題 下一主題

程序國際化的注意點 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-10-11 20:08 |只看該作者 |倒序瀏覽
在 Linux 下寫了一個程序用于嘗試 i18n
#include stdio.h>
#include locale.h>
#include libintl.h>
#define _(string)       gettext(string)
int main(int argc, char *argv[])
{
         setlocale(LC_ALL, "");
        bindtextdomain("hello",".");
        textdomain("hello");
        printf(_("Hello world!\n"));
        return 0;
}
gcc hello.c -o hello
現(xiàn)在開始最重要的中文化工作,即用 gettext 套件把程序中的字符串做成中文的。
1. 先 xgettext --keyword=_ hello.c -o hello.pot
以`_' 為關(guān)鍵詞,找到要翻譯的詞語,生成一個 pot 文件
2. msginit -l zh_CN.UTF-8 -i hello.pot -o hello.po
根據(jù) pot 文件生成 po 文件
3. 編輯 po 文件。有關(guān)第 2 步和第 3 步的詳細情況,因為我的 Blog 里有明確的說明,請自己看吧,我不想費話了。
4. msgfmt hello.po -o hello.mo
在檢查無誤后就可以生成二進制的語言文件── mo 文件
5. 在此請注意看一下上面的源代碼。正常情況下,應(yīng)該把 mo 文件放入系統(tǒng)的 /usr/share/locale/LOCALE/LC_MESSAGES/ 目錄下。其中 LOCALE 為你的系統(tǒng) LOCALE,不知道的話可以用 locale 來看一下。
由于我的例子程序是 bindtextdomain("hello", "."),而我的 locale 為
zh_CN.UTF-8,因此我需要
(1)在當(dāng)前程序目錄下新建目錄。
        mkdir -p zh_CN/LC_MESSAGES
(2)將生成的 mo 文檔放入該目錄下
        cp hello.mo ./zh_CN/LC_MESSAGES/
(3)運行 ./hello。現(xiàn)在出來的應(yīng)該是中文!
如果想讓它在 en_US.UTF-8 下也顯示中文,那就這么做
(注意:當(dāng)前環(huán)境還是在 zh_CN.UTF-8 下)
(1)mkdir -p en_US/LC_MESSAGES
(2)cp hello.mo ./en_US/LC_MESSAGES
(3)LANG=en_US.UTF-8 ./hello   玩一把英文環(huán)境下顯示中文 :-)


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/37261/showart_1286584.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP