首先要確認GNU gettext已經(jīng)被安裝。 寫一個示例程序 gettext_test.c: #include <stdio.h> 下面先分析一下上面的源文件 locale.h包含下面要調(diào)用的setlocale函數(shù)的聲明。 libintl.h包含gettext所使用的一些函數(shù)。 setlocale(LC_ALL, "");進行區(qū)域設(shè)置。(第二個參數(shù)為""說明設(shè)置成當(dāng)前系統(tǒng)的區(qū)域) bindtextdomain ("gettext_test", "language");設(shè)置包含給定domain的語言文件的基目錄。這里domain設(shè)置為gettext_test,基目錄是當(dāng)前目錄下的language目錄。 textdomain("gettext_test");設(shè)置當(dāng)前程序的domain,要與bindtextdomain中的domain保持一致(這里是"gettext_test")。 將所有要翻譯的字符串寫成gettext("some string.")的形式,如程序中原來的printf ("Hello world!\n");要寫成printf (gettext ("Hello world!\n");根據(jù)GNU標準也可以使用_代替gettext,這樣可以少寫幾個字... 編譯源文件生成gettext_test程序: # gcc -o gettext_test gettext_test.c 生成翻譯文件gettext_test.po: # xgettext -k_ gettext_test.c 按照bindtextdomain 中參數(shù),建立目錄結(jié)構(gòu): 在gettext_test當(dāng)前目錄下建立language目錄,language目錄下建立你的語言目錄如:zh_CN、zh_TW等等,所有可以使用的名字參考setlocale的第二個參數(shù)。在所有的語言目錄下建立LC_MESSAGES目錄。下面建立目錄結(jié)構(gòu),假設(shè)你已經(jīng)位于gettext_test的當(dāng)前目錄下: # mkdir -p language/zh_CN/LC_MESSAGE |
|
來自: oskycar > 《c\vc\opencv》