乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C語言中用GNU gettext實現(xiàn)本地化

       oskycar 2013-07-20

      首先要確認GNU gettext已經(jīng)被安裝。

      寫一個示例程序

      gettext_test.c:

       

      #include <stdio.h>
      #include <locale.h>
      #include <libintl.h>

      #define _(string) gettext(string)

      int
      main ()
      {
        setlocale (LC_ALL, "");
        bindtextdomain ("gettext_test", "language");
        textdomain ("gettext_test");
        printf (_("Hello world!\n"));
        return 0;
      }

      下面先分析一下上面的源文件

      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

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多