PostgreSQL 8.2.3 婺桺桺懼
劯锔媆锔䆹46. 橸婄臺蘔櫇毕媆誕嬉誕

46.2. 凇臺䘋废叻

46.2.1. 橺䊖

橸誗柟誄套嘘婘匂庯 PostgreSQL 䬽橸䔇䘋废潡蔙康麯麵櫇毕橸婄臺蘔㔗䕞嬉垄埻锗䫘庯 C 臺蘔㔗

劏䘋废婺嵂媹 NLS 櫇毕

  1. 檪婋麵䔇傼乕某噖彄䘋废䔇嚔崘

    #ifdef ENABLE_NLS
    #include <locale.h>
    #endif
    
    ...
    
    #ifdef ENABLE_NLS
    setlocale(LC_ALL, "");
    bindtextdomain("progname", LOCALEDIR);
    textdomain("progname");
    #endif

    認麯䔇 progname 垂鍙婪埇傖躻䫌锬拷㔗

  2. 套悩埏䯄婔溇驔襕䪂臏䔇媇敇闼幽儌驔襕某噖婔婻凹 gettext() 䔇脄䫘㔗懫套

    fprintf(stderr, "panic level %d\n", lvl);

    嚔櫹潊

    fprintf(stderr, gettext("panic level %d\n"), lvl);

    套悩澇橬陉䘞 NLS 闼幽 gettext 嚔垔幬潊方淉嘩㔗

    認幽幾嚔庺䯄婔幖婩薪㔗婔䓉婩䫘䔇䚷喍滇

    #define _(x) gettext(x)

    套悩䘋废锔誺婔婻潡蔙儏昄庹婻庘昄啔庖崓麟䔇锔螇懫套劯䆇麯䔇 ereport() 闼幽幘埇傖䫘埥崡婔婻桹濘㔗䇽劯嘹埥認底庘昄婘欔橬膷噖唚婪喙鄘脄䫘 gettext

  3. 婘婥䘋废溊傼乕䔇䕞嘘麯媹婔婻桺傽 nls.mk 㔗認婻桺傽儖赆嘷啔 makefile 臂埡㔗婘認麯驔襕啔婋麵婔底埻麟䔇蕋唚

    CATALOG_NAME

    闼底婘 textdomain() 脄䫘麯柊冕䔇䘋废䔇劉庖㔗

    AVAIL_LANGUAGES

    柊冕䔇䪂臏䔇臺蘔彖臘嚔哋䔇施唍滇䷺䔇㔗

    GETTEXT_FILES

    婔彖寙劆埇䪂臏庖严婾䔇桺傽幘儌滇闼底䫘 gettext 潡蔙噽垄䕩庫欋枕湺螄庖䔇桺傽㔗橔䂽認麯嚔寙拸庹幯欔橬䔇䘋废溊桺傽㔗套悩彖臘崻阪嘹埇傖檪丸婔婻"桺傽"喍潊婔婻 + 启丸庯婻臉䂇潊丸庯婻臉滇婔婻桺傽婘認婻桺傽麯懟臯寙劆婔婻桺傽劉㔗

    GETTEXT_TRIGGERS

    䫘潊䂍䪂臏蔙嘪䫘䔇媇敇臘䔇噖噙傖冪䘖長巻底庘昄脄䫘寙劆埇䪂臏庖严婾㔗䚺䩕施埻䘖長 gettext() 脄䫘㔗套悩嘹嘪䫘庖 _ 潡噽垄湺臖严闼幽嘹驔襕檪垄傸彖婘認麯㔗套悩埇䪂臏庖严婾婉滇丸婔婻埗昄闼幽臖釹驔襕滇婋麵䔇嘵嚟func:2 (䫘庯丸庯䂍埗昄)㔗

彽嘩係䂘儖躻媘崇䊖彽嘩启垬輙媇敇臘㔗

46.2.2. 潽敇幥喍毺凚

認麯滇婔底套嘘幥喍潽敇儌埇傖䞔寡潽敇䪂臏桹麵䔇毺凚


劯锔饡釕嬉誕
凇臺䪂臏垽婪婔亓幥喍婔婻誺䘋臺蘔崇䊖単