5. Non GNU vs GNU

GNU version ÀÇ gettext ÀÎÁö ¾Æ´ÑÁö¿¡ µû¶ó Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù°í ¾ð±ÞÇß´Ù. ½ÇÁ¦·Î´Â ÀÌ Â÷À̶§¹®¿¡ message º¯È¯ÀÌ ¾ÈµÇ±âµµ ÇÑ´Ù.

±× Â÷ÀÌÁ¡Àº messages.po ÆÄÀÏÀÇ format ¿¡ ÀÖ´Ù. non GNU version ÀÇ gettext ¸¦ »ç¿ëÇÏ°Ô µÉ¶§¸é ¾ÕÀý¿¡¼­ ÀÛ¼ºÇÑ °Íó·³ msgid, msgstr ÀÇ ½ÖÀ¸·Îµµ ÃæºÐÇÏ´Ù. ±×·¸Áö¸¸ GNU version ÀÇ gettext ¿¡¼­´Â À§Ã³·³ ÇØ¼­´Â ¿øÇÏ´Â °á°ú¸¦ ¾òÀ»¼ö¾ø´Ù.

xgettext ·Î ¸¸µé¾îÁø messages.po ¸¦ º¸ÀÚ

non GNU messages.po

domain "messages"
# File:Hello.c, line:22, textdomain("Hello");
msgid  "Greeting"
msgstr
msgid  "Hello"
msgstr
msgid  "World!"
msgstr

GNU messages.po

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-11-13 15:09+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: Hello.c:26
msgid "Greeting"
msgstr ""

#: Hello.c:29
msgid "Hello"
msgstr ""

#: Hello.c:32
msgid "Wolrd!"
msgstr ""

GNU messages.po ¿¡¼­´Â »ç¿ëÀÚ°¡ ¼öÁ¤ÇØÁÖ¾î¾ß ÇÒ »çÇ×µéÀÌ ¸î°¡Áö ´õ ÀÖ´Ù. ±âº» Á¤º¸ À̿ܿ¡ CHARSET À» ÁöÁ¤ÇØÁÖ¾î¾ß ÇÑ´Ù. Çѱ¹¾î ÀÏ °æ¿ì´Â euc-KR ·Î ÁöÁ¤ÇØ ÁÖ¾î¾ß ¾ÈÀüÇÏ´Ù.

GNU ÀÌ³Ä ¾Æ´Ï³Ä¿¡ µû¶ó ÀÛ¼º¹ýÀº ±×´ÙÁö ´Ù¸£Áö ¾Ê´Ù. Áß¿äÇѰÍÀº ºôµå ¹æ¹ýÀÌ´Ù. GNU gettext ¸¦ »ç¿ëÇÑ´Ù¸é xgettext, msgfmt µµ GNU version À» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. non GNU gettext ¸¦ »ç¿ëÇÑ´Ù¸é ¿ª½Ã xgettext, msgfmt µµ gettext ¿Í °°Àº °ÍÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í C code ÀÏ °æ¿ì¿¡´Â ºôµå ÇÒ¶§ ¸µÅ©µÉ ¶óÀ̺귯¸®¸¦ Á÷Á¢ ¸í½ÃÇØ Áִ°ÍÀÌ ¾ÈÀüÇÏ´Ù. (GNU À϶§´Â GNU ¶óÀ̺귯¸®, non GNU ¶óÀ̺귯¸® À϶§´Â ÇØ´ç ¶óÀ̺귯¸®)

# example
shell> gcc Hello.c -o Hello -lintl