3. C code ¿¡¼­ÀÇ gettext »ç¿ë

C code ¿¡¼­ÀÇ »ç¿ë¹ýÀ» »ìÆìº»´Ù.

¿¹Á¦ ÇÁ·Î±×·¥À¸·Î Hello.c ¶ó´Â C code ¸¦ ÀÛ¼ºÇÑ´Ù. ÀÌ ÇÁ·Î±×·¥Àº Greeting, Hello, World ¶ó°í Ãâ·ÂÀ» Çϴµ¥ °¢°¢ÀÇ message µéÀ» gettext ¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ locale ¿¡ µû¶ó Ãâ·ÂÅä·Ï ÇÑ´Ù.


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

int
main(void)
{
	/* ÇöÀç È£½ºÆ®ÀÇ locale À» »ç¿ëÇÑ´Ù. */
        setlocale(LC_ALL,"");

	/* Hello ÀÇ message table À» /usr/local/share/locale ¾Æ·¡¿¡¼­ ãµµ·Ï ÇÑ´Ù. */
        bindtextdomain("Hello", "/usr/local/share/locale");
        textdomain("Hello");
	
        printf("origin message : %s\n", "Greeting");
        printf("gettext trans  : %s\n", gettext("Greeting"));

        printf("origin message : %s\n", "Hello");
        printf("gettext trans  : %s\n", gettext("Hello"));

        printf("origin message : %s\n", "World!");
        printf("gettext trans  : %s\n", gettext("World!"));

        return 0;
}

string À» gettext ·Î µÑ·¯½Î°Ô µÇ¸é µÑ·¯½ÎÀÎ message °¡ ÇØ´ç locale¿¡ ÇØ´çÇÏ´Â message table À» ÂüÁ¶ÇÏ¿© Ãâ·ÂÇÏ°Ô µÈ´Ù. ¿©±â¼­ ÂüÁ¶ÇÒ message table À» ÇÁ·Î±×·¥¿¡ ¿¬°á½Ã۱â À§Çؼ­ bindtextdomain À» »ç¿ëÇÏ¿´´Ù. À§ ¿¹Á¦¿¡¼­´Â À§ Äڵ带 Hello ¶ó´Â À̸§À¸·Î ºôµåÇϰí, ÀÌÀÇ message table Àº /usr/local/share/locale ¾Æ·¡¿¡¼­ textdomain ¿¡¼­ ÁöÁ¤ÇÑ Hello ÇÁ·Î±×·¥ÀÇ message table À» ÂüÁ¶Çϵµ·Ï ÇѰÍÀÌ´Ù.

¸¸¾à ÇØ´çÇÏ´Â mesage table ÀÌ ¾ø°Å³ª Á¤ÀÇµÈ °ªÀÌ ¾øÀ» °æ¿ì¿¡´Â º¯È¯¾øÀÌ ¿ø·¡ messgae°¡ Ãâ·ÂµÈ´Ù.