Go to the first, previous, next, last section, table of contents.


PO ÆÄÀÏ°ú PO ¸ðµåÀÇ ±âº»

ÇÁ·Î±×·¡¸Ó¿Í ¹ø¿ªÀÚ´Â GNU gettextÀÇ µµ±¸¸¦ ÀÌ¿ëÇØ ¹ø¿ª ÆÄÀÏÀ» ¸¸µé°í, »õ·Î °íÄ¡°í, »ç¿ëÇÑ´Ù. ÀÌ ¹ø¿ª ÆÄÀÏÀº ÅؽºÆ® Çü½ÄÀÌ°í, Á÷Á¢ ÆíÁýÇÒ ¼ö ÀÖ´Â PO ÆÄÀÏÀÌ´Ù. ÀÌ Àå¿¡¼­´Â PO ÆÄÀÏÀÇ Çü½Ä¿¡ ÃÐÁ¡À» ¸ÂÃß°í, ¶Ç PO ¸ðµåÀÇ ±âº»ÀûÀÎ »ç¿ë¹ýÀ» ´ã°í ÀÖ´Ù. PO ¸ðµå¿¡ ´ëÇÑ ¼³¸íÀº ÀÌ ¾È³»¼­ÀÇ ÇÑ ±ºµ¥¿¡ ÁýÁߵǾî ÀÖÁö ¾Ê°í, ¾È³»¼­ Àüü¿¡ Èð¾îÁ® ÀÖ´Ù. ¿©±â¼­´Â PO ¸ðµåÀÇ ±âÃʸ¸À» ¾Ë·ÁÁØ´Ù.

GNU gettextÀÇ ¿Ïº®ÇÑ ¼³Ä¡

ÀÏ´Ü GNU gettext ¹èÆ÷º»À» ¹Þ¾Æ¼­, ¾ÐÃàÀ» Ç®°í, ./configureÇÏ°í ÄÄÆÄÀÏÇßÀ¸¸é, `make install' ¸í·ÉÀ» ½ÇÇàÇß´Ù¸é xgettext, msgfmt, gettext, ±×¸®°í msgmerge°¡ Á¦ À§Ä¡¿¡ ¼³Ä¡µÇ¾úÀ» °ÍÀÌ°í, ±×¿¡ ÇØ´çÇÏ´Â ¸Þ¼¼Áöµµ ¼³Ä¡µÇ¾úÀ» °ÍÀÌ´Ù. º¸´Ù ¿ÏÀüÈ÷ ¼³Ä¡ÇÏ·Á¸é À̸ƽº »ç¿ëÀÚµéÀÌ PO ¸ðµå¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î¾ß ÇÒ °ÍÀÌ´Ù.

PO ¸ðµå¸¦ ¼³Ä¡ÇÒ ¶§, `.emacs' ÆÄÀÏÀ» ´ÙÀ½°ú °°Àº ÁÙÀÌ Æ÷ÇԵǵµ·Ï ¼öÁ¤ÇØ¾ß ÇÑ´Ù.

(setq auto-mode-alist
      (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode) auto-mode-alist))
(autoload 'po-mode "po-mode" "Major mode for translators to edit PO files" t)

³ªÁß¿¡, ¾ðÁ¦¶óµµ `.po', `.pot' ȤÀº `.pox' ÆÄÀÏÀ» ÆíÁýÇÏ°Ô µÇ°Å³ª, `.po.'À» ÆÄÀÏÀ̸§ Áß°£¿¡ °¡Áø ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì¿¡, À̸ƽº´Â ÇÊ¿äÇÑ `po-mode.elc'(ȤÀº `po-mode.el') ÆÄÀÏÀ» Àоîµé¿©¼­, ÀÚµ¿À¸·Î ÇØ´ç ¹öÆÛ¿¡ PO ¸ðµå ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µç´Ù. PO ¸ðµåÀÇ ¹öÆÛÀÇ ¸ðµå ¶óÀÎ(mode line)¿¡´Â PO¶ó´Â ±ÛÀÚ°¡ ³ªÅ¸³­´Ù. ÇÑ °³ÀÇ À̸ƽº ¼¼¼Ç¿¡¼­ ¿©·¯°³ÀÇ PO ÆÄÀÏÀ» ÆíÁýÇÒ ¼öµµ ÀÖ´Ù.

¸¸¾à À̸ƽº ¹öÀü 20À̳ª ´õ ³ôÀº ¹öÀüÀ» »ç¿ëÇϸ鼭 ½Ã½ºÅÛ¿¡ Àû´çÇÑ ´Ù±¹¾î ±Û²ÃÀ» ¼³Ä¡Çß´Ù¸é, ¾ðÁ¦µçÁö PO ÆÄÀÏÀÇ ÄÚµù ½Ã½ºÅÛ(coding system)À» ã¾Æ³»µµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ¸é ´ëºÎºÐÀÇ °æ¿ì (¾ðÁ¦³ª´Â ±×·¸Áö´Â ¾Ê´Ù) ÇÊ¿äÇÑ ±Û²ÃÀ» ÀÚµ¿À¸·Î ÀÐ°í ¹ø¿ª¹®À» À̸ƽº ½ºÅ©¸°¿¡ Ç¥½ÃÇÏ°Ô µÈ´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é, ´ÙÀ½°ú °°Àº ÁÙÀ» `.emacs' ÆÄÀÏ¿¡ ÷°¡ÇÑ´Ù:

(autoload 'po-find-file-coding-system "po-mode")

¸¸¾à¿¡ ±¹Á¦ ¹®ÀÚ°¡ ³ªÅ¸³ª¾ß ÇÒ À§Ä¡¿¡ »ç°¢Çü¸¸ º¸Àδٸé, ´Ù¸¥ ÆùÆ®ÁýÇÕÀ» ¼±ÅÃÇØ º¸±â ¹Ù¶õ´Ù (½¬ÇÁÆ®¿Í ù¹ø° ¸¶¿ì½º ¹öÆ°À» ´©¸¥´Ù).

PO ÆÄÀÏÀÇ Çü½Ä

PO ÆÄÀÏÀº ¸¹Àº Ç׸ñ(entry)µé·Î ±¸¼ºµÈ´Ù. °¢ Ç׸ñÀº ¹ø¿ªµÇÁö ¾ÊÀº ¿ø·¡ ¹®ÀÚ¿­°ú ±×¿¡ ÇØ´çÇÏ´Â ¹ø¿ª¹®À» ´ëÀÀ½ÃŲ´Ù. º¸Åë ÇÑ °³ÀÇ PO ÆÄÀÏ¿¡ µé¾î ÀÖ´Â Ç׸ñµéÀº ¸ðµÎ ÇÑ °³ÀÇ ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ °ÍÀÌ°í, ±× ¾ÈÀÇ ¸ðµç ¹ø¿ª¹®Àº ÇϳªÀÇ ¾ð¾î¸¦ À§ÇÑ °ÍÀÌ´Ù. ÇϳªÀÇ PO ÆÄÀÏ Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù:

°ø¹é
#  ¹ø¿ªÀÚ-ÁÖ¼®¹®
#. ÀÚµ¿-ÁÖ¼®¹®
#: ÂüÁ¶...
#, Ç÷¡±×...
msgid ¹ø¿ªµÇÁö-¾ÊÀº-¹®ÀÚ¿­
msgstr ¹ø¿ªµÈ-¹®ÀÚ¿­

¹ø¿ªÀÚ´Â PO ÆÄÀÏÀÇ ÀϹÝÀûÀÎ ±¸Á¶¸¦ Àß ÀÌÇØÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. PO ÆÄÀÏÀ» »ç¿ëÇÒ °æ¿ì¿¡´Â PO ¸ðµå°¡ ¸¹Àº ¿ªÇÒÀ» ÇØ ÁֹǷÎ, ¹ø¿ªÀÚ´Â ±× ÀÚ¼¼ÇÑ ÆÄÀÏ Çü½Ä¿¡ °üÇؼ­´Â ¾Ë ÇÊ¿ä°¡ ¾ø´Ù.

Ç׸ñÀº °ø¹éÀ¸·Î ½ÃÀÛÇÑ´Ù. º¸Åë GNU gettext µµ±¸·Î ¸¸µé¾îÁø °æ¿ì¿¡, °¢ Ç׸ñ »çÀÌ¿¡´Â Á¤È®È÷ ÇÑ°³ÀÇ ºóÁÙÀÌ µé¾î°£´Ù. ±×¸®°í #¿Í ºóÄ­À¸·Î ½ÃÀ۵Ǵ ÁÖ¼®¹®ÀÌ ÀÖ´Ù. µÎ°¡Áö Á¾·ùÀÇ ÁÖ¼®¹®ÀÌ ÀÖ´Ù: # ´ÙÀ½¿¡ ºóÄ­ÀÌ ¿À´Â ÁÖ¼®¹®Àº ÀüÀûÀ¸·Î ¹ø¿ªÀÚ°¡ ¸¸µé°í °ü¸®ÇÑ´Ù. ±×¸®°í ¶Ç ÇÑ °¡Áö´Â # ´ÙÀ½¿¡ ºóÄ­ÀÌ ¾Æ´Ñ ¾î¶² ¹®ÀÚ°¡ ¿À´Â °æ¿ìÀε¥, ÀÌ°ÍÀº ÀÚµ¿À¸·Î GNU gettext µµ±¸¿¡ ÀÇÇØ ¸¸µé¾î Áø´Ù. ¾î¶² ÁÖ¼®¹®ÀÌµç °£¿¡ ÁÖ¼®¹®Àº ¾ø¾îµµ »ó°ü ¾ø´Ù.

Ç׸ñ¿¡´Â °ø¹é°ú ÁÖ¼®¹® ´ÙÀ½¿¡ µÎ °³ÀÇ ¹®ÀÚ¿­ÀÌ ÀÖ´Ù. ù¹ø°´Â ¿ø·¡ ÇÁ·Î±×·¥ ¼Ò½º¿¡ ³ªÅ¸³ª´Â ¹ø¿ªµÇÁö ¾ÊÀº ¹®ÀÚ¿­ÀÌ°í, ´Ù¸¥ Çϳª´Â ±× ¹®ÀÚ¿­ÀÇ ¹ø¿ª¹®ÀÌ´Ù. ¿ø·¡ ¹®ÀÚ¿­Àº msgid ´ÙÀ½¿¡ ¿À°í, ¹ø¿ª¹®Àº msgstr ´ÙÀ½¿¡ ¿Â´Ù. ÀÌ ¿ø·¡ ¹®ÀÚ¿­°ú ¹ø¿ªµÈ ¹®ÀÚ¿­Àº PO ÆÄÀÏ¿¡¼­ " ±¸ºÐÀÚ¿Í \ À̽ºÄÉÀÌÇÁ¸¦ »ç¿ëÇØ ¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ¾²¿©ÁöÁö¸¸, PO ¸ðµå°¡ ÀÌ ¹®Á¦¸¦ ÇØ°áÇØ ÁÙ °ÍÀ̱⠶§¹®¿¡ ¹ø¿ªÀÚ´Â ÀÌ Çü½Ä¿¡ ½Å°æ¾µ ÇÊ¿ä°¡ ¾ø´Ù.

msgid ´ÙÀ½¿¡ ¿À´Â ¹®ÀÚ¿­Àº ÀÚµ¿ ÁÖ¼®¹®°ú ¸¶Âù°¡Áö·Î GNU gettext µµ±¸µé¿¡ ÀÇÇØ ¸¸µé¾îÁö°í °ü¸®µÈ´Ù. PO ¸ðµå¿¡¼­´Â ¹ø¿ªÀÚ°¡ ÀÌ ¹®ÀÚ¿­À» ¼öÁ¤ÇÒ ¼ö ¾ø´Ù. ÇÒ ¼ö ÀÖ´Â ÀÏÀº Àüü Ç׸ñÀ» Áö¿ì´Â °Í »ÓÀÌ´Ù. ÇÑÆí, msgstr ´ÙÀ½¿¡¿À´Â ¹®ÀÚ¿­Àº ¹ø¿ªÀÚ ÁÖ¼®¹®°ú ¸¶Âù°¡Áö·Î ¹ø¿ªÀÚ¸¦ À§ÇÑ °ÍÀÌ°í, PO ¸ðµå¿¡¼­ ÀÌ ¹®ÀÚ¿­À» ¹ø¿ªÇÒ ¶§ ÇÊ¿äÇÑ ¸ðµç °ÍÀ» Á¦°øÇØ ÁØ´Ù.

#,·Î ½ÃÀÛÇÏ´Â ÁÖ¼®¹®Àº Ư¼öÇÑ °æ¿ì·Î, ÁÖ¼®¹®´äÁö ¾Ê°Ô ÇÁ·Î±×·¥ÀÌ ¹«½ÃÇÏÁö ¾Ê´Â ÁÖ¼®¹®ÀÌ´Ù. ½°Ç¥·Î ±¸ºÐµÈ Ç÷¡±×µéÀº msgfmt ÇÁ·Î±×·¥ÀÌ »ç¿ëÇؼ­ ¸Þ¼¼ÁöÀÇ »óŸ¦ º¸´Ù Àß ¾Ë·ÁÁÖ´Â µ¥ ¾²ÀδÙ. ÇöÀç·Î´Â µÎ°¡Áö Ç÷¡±×°¡ Á¤ÀǵǾî ÀÖ´Ù:

fuzzy
ÀÌ Ç÷¡±×´Â msgmerge ÇÁ·Î±×·¥ÀÌ ¸¸µé¾î ³»°í, ¹ø¿ªÀÚ ÀÚ½ÅÀÌ Á÷Á¢ ½á ³ÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀº msgstrÀÌ (´õ ÀÌ»ó) ¿Ã¹Ù¸¥ ¹ø¿ªÀÌ ¾Æ´ÒÁöµµ ¸ð¸¥´Ù´Â ¶æÀÌ´Ù. ´õ ¼öÁ¤ÇØ¾ß ÇÏ´ÂÁö, ȤÀº ±×´ë·Î »ç¿ë°¡´ÉÇÑÁö ÆÇ´ÜÇÒ ¼ö ÀÖ´Â °Ç ¹ø¿ªÀÚ»ÓÀÌ´Ù. ¹ø¿ªÀÌ ¸¸Á·½º·´´Ù¸é, ¹ø¿ªÀÚ´Â ÀÌ fuzzy ¼Ó¼ºÀ» Áö¿î´Ù. ÆÛÁö ã±â¸¦ ÇÑ ÈÄ¿¡ msgmerge ÇÁ·Î±×·¥Àº msgid¿Í msgstrÀ» ¿¬°ü½Ãų ¶§ ÀÌ ¼Ó¼ºÀ» Ãß°¡ÇÑ´Ù. See section ÆÛÁö Ç׸ñ.
c-format
no-c-format
ÀÌ Ç÷¡±×´Â »ç¶÷ÀÌ Ãß°¡Çؼ­´Â ¾È µÈ´Ù. xgettext ÇÁ·Î±×·¥¸¸ÀÌ ÀÌ Ç÷¡±×¸¦ Ãß°¡ÇÑ´Ù. ³ªÁß¿¡ Á¦½ÃµÇ´Â ÀÚµ¿È­µÈ PO ÆÄÀÏ Ã³¸® ½Ã½ºÅÛ¿¡¼­ xgettext ÇÁ·Î±×·¥ÀÌ »õ·Î¿î Ʋ ÆÄÀÏÀ» ¸¸µé ¶§¸¦ »©°í´Â ¼öÁ¤µÇ¾î¼­´Â ¾È µÇ´Â Ç÷¡±×ÀÌ´Ù. c-format Ç÷¡±×°¡ ÁÖ¾îÁø °æ¿ì msgfmtÀº ÀÌ ¹ø¿ª¹®ÀÌ ¿Ã¹Ù¸¥Áö¿¡ ´ëÇØ ´õ ÀÚ¼¼ÇÏ°Ô °Ë»çÇÑ´Ù. See section msgfmt ÇÁ·Î±×·¥ ½ÇÇàÇϱâ.

Ç׸ñÀº ¿©·¯ °¡Áö Á¾·ù°¡ »ç¿ëµÇ´Âµ¥, ±× Áß¿¡´Â º¹¼öÇü°ú °ü·ÃµÇ¾î ÀÖ´Ù.

°ø¹é
#  ¹ø¿ªÀÚ-ÁÖ¼®¹®
#. ÀÚµ¿-ÁÖ¼®¹®
#: ÂüÁ¶...
#, Ç÷¡±×...
msgid ¹ø¿ªµÇÁö-¾ÊÀº-¹®ÀÚ¿­-´Ü¼ö
msgid_plural ¹ø¿ªµÇÁö-¾ÊÀº-¹®ÀÚ¿­-º¹¼ö
msgstr[0] ¹ø¿ªµÈ-¹®ÀÚ¿­-ÄÉÀ̽º-1
...
msgstr[N] ¹ø¿ªµÈ-¹®ÀÚ¿­-ÄÉÀ̽º-n

PO ÆÄÀÏÀÇ ¸¶Áö¸· Ç׸ñ ´ÙÀ½¿¡ °ø¹éÀ̳ª ÁÖ¼®¹® ¸î ÁÙÀÌ ´õ ¿Ã ¼öµµ ÀÖ´Ù. ÀÌ ÁÙÀº ¾î¶² Ç׸ñÀÇ ÀϺεµ ¾Æ´Ï°í, ÀÌ Áٵ鿡 ´ëÇؼ­´Â ¾î¶² 󸮵µ ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. PO ¸ðµå ÇÔ¼öÀÎ M-x po-normalize¸¦ »ç¿ëÇØ, ¹ø¿ªÀÚ´Â ÀÌ·¸°Ô ÇÊ¿ä ¾ø´Â ÁÙµéÀ» Áö¿ï ¼ö ÀÖ´Ù. See section Ç׸ñÀÇ ¹®ÀÚ¿­ Ç¥ÁØÈ­.

ÀÌ ÀýÀÇ ³ª¸ÓÁö´Â PO ¸ðµå¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÇ °æ¿ì ±×³É Áö³ªÃĵµ µÇÁö¸¸, PO ÆÄÀÏÀÇ Á¤È®ÇÑ Çü½Ä¿¡ °üÇØ ¾Ë°í ½ÍÀº »ç¶÷µéÀº Àç¹ÌÀÖ°Ô ÀÐÀ» ¼ö ÀÖ´Ù. ÇÑÆí, À̸ƽº¿¡ Àͼ÷ÇÏÁö ¾ÊÀº »ç¶÷Àº °è¼ÓÇؼ­ ÁÖÀDZí°Ô Àоî¾ß ÇÑ´Ù.

°¢ ¹ø¿ªµÇÁö-¾ÊÀº-¹®ÀÚ¿­°ú ¹ø¿ªµÈ-¹®ÀÚ¿­Àº ¹®ÀÚ¿­À» À§ÇÑ CÀÇ ¹®¹ýÀ» ±×´ë·Î µû¸¥´Ù. C ¹®¹ýÀÇ ¹®ÀÚ¿­Àº µû¿ÈÇ¥·Î µÑ·¯½Î¿©Á® ÀÖ°í, ¹é½½·¡½¬·Î ½ÃÀÛÇÏ´Â À̽ºÄÉÀÌÇÁ ½ÃÄö½º°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ´Ü, ¿©·¯ÁÙÀÇ ¹®ÀÚ¿­À» ½á¾ß ÇÒ¶§, À̽ºÄÉÀÌÇÁ ´ÙÀ½¿¡ ÁÙÀ» ¹Ù²Ù¾î ¾²Áö ¾Ê´Â´Ù. ±× ´ë½Å¿¡ µû¿ÈÇ¥¸¦ ´ÝÀº ´ÙÀ½, ´ÙÀ½ ÁÙ¿¡ µû¿ÈÇ¥¸¦ ¿­¾î¼­ ¹®ÀÚ¿­À» °è¼Ó ½á ³ª°£´Ù. ¿¹¸¦ µé¾î:

msgid ""
"Here is an example of how one might continue a very long string\n"
"for the common case the string represents multi-line output.\n"

ÀÌ ¿¹¿¡¼­, ´Ü¾î `Here'ÀÇ H°¡ ´Ü¾î `for'ÀÇ f ¹Ù·Î À§¿¡ ¿Àµµ·Ï Á¤·ÄÇϱâ À§ÇØ Ã¹Â° ÁÙ¿¡ ºó ¹®ÀÚ¿­ÀÌ »ç¿ëµÇ¾ú´Ù. ÀÌ ¿¹¿¡¼­, msgid Å°¿öµå ´ÙÀ½¿¡´Â ¼¼ °³ÀÇ ¹®ÀÚ¿­ÀÌ ¿Â´Ù. ±× ¼¼ °³ÀÇ ¹®ÀÚ¿­Àº ¿¬¼ÓµÈ ÇÑ °³ÀÇ ¹®ÀÚ¿­·Î Ãë±ÞµÈ´Ù. ºó ¹®ÀÚ¿­À» ¿¬°áÇصµ ÃÖÁ¾ ¹®ÀÚ¿­¿¡´Â º¯È­°¡ ¾øÀ¸³ª, msgid ´ÙÀ½¿¡ °°Àº ÁÙ¿¡ ¹®ÀÚ¿­ÀÌ ¿À°Ô Çϸ鼭, ¿©·¯ÁÙÀÇ ¹®ÀÚ¿­À» ¿ÞÂÊ¿¡ Á¤·ÄµÇµµ·Ï Çϱâ À§ÇØ ¿ì¸®°¡ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ°í, ¿ì¸®´Â ÀÌ·¸°Ô ¹èÄ¡ÇÏ´Â ÆíÀÌ ´õ º¸±â ÁÁ´Ù°í »ý°¢ÇÑ´Ù. ºó ¹®ÀÚ¿­Àº ºüÁú ¼ö ÀÖÁö¸¸, `Here'·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ¿­Àº ù¹ø° ÁÙ¿¡ msgid ¹Ù·Î ´ÙÀ½¿¡ ¿Í¾ß ÇÑ´Ù.(2) ÇÏÁö¸¸, ÁÙ¹Ù²Þ `\n' ´ÙÀ½¿¡ ¹Ù·Î µû¿ÈÇ¥¸¦ ¹­¾î¼­ ´ÙÀ½ ¹®ÀÚ¿­À» ½ÃÀÛÇÒ ÇÊ¿äµµ ¾ø°í, ¾î¶² ¹®ÀÚ ´ÙÀ½¿¡¼­µµ ´ÙÀ½ ¹®ÀÚ¿­À» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. ¿ì¸®´Â ´õ ±ú²ýÇØ º¸À̱⠶§¹®¿¡ À§¿Í °°ÀÌ »ç¿ëÇßÀ» »ÓÀÌ´Ù.

¿©·¯ ÁÙÀÌ ÀÖÀ» ¶§ ¹Ýµå½Ã µû¿ÈÇ¥ ¾È¿¡ `\n'À¸·Î Ç¥½ÃÇØ¾ß ÇÑ´Ù. `\n'Àº ±× ¹®ÀÚ¿­ÀÇ ÀϺÎÀÌ°í, ±× ´ÙÀ½¿¡ µû¿ÈÇ¥ ¹Ù±ù¿¡ ¿À´Â ÁٹٲÞÀº PO ÆÄÀÏÀÇ ÀϺηΠ±× ¹®ÀÚ¿­°ú´Â ¾Æ¹« °ü°è°¡ ¾ø´Ù.

¹®ÀÚ¿­ÀÇ ¹Û¿¡¼­ ºóÁÙ°ú ÁÖ¼®Àº ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÁÖ¼®Àº `#'·Î ½ÃÀÛÇÏ°í ÁÖ¼®Àº ±× ÁÙ ³¡±îÁö À̾îÁø´Ù. ¹ø¿ªÀÚ°¡ ¾´ ÁÖ¼®Àº óÀ½¿¡ `#'¸¦ ¾²°í ¹Ù·Î ´ÙÀ½¿¡ ºó Ä­ÀÌ ¿Í¾ß ÇÑ´Ù. ¸¸¾à `#' ´ÙÀ½¿¡ ºóÄ­ÀÌ ¿ÀÁö ¾ÊÀ¸¸é, ±× ÁÖ¼®Àº GNU µµ±¸¿¡ ÀÇÇØ ¸¸µé¾îÁö°í, 󸮵Ǵ °ÍÀ¸·Î Ãë±ÞµÈ´Ù. ±×¸®°í ±×·¯ÇÑ ÁÖ¼®¹®Àº PO ÆÄÀÏÀÌ msgmerge·Î ó¸®µÉ ¶§ »ç¶óÁö°Å³ª ´Ù¸¥ ¾î¶² °ÍÀ¸·Î ¹Ù²ð °ÍÀÌ´Ù.

ÁÖ¿ä PO ¸ðµå ¸í·É

section GNU gettextÀÇ ¿Ïº®ÇÑ ¼³Ä¡¿¡ ¾²¿©Áø ¹Ù¿Í °°ÀÌ À̸ƽº¸¦ ¼¼ÆÃÇϸé, À̸ƽº°¡ PO ÆÄÀÏÀ» ¿­¶§ PO ¸ðµå°¡ ÀÛµ¿ÇÏ°Ô µÈ´Ù. PO ¸ðµå´Â ±× À©µµ¿ì¸¦ Àбâ Àü¿ëÀ¸·Î ¸¸µé°í, po-mode-mapÀ» ¸¸µç´Ù. po-mode-mapÀº ÇϳªÀÇ À̸ƽº ¸ðµåÀÌ°í, ÅؽºÆ® ¸ðµå¿¡¼­ ³ª¿Â °ÍÀÌ ÀüÇô ¾Æ´Ï´Ù. ¸¸¾à po-mode-hook¿¡ ¾î¶² ÇÔ¼ö°¡ ÀÖ´Ù¸é ±× ÇÔ¼öµéÀÌ ½ÇÇàµÉ °ÍÀÌ´Ù.

PO ¸ðµå°¡ ¾î¶² À©µµ¿ì¿¡¼­ ÀÛµ¿Çϸé, `PO'¶ó´Â ±ÛÀÚ°¡ ±× À©µµ¿ìÀÇ ¸ðµå ¶óÀο¡ ³ªÅ¸³­´Ù. ¸ðµå ¶óÀÎÀº °¢ Ç׸ñÀ» ºÐ·ùÇØ ±× °¹¼ö°¡ ¾ó¸¶³ª µÇ´ÂÁö¸¦ Ç¥½ÃÇϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î, `132t+3f+10u+2o'´Â PO ¸ðµå¿¡ 132°³ÀÇ ¹ø¿ªµÈ Ç׸ñ(see section ¹ø¿ªµÈ Ç׸ñ, 3°³ÀÇ ÆÛÁö Ç׸ñ (see section ÆÛÁö Ç׸ñ), 10°³ÀÇ ¹ø¿ªµÇÁö ¾ÊÀº Ç׸ñ(see section ¹ø¿ªµÇÁö ¾ÊÀº Ç׸ñ), ±×¸®°í 2°³ÀÇ ¾ø¾îÁø Ç׸ñ(see section ¾ø¾îÁø Ç׸ñ)ÀÌ µé¾î ÀÖ´Ù´Â ¶æÀÌ´Ù. °¹¼ö°¡ 0ÀÎ Ç׸ñÀº Ç¥½ÃÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î, ÀÌ ¿¹¿¡¼­ ¸ðµç ÆÛÁö Ç׸ñÀÇ ÆÛÁö°¡ Ãë¼ÒµÇ°í ¹ø¿ªµÇÁö ¾ÊÀº Ç׸ñÀÌ ¹ø¿ªµÈ´Ù¸é, ÃÖÁ¾ÀûÀ¸·Î ÀÌ ¸ðµå ¶óÀÎÀº `145t'¸¦ Ç¥½ÃÇÒ °ÍÀÌ´Ù.

ÁÖ¿ä PO ¸í·É¾î´Â µÞºÎºÐ¿¡ ³ª¿Ã ¶Ç ´Ù¸¥ Á¾·ùÀÇ ¸í·É¾îµé°ú´Â ´Ù¸£´Ù. ÀÌ ¸í·É¾îµéÀº PO ¸ðµå¸¦ Á¾·áÇϰųª, À©µµ¿ì¸¦ Ưº°È÷ Á¶ÀÛÇÏ´Â µ¥ ¾²ÀδÙ.

U
PO ÆÄÀÏÀÇ ÃÖ±Ù ¼öÁ¤»çÇ×À» Ãë¼Ò(Undo)ÇÑ´Ù.
Q
ÀÛ¾÷À» ¸ØÃß°í, PO ÆÄÀÏÀ» ÀúÀåÇÑ´Ù.
q
ÀÛ¾÷À» ¸ØÃá´Ù. È®ÀÎÇÒ °ÍÀÌ ÀÖ´Ù¸é È®ÀÎ ÇÑ ÈÄ¿¡ ¸ØÃá´Ù.
O
Àá½Ã PO ÆÄÀÏ À©µµ¿ì¸¦ ¶°³­´Ù.
?
h
PO ¸ðµåÀÇ µµ¿ò¸»À» º¸¿©ÁØ´Ù.
=
PO ÆÄÀÏÀÇ Åë°è¸¦ º¸¿©ÁØ´Ù.
V
Àüü PO ÆÄÀÏÀÇ Æ÷¸ËÀÌ ¸Â´ÂÁö Á¡°ËÇÑ´Ù.

U (po-undo) ¸í·ÉÀº À̸ƽºÀÇ ½ÇÇà Ãë¼Ò(undo) ±â´ÉÀÇ ÀÎÅÍÆäÀ̽ºÀÌ´Ù. See section `Undoing Changes' in The Emacs Editor. U°¡ ŸÀÌÇÁÇÒ ¶§¸¶´Ù, ¹ø¿ªÀÚ°¡ PO ÆÄÀÏ¿¡ °¡ÇÑ ¼öÁ¤»çÇ×À» °è¼ÓÇؼ­ Ãë¼ÒÇÒ ¼ö ÀÖ´Ù. ½ÇÇà Ãë¼Ò¸¦ À§ÇØ, °¢ PO ¸ðµå ¸í·ÉÀº ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾îÁ³´Ù. ÀÌ´Â RET ¸í·É¿¡ ƯÈ÷ ±×·¯ÇÏ´Ù: ÀÌ ¸í·ÉÀ» Çѹø »ç¿ëÇßÀ» ¶§ ¼öÁ¤µÇ´Â »çÇ×Àº, ºñ·Ï ÆíÁý°úÁ¤¿¡¼­ ¿©·¯¹øÀÇ ¸í·ÉÀÌ ÀÖ¾úÀ» Áö ¸ð¸£Áö¸¸, ´Ü¹ø¿¡ ½ÇÇà Ãë¼ÒµÈ´Ù. ÆíÁý À©µµ¿ì¿¡ ÀÖÀ» ¶§, ±× ÆíÁýÀÛ¾÷¿¡ ´ëÇØ ½ÇÇà Ãë¼Ò¸¦ ÇÏ´Â ÀÏÀº µå¹® °Ô º¸ÅëÀÌ´Ù.

Q (po-quit) ¸í·É°ú q (po-confirm-and-quit) ¸í·ÉÀº ÇØ´ç PO ÆÄÀÏ¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ³¡³µÀ» ¶§ »ç¿ëÇÑ´Ù. ÀüÀÚÀÇ ¸í·É¾î°¡ ÈÄÀÚÀÇ ¸í·É¾îº¸´Ù ¸í·É¾î°¡ ´õ °£´ÜÇÏ´Ù. ÆÄÀÏÀÌ ¼öÁ¤µÇ¾úÀ» °æ¿ì¿¡, ¸ÕÀú µð½ºÅ©¿¡ ÀúÀåÇÑ´Ù. ÀÌ ¸í·ÉµéÀº µÎ °æ¿ì ¸ðµÎ, ¸Ç ¸ÕÀú PO ÆÄÀÏ¿¡ ¹ø¿ªµÇÁö ¾ÊÀº ¸Þ¼¼Áö°¡ ³²¾ÆÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ¸¸¾à ³²¾Æ ÀÖ´Ù¸é, ¹ø¿ªÀÚ´Â ÁøÂ¥·Î ÀÌ PO ÆÄÀÏ¿¡ ´ëÇÑ ÀÛ¾÷À» ³¡³¾ °ÍÀÎÁö Áú¹®À» ¹Þ°Ô µÈ´Ù. ÀÌ ¸í·ÉÀº À̸ƽº PO ÆÄÀÏ ¹öÆÛ¸¦ ¾ø¾Ö´Â ´õ ÁÁÀº ¹æ¹ýÀÌ´Ù. ¹öÆÛ¸¦ ¾ø¾Ö´Â º¸Åë À̸ƽº ¸í·É¾î C-x k (kill-buffer)´Â ±×¸® ±ò²ûÇÑ ¹æ¹ýÀÌ ¾Æ´Ï´Ù.

O (po-other-window) ¸í·ÉÀº ºÎµå·´°Ô Àá½Ã PO ¸ðµå¸¦ ¶°³ª´Â ¶Ç ÇÑ °¡Áö ¹æ¹ýÀÌ´Ù. ÀÌ ¸í·ÉÀº Ä¿¼­¸¦ ´Ù¸¥ À̸ƽº À©µµ¿ì·Î ¿Å°ÜÁÖ´Â °Í »ÓÀÌ°í, ÇÊ¿äÇÒ ¶§ ³ªÅ¸³­´Ù. ¿¹¸¦ µé¾î, ¹ø¿ªÀÚ°¡ PO ¸ðµå¸¦ º¸°í, ¶Ç ´Ù¸¥ °÷¿¡ ÀÖ´Â ¼Ò½º ³»¿ëÀ» º¸·Á°í ÇÒ¶§, ¹ø¿ªÀÚ´Â ÇÁ·Î±×·¥ ¼Ò½º¿¡¼­ °íÃÄ¾ß ÇÒ ºÐ¸íÇÑ ¹ö±×¸¦ ¹ß°ßÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¸í·ÉÀ¸·Î ¹ø¿ªÀÚ´Â ¼ºº°À» ¹Ù²ã¼­ (¿ªÀÚÁÖ---¿ø¹®¿¡¼­´Â ¾Õ¿¡¼­ ÆíÀÇ»ó ¹ø¿ªÀÚ¸¦ she, ÇÁ·Î±×·¡¸Ó¸¦ he·Î Ç¥ÇöÇϱâ·Î Á¤Çß´Ù´Â °ÍÀ» »ó±âÇÏÀÚ) ÇÁ·Î±×·¡¸Ó°¡ µÈ´ÙÀ½, ¼öÁ¤ÇÏ°í ½ÍÀº ÇÁ·Î±×·¥ÀÌ µé¾î ÀÖ´Â À©µµ¿ì¿¡ Ä¿¼­¸¦ °¡Á®°¥ °ÍÀÌ´Ù. Ä¿¼­¸¦ PO ÆÄÀÏ À©µµ¿ìÀÇ ¹Ù±ù¿¡ °¡Á®°£ ÈÄ¿¡ À̸ƽº¿¡°Ô ´Ù½Ã PO ÆÄÀÏÀ» ÆíÁýÇϵµ·Ï Çϸé, PO ÆÄÀÏÀÌ ´Ù½Ã µ¹¾Æ¿Ã °ÍÀÌ´Ù.

h (po-help) ¸í·ÉÀº ¸ðµç °¡´ÉÇÑ PO ¸ðµå ¸í·É¾î¸¦ ¿ä¾àÇؼ­ º¸¿©ÁØ´Ù. ¹ø¿ªÀÚ´Â PO ¸ðµå µ¿ÀÛÀ» Àç°³ÇÏ´Â ¶Ç ´Ù¸¥ ¸í·É¾î¸¦ ŸÀÌÇÁÇØ¾ß ÇÑ´Ù. ? ¸í·É¾î´Â h¿Í µ¿ÀÏÇÏ´Ù.

= (po-statistics) ¸í·É¾î´Â PO ÆÄÀÏ Ç׸ñÀÇ Àüü ¼ö¸¦ °è»êÇÏ°í, ÇöÀç Ç׸ñÀÇ À§Ä¡ (1ºÎÅÍ ¼¾´Ù), ¹ø¿ªµÇÁö ¾ÊÀº Ç׸ñ ¼ö, ¾ø¾îÁø Ç׸ñ ¼ö¸¦ °è»êÇÏ°í, ÀÌ ¼ö¸¦ Ç¥½ÃÇÑ´Ù.

V (po-validate) ¸í·ÉÀº ÇöÀç PO ÆÄÀÏ¿¡ ´ëÇØ msgfmtÀ» `--statistics' ¿É¼ÇÀ» ºÙ¿© ½ÇÇàÇÑ´Ù. ÀÌ ¸í·ÉÀº óÀ½¿¡ PO ÆÄÀÏÀ» µð½ºÅ©¿¡ ÀúÀåÇÒ Áö ¹°¾î º»´Ù. GNU gettext¿¡ µé¾î ÀÖ´Â msgfmt µµ±¸´Â PO ÆÄÀÏ¿¡¼­ MO ÆÄÀÏÀ» ¸¸µå´Â ÀÏÀ» ÇÏ°í, PO ¸ðµå´Â PO ÆÄÀÏÀÇ °¢ Ç׸ñ»Ó¸¸ ¾Æ´Ï¶ó PO ÆÄÀÏÀÇ Àüü Çü½Ä±îÁö °Ë»çÇÒ °ÍÀÌ´Ù.

msgfmt ÇÁ·Î±×·¥Àº À̸ƽº ³»¿¡¼­ ºñµ¿±âÀûÀ¸·Î µ¿ÀÛÇϹǷÎ, ¹ø¿ªÀÚ´Â PO ÆÄÀÏÀÌ °Ë»çµÇ´Â µ¿¾È¿¡µµ Áï½Ã·Î ¹ø¿ªÀÚ´Â PO ÆÄÀÏÀ» ÆíÁýÇÒ ¼ö ÀÖ´Ù. ¿À·ù Ãâ·ÂÀº À̸ƽºÀÇ `*compilation*' ¹öÆÛ¿¡ ¸ð¾ÆÁö°í, ¶Ç´Ù¸¥ À©µµ¿ì·Î Ç¥½ÃµÈ´Ù. À̸ƽºÀÇ C-x ` (next-error ¸í·É¾î¿Í ±× ¿ÜÀÇ º¸Åë ÄÄÆÄÀÏ °ü·Ã ¸í·É¾îµéÀ» ÀÌ¿ëÇØ, ¹ø¿ªÀÚ´Â ºü¸£°Ô PO ÆÄÀÏÀÇ À߸øµÈ À§Ä¡·Î Ä¿¼­¸¦ À̵¿ÇÒ ¼ö ÀÖ´Ù. ÀÏ´Ü Ä¿¼­°¡ ¿À·ùÀÇ ÇØ´ç À§Ä¡ À§¿¡ ÀÖÀ¸¸é, ¹ø¿ªÀÚ´Â ¿À·ù¸¦ ¼öÁ¤ÇÒ Áö °áÁ¤ÇÏ°Ô µÈ´Ù.

Ç׸ñ À̵¿

PO ÆÄÀÏ À©µµ¿ìÀÇ Ä¿¼­´Â ¾ðÁ¦³ª ¾î¶² ÇÑ Ç׸ñ À§¿¡ ÀÖ´Ù. ¿¹¿Ü´Â Ä¿¼­°¡ ÆÄÀÏÀÇ ¸¶Áö¸· Ç׸ñ µÚ¿¡ Àְųª, PO ÆÄÀÏ¿¡ ¾Æ¹«°Íµµ ¾øÀ» °æ¿ìÀÌ´Ù. Ä¿¼­°¡ ³õ¿© ÀÖ´Â Ç׸ñÀ» ÇöÀç Ç׸ñ¶ó°í ºÎ¸¥´Ù. ¸¹Àº PO ¸ðµå ¸í·ÉÀº ÇöÀç Ç׸ñ¿¡ ´ëÇØ ÀÛ¿ëÇϹǷÎ, Ä¿¼­¸¦ À̵¿½ÃÅ°´Â °ÍÀº ´ÜÁö PO ÆÄÀÏÀ» º¸´Â °Í ÀÌ»óÀÇ È¿°ú°¡ ÀÖ´Ù. Ä¿¼­ À̵¿Àº Ç׸ñ¿¡ °ü·ÃµÈ ¸í·ÉÀ» ¾î¶² Ç׸ñ¿¡ °¡ÇÒ °ÍÀÎÁö ¼±ÅÃÇÏ´Â ÀÏÀÌ´Ù.

¸î¸î PO ¸ðµå ¸í·ÉÀº Ư¼öÇÑ ¹æ¹ýÀ¸·Î Ä¿¼­ÀÇ À§Ä¡¸¦ À̵¿½ÃŲ´Ù. ÀÌ Æ¯º°ÇÑ À̵¿ ¸í·É¾îµé Áß ÀϺδ ´ÙÀ½¿¡ ¼³¸íµÇ¾î ÀÖ°í, ³ª¸ÓÁö´Â ´ÙÀ½ Àý¿¡ ¼³¸íµÈ´Ù.

.
ÇöÀç Ç׸ñÀ» ´Ù½Ã Ç¥½ÃÇÑ´Ù.
n
n
ÇöÀç Ç׸ñ ´ÙÀ½ÀÇ Ç׸ñÀ» ¼±ÅÃÇÑ´Ù.
p
p
ÇöÀç Ç׸ñ ¾ÕÀÇ Ç׸ñÀ» ¼±ÅÃÇÑ´Ù.
<
PO ÆÄÀÏÀÇ Ã¹¹ø° Ç׸ñÀ» ¼±ÅÃÇÑ´Ù.
>
PO ÆÄÀÏÀÇ ¸¶Áö¸· Ç׸ñÀ» ¼±ÅÃÇÑ´Ù.
m
ÇöÀç Ç׸ñÀÇ À§Ä¡¸¦ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±â·ÏÇÑ´Ù.
l
ÀÌÀü¿¡ ÀúÀåµÈ Ç׸ñ À§Ä¡·Î µ¹¾Æ°£´Ù.
x
ÀÌÀü¿¡ ÀúÀåµÈ Ç׸ñÀÇ À§Ä¡¿Í ÇöÀç Ç׸ñÀÇ À§Ä¡¸¦ ¹Ù²Û´Ù.

¹®ÀÚ ´ÜÀ§ À̵¿, ÁÙ ´ÜÀ§ À̵¿, ¹®´Ü ´ÜÀ§ À̵¿, È­¸éÀ̳ª ÆäÀÌÁö ´ÜÀ§ À̵¿, ã±â ¸í·Éó·³ Ä¿¼­¸¦ À̵¿Çϴµ¥ ¾²ÀÌ´Â ¸ðµç À̸ƽº ¸í·É¾î´Â PO ¸ðµåÀÇ ÇöÀç Ç׸ñÀ» °í¸£´Â µ¥ ¾²ÀÏ ¼ö ÀÖ´Ù. ±×·¯³ª, PO ¸ðµå¿¡¼­ ÇöÀç Ç׸ñÀ» Ç¥½ÃÇÏ´Â ¶Ç ´Ù¸¥ Ç¥ÁØÀûÀÎ ¹æ¹ýÀÌ ÀÖ°í, Ä¿¼­¸¦ À̵¿ÇÏ´Â º¸Åë À̸ƽº ¸í·É¾îµé¿¡¼­´Â ÀÌ·± Á¦ÇÑÀÌ ¾ø´Ù. . (po-current-entry) ¸í·ÉÀÇ À¯ÀÏÇÑ ¸ñÀûÀº ÇöÀç Ç׸ñÀ» ´Ù½Ã Ç¥½ÃÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¸í·É¾î´Â PO ¸ðµå ÀÌ¿ÜÀÇ ¹æ¹ý¿¡ ÀÇÇØ ÇöÀç Ç׸ñÀÌ ¹Ù²î°Å³ª, ±× ¿Ü ´Ù¸¥ ÀÌÀ¯¿¡ ÀÇÇØ À̸ƽº ½ºÅ©¸°ÀÌ ¹Ù²î¾úÀ» °æ¿ì »ç¿ëÇÑ´Ù.

PO mode¿¡¼­ ¹ø¿ªÀÚ°¡ ÀÛ¾÷À» ÇÏ°í ÀÖ´Â µµÁß¿¡ À©µµ¿ì¸¦ °­Á¦·Î ¹èÄ¡ÇÏ´Â °ÍÀÌ ¹ø¿ªÀÚ¸¦ µµ¿ÍÁÖ´Â ÀÏÀÎÁö, ¾Æ´Ï¸é ¾î¼¸é ¹æÇØÇÏ´Â ÀÏÀÎÁö´Â ¾ÆÁ÷ ¾ËÁö ¸øÇÑ´Ù. ¿ì¸®´Â óÀ½¿¡ À©µµ¿ì°¡ ¾î¶»°Ô µ¿ÀÛÇØ¾ß ÇÏ´ÂÁö¿¡ ´ëÇØ »ó´çÈ÷ Á¤È®ÇÑ »ý°¢À» ÇßÁö¸¸, ´Ù¸¥ ÇÑÆíÀ¸·Î À̸ƽº¿¡ Àͼ÷ÇÑ »ç¶÷À̶ó¸é ´©±¸³ª ÄÁÆ®·ÑÀ» Á÷Á¢ °®°í ÀÖ´Â °ÍÀ» ÁÁ¾ÆÇÑ´Ù. ¾Æ¸¶ °íÁ¤µÈ À©µµ¿ì ¹èÄ¡´Â PO ¸ðµåÀÇ ¿É¼ÇÀ¸·Î Á¦°øµÇ¾î ¹ø¿ªÀÚ°¡ ÃëÇâ¿¡ ´Ù¶ó µ¿ÀÛ ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖÀ» °ÍÀÌ°í, ÀÌ ±â´ÉÀº ½ÇÇèÀûÀ¸·Î Á¦°øµÉ °ÍÀÌ´Ù. ¸¸¾à ¾Æ¹«µµ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø°Å³ª, ȤÀº ¹ø¿ªÇÏ´Â µ¥ ¾Ð¹Ú°¨À» Áشٸé ÀÌ·± »ý°¢µéÀ» Ãë¼ÒÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¾î¶»°Ô ÇÒÁö¿¡ ´ëÇÑ ¾ÆÀ̵ð¾î´Â ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ï¶ó ¹ø¿ªÀÚ¿¡°Ô¼­ ³ª¿Í¾ß ÇÑ´Ù. °æÇèÀÖ´Â ¹ø¿ªÀÚÀÇ ÀÇ°ßÀÌ ´Ù¸¥ »ç¶÷ÀÌ ¾î¶² ¹æ¹ýÀ¸·Î ¹ø¿ªÇÒÁö ¿¹»óÇÏ´Â ÇÁ·Î±×·¡¸ÓÀÇ Àǰߺ¸´Ù ÈξÀ °¡Ä¡°¡ ÀÖ´Ù.

n (po-next-entry) ¸í·É°ú p (po-previous-entry) ¸í·ÉÀº Ä¿¼­¸¦ ÇöÀç Ç׸ñÀÇ µÚ ȤÀº ¾Õ Ç׸ñÀ¸·Î À̵¿ÇÑ´Ù. ¸¸¾à nÀÌ PO ÆÄÀÏÀÇ ³¡¿¡¼­ ŸÀÌÇÁµÇ°Å³ª, p°¡ ¸Ç óÀ½ Ç׸ñ¿¡¼­ ŸÀÌÇÁµÉ °æ¿ì¿¡´Â ¾Æ¹«·± À̵¿µµ ÇÏÁö ¾Ê´Â´Ù.

< (po-first-entry) ¸í·É°ú > (po-last-entry) ¸í·ÉÀº Ä¿¼­¸¦ PO ÆÄÀÏÀÇ ¸Ç óÀ½ ȤÀº ¸Ç ¸¶Áö¸· Ç׸ñÀ¸·Î ¿Å±ä´Ù. Ä¿¼­°¡ PO ÆÄÀÏÀÇ ¸¶Áö¸· Ç׸ñ µÚ¿¡ À§Ä¡ÇØ ÀÖÀ» °æ¿ì, ´ëºÎºÐÀÇ PO ¸ðµå ¸í·ÉÀº `After last entry'¶ó°í ¸»Çϸ鼭 ¿À·ù¸¦ ³¾ °ÍÀÌ´Ù. ±×·¯³ª, <°ú > ¸í·ÉÀº Ä¿¼­°¡ PO ÆÄÀÏ Ç׸ñ À§¿¡ ÀÖÁö ¾ÊÀ» °æ¿ì¿¡µµ µ¿ÀÛÇÑ´Ù. ±×¸®°í ÀÌ ¸í·ÉÀ¸·Î PO ÆÄÀÏ Ç׸ñ À§¿¡ ÀÖÁö ¾ÊÀº »óȲÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ ¸í·É¾î¶ó°í ÇÒ Áö¶óµµ ¿ÏÀüÈ÷ ºó PO ÆÄÀÏ¿¡¼­´Â ½ÇÆÐÇÑ´Ù. ÀÌ¿Í °ü·ÃµÈ PO ¸ðµå °³¹ß °èȹÀÇ Çϳª·Î, ¼Ò½º¿¡¼­ºÎÅÍ ºó PO ÆÄÀÏÀ» ´ëÈ­ÀûÀ¸·Î ä¿ö³ª°¡µµ·Ï ÇÏ·Á°í ÇÑ´Ù. See section ¹ø¿ª °¡´ÉÇÑ ¹®ÀÚ¿­ Ç¥½Ã.

¹ø¿ªÀڴ ƯÁ¤ Ç׸ñ¿¡ ¹ø¿ªÀ» Çϱâ Àü¿¡, PO ÆÄÀÏÀÇ µÞºÎºÐÀ» ¹Ì¸® ºÁ¼­ Ȥ½Ã³ª µÚ¿¡µµ ÀÖÀ»Áö ¸ð¸£´Â ¿ë¾î³ª ¹®±¸¸¦ ã¾ÆºÁ¾ß ÇÒÁö °áÁ¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¹°·Ð Ç¥ÁØ À̸ƽº ¸í·ÉÀ» ÀÌ¿ëÇØ ÇöÀç Ä¿¼­ À§Ä¡¸¦ ·¹Áö½ºÅÍ¿¡ ÀúÀåÇÏ°í ±× ·¹Áö½ºÅ͸¦ ÀÌ¿ëÇØ ´Ù½Ã µ¹¾Æ¿À°Å³ª, ȤÀº À§Ä¡ ¸µ(location ring)À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

PO ¸ðµå¿¡¼­´Â ¶Ç ÇÑ °¡Áö ¹æ¹ýÀ¸·Î, Ä¿¼­ÀÇ À§Ä¡¸¦ PO ¸ðµå Àü¿ë ½ºÅÿ¡ ÀúÀåÇÒ ¼ö ÀÖ´Ù. m (po-push-location) ¸í·ÉÀº ÇöÀç Ç׸ñÀÇ À§Ä¡¸¦ ½ºÅÿ¡ ±â·ÏÇÏ´Â Àϸ¸À» ÇÏ°í, ¿¹Àü¿¡ ÀúÀåµÈ Ç׸ñ À§Ä¡¸¦ ÇöÀç ±â·ÏÇÒ À§Ä¡ÀÇ ¾Æ·¡¿¡ ¹Ð¾î³Ö´Â´Ù. r (po-pop-location) ¸í·ÉÀº ½ºÅÃÀÇ ¸Ç À§ ¿ä¼Ò¸¦ ¾ø¾Ö°í, Ä¿¼­¸¦ ±× ¸Ç À§ ¿ä¼Ò¿¡ ÀúÀåµÈ À§Ä¡·Î ¿Å±ä´Ù. ±× ´ÙÀ½¿¡ ±× À§Ä¡´Â ½ºÅÿ¡¼­ »ç¶óÁö°í, ´ÙÀ½ r ¸í·ÉÀº Ä¿¼­¸¦ ±× Àü¿¡ ÀúÀåµÈ À§Ä¡·Î ¿Å±æ °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î ½ºÅÿ¡ ¾Æ¹«°Íµµ ³²¾ÆÀÖÁö ¾ÊÀ» ¶§±îÁö °è¼ÓµÈ´Ù.

¹ø¿ªÀÚ°¡ ÀÌ À§Ä¡ ½ºÅÿ¡ µé¾î ÀÖ´Â À§Ä¡¸¦ ¾Ë°í ½ÍÀº °æ¿ì, Áï ½ºÅÃÀÇ ¸Ç À§¿¡ µé¾î ÀÖ´Â Ç׸ñÀ» º¸°í ½ÍÀ» °æ¿ì¿¡´Â, ³ªÁß¿¡ µ¹¾Æ¿Ã »ý°¢À¸·Î Ä¿¼­¸¦ ´Ù¸¥ ¾îµò°¡·Î À̵¿ÇÑ ´ÙÀ½ r ¹Ù·Î ´ÙÀ½¿¡ mÀ» »ç¿ëÇÏ¸é µÈ´Ù.

x (po-exchange-location) ¸í·ÉÀº Ä¿¼­¸¦ Ç׸ñÀ§Ä¡°¡ ÀúÀåµÈ ½ºÅÃÀÇ ¸Ç À§ ¿ä¼Ò¿¡ ¿¬°áµÈ Ç׸ñ¿¡ À̵¿ÇÏ´Â µ¿½Ã¿¡, ½ºÅÃÀÇ ¸Ç À§ ¿ä¼Ò¸¦ À̵¿ ÀüÀÇ ÇöÀç Ç׸ñÀ¸·Î ¹Ù²Û´Ù. °á°úÀûÀ¸·Î x ¸í·ÉÀ» ¹Ýº¹ÇÏ¸é µÎ°³ÀÇ Ç׸ñÀ» °è¼Ó ¿Ô´Ù°¬´ÙÇÏ°Ô µÈ´Ù. ÀÌ·¸°Ô ÇÏ°í ½ÍÀº °æ¿ì¿¡, óÀ½¿¡ Ç׸ñ¿¡¼­ mÀ» »ç¿ëÇÏ°í ±× ´ÙÀ½ Ç׸ñ¿¡¼­ x¸¦ ÀÌ¿ëÇØ ¿Ô´Ù°¬´ÙÇÒ ¼ö ÀÖ´Ù.

Ç׸ñÀÇ ¹®ÀÚ¿­ Ç¥ÁØÈ­

PO ÆÄÀÏ Ç׸ñ¿¡ ¾î¶² ¹®ÀÚ¿­À» ÀÎÄÚµùÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ¿©·¯ÁÙÀÇ ¹®ÀÚ¿­À» ¾î¶»°Ô ÂÉ°³´ÂÁöµµ ¿©·¯ °¡Áö ¹æ¹ýÀÌ ÀÖÀ» »Ó ¾Æ´Ï¶ó, ¹é½½·¡½¬·Î ½ÃÀÛÇÏ´Â À̽ºÄÉÀÌÇÁ ½ÃÄö½º(escaped sequence)·Î Ư¼ö ¹®ÀÚ¸¦ Ç¥ÇöÇÏ´Â ¹æ¹ýµµ ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ¸î °¡Áö PO ¸ðµåÀÇ ±â´ÉµéÀº ¾î¶² Ç׸ñÀÇ msgid Çʵ忡 ¾î¶² ¹®ÀÚ¿­ÀÌ µé¾î ÀÖ´Ù°í °¡Á¤ÇÏ°í PO ÆÄÀÏÀ» scanÇÏ´Â ´É·Â¿¡ ÀÇÁ¸ÇÑ´Ù. PO ÆÄÀÏÀÇ ³»ºÎ¿¡ ÀÌ ÀÎÄÚµùÀ» ½±°Ô ¾Ë¾Æ³»´Â ³»ºÎ µµ±¸°¡ ÀÖ´Ù°í Çصµ, ÀÌ·¸°Ô ¾Ë¾Æ³»´Â ÀÏÀ» ºü¸£°Ô Çϱâ´Â ±â¼úÀûÀ¸·Î ¾î·Æ´Ù. ÀÌ È¿À²¼º ¹®Á¦¿¡ ´ëÇÑ ÇØ´äÀ¸·Î, ¿ì¸®´Â Ç¥ÁØÈ­µÈ ¹®ÀÚ¿­ Ç¥ÇöÀ» ¾²±â·Î °áÁ¤ÇÏ¿´´Ù.

PO ÆÄÀÏ¿¡ ¹®ÀÚ¿­À» Ç¥ÇöÇÏ´Â ½À°üÀº ÇöÀç Åä·ÐÁßÀÌ°í, PO ¸ðµå¿¡¼­´Â Ç¥ÁØÈ­µÈ Ç¥ÇöÀ» ½ÇÇèÇÏ°í ÀÖ´Ù. xgettext¿Í PO ¸ðµå¸¦ µ¿½Ã¿¡ »ç¿ëÇÏ¿© µ¿ÀÏÇÑ ¹®ÀÚ¿­À» µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î Ç¥ÇöÇϵµ·Ï ÀÏÄ¡½ÃÅ°´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù. ±×¸®°í PO ¸ðµå¿¡¼­ ÇÊ¿äÇÑ Ç¥ÁØÈ­´Â GNU gettextÀÇ xgettext¸¦ »ç¿ëÇϱ⸸ Çϸé ÀÚµ¿À¸·Î ¸¸Á·µÉ °ÍÀÌ´Ù. Á÷Á¢ PO ¸ðµå Ç¥ÁØÈ­¸¦ ÇØ¾ß ÇÏ´Â °æ¿ì´Â ¿ÜºÎ¿¡¼­ °¡Á®¿Â PO ÆÄÀÏÀ̳ª, ÀÌ ±Ô¹ü ÀÚü°¡ ¹Ù²ð °æ¿ì¿¡¸¸ ÇÊ¿äÇÏ´Ù.

±×·¯¹Ç·Î, Àû¾îµµ ÁÖ¾îÁø ÆÄÀÏÀÇ ¹®ÀÚ¿­À» Ç¥ÁØÈ­ÇÒ °æ¿ì¿¡, ´ÙÀ½ PO ¸ðµå ¸í·É¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù:

M-x po-normalize
Ç׸ñµéÀ» Á»´õ ºñ½ÁÇÑ ÇüÅ·Π¸¸µé¾î¼­ PO ÆÄÀÏÀ» Á¤µ·ÇÑ´Ù.

M-x po-normalize(ÇØ´çµÇ´Â Å°°¡ ¾ø´Ù) ¸í·ÉÀº ¸ðµç Ç׸ñÀ» °Ë»çÇÏ°í PO ÆÄÀÏ ³»ÀÇ ¸ðµç ¿ø ¹®ÀÚ¿­°ú ¹ø¿ªµÈ ¹®ÀÚ¿­ÀÌ ÅëÀÏµÈ ÇüÅ·Πµû¿ÈÇ¥¸¦ ¾²µµ·Ï ÇÑ´Ù. ¶ÇÇÑ ¸¶Áö¸· Ç׸ñ µÚ¿¡ ÀÖ´Â ºÎ½º·¯±âµéµµ Á¦°ÅÇÑ´Ù. ÀÌ ¸í·ÉÀº ´Ù¸¥ µ¥¼­ óÀ½ °¡Á®¿Â PO ÆÄÀÏÀ̰ųª, ¿ì¸®°¡ »ç¿ëÇÒ Ç¥ÁØÀûÀÎ µû¿ÈÇ¥ Çü½ÄÀ» ´õ ³´°Ô ¹Ù²Ü ¶§ À¯¿ëÇÏ´Ù. ÀÌ Ç¥ÁØ Çü½ÄÀº ±ú²ýÇÑ PO ÆÄÀϸ¸À» À§ÇÑ °ÍÀÌ ¾Æ´Ï¶ó, ´Ù¸¥ PO ¸ðµå ¸í·ÉÀÌ msgid ¹®ÀÚ¿­À» »¡¸® ãµµ·Ï Çϱâ À§ÇÑ °ÍÀ̱⵵ ÇÏ´Ù.

ÇöÀç M-x po-normalize´Â ´Ù¸¥ Ç׸ñµé¿¡ ´ëÇؼ­ ¼¼ ´Ü°è¸¦ °ÅÄ£´Ù. ù¹ø°´Â GNU gettext 0.6 ÀÌÀüÀÇ PO ÆÄÀÏÀ» ¹Ù²Ù´Â ÈÞ¸®½ºÆ½À¸·Î, 0.6 ÀÌÀü¿¡¼­´Â msgid¿Í msgstr Çʵ忡¼­ ¿©·¯ÁÙÀÇ ¹®ÀÚ¿­À» ¾µ ¶§ K&R ½ºÅ¸ÀÏÀÇ C ¹®ÀÚ¿­ ¹®¹ýÀ» »ç¿ëÇÑ´Ù. ÀÌ Ã¹¹ø° ÈÞ¸®½ºÆ½Àº ¾ø¾îÁø Ç׸ñÀÌ ¾Æ´Ï¾îµµ ¹é½½·¡½¬·Î ³¡³ª´Â ÁÖ¼®¹®¿¡ ´ëÇؼ­´Â ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù; ÀÌ Ã¹¹ø° ÈÞ¸®½ºÆ½Àº ÀÌ µÚ¿¡ ¿Ã ´Ü°è¿¡ ÀÇÁ¸ÇÏ´Â µ¥, µÚÀÇ ´Ü°è¿¡¼­ ¾ø¾îÁø Ç׸ñ¿¡¼­ °è¼ÓµÇ´Â ÁÙÀ» Á¦´ë·Î ÁÖ¼®Ã³¸®ÇÑ´Ù. µÎ ¹ø°¿Í ¼¼ ¹ø° ´Ü°è´Â °¢°¢ msgid¿Í msgstrÀ» Ç¥ÁØÈ­ÇÏ´Â ´Ü°èÀÌ´Ù. ÀÌµé ´Ü°è¿¡¼­´Â XViewÀÇ msgfmt¿¡¼­ ¾²ÀÌ´Â ¹æ½ÄÀÇ ¿¬°áµÇ´Â ÁÙ ³¡ÀÇ ¹é½½·¡½¬µéÀ» ¾ø¾Ø´Ù.

ÀÌ·¸°Ô Á÷Á¢ Ç¥ÁØÈ­ÇÏ´Â ¸í·ÉÀÌ ÀÖÀ¸¸é ¶Ç´Ù¸¥ °÷¿¡¼­ PO ÆÄÀÏÀ» °¡Á®¿Ã ¼ö ÀÖÁö¸¸, ÇöÀç ½À°üÀ» Çâ»ó½ÃÅ°´Â °Íµµ ½¬¿öÁø´Ù. ÇöÀç ÀÌ·¸°Ô Çâ»óµÇ´Â Á¡Àº ´ëºÎºÐ ¹ÌÀûÀÎ »ý°¢¿¡¼­ ³ª¿Â °ÍµéÀÌ´Ù. ¿©±â¿¡ °üÇØ Á¦¾ÈµÈ »çÇ×µéÀº ³ªÁß¿¡, Ç¥ÁØÈ­ ¸í·É°ú ´Ù¸¥ GNU gettext µµ±¸°¡ ÀÚµ¿À¸·Î ÀÌ ¿øÄ¢À» µû¸£°Ô µÉ ¶§ ¸¸µå´Â ÆíÀÌ ÁÁÀ» °ÍÀÌ´Ù. Ç¥ÁØÀûÀÎ ¹®ÀÚ¿­ Çü½ÄÀº ¾Æ·¡¿¡ ¼³¸íµÇ¾î Àִµ¥, À̸ƽº¿¡ Àͼ÷ÇØ ÀÖÁö ¾ÊÀº »ç¶÷°ú, PO ÆÄÀÏÀ» Àý´ë ¸ÚÁø ¹æ¹ýÀ» ½á¼­ ´ÙµëÀ¸·Á ÇÏÁö ¾Ê´Â »ç¶÷µéÀ» À§ÇØ ¼³¸íÇÏ¿´´Ù.

ÇöÀç PO ¸ðµå¿¡¼­, ¹®ÀÚ¿­Àº ÇÑ ÁÙÀ̰ųª ¿©·¯ ÁÙÀÌ´Ù. ¹®ÀÚ¿­Àº ÁٹٲÞÀÌ Çϳª¶óµµ Æ÷ÇԵǾî ÀÖÀ¸¸é ¿©·¯ÁÙÀÌ µÇ°í, ¿©·¯ÁÙÀÌ µÇ´Â °æ¿ì´Â ÁٹٲÞÀÌ ÀÖ´Â °æ¿ì»ÓÀÌ´Ù. Áï ¹®ÀÚ¿­ÀÌ `[^\n]\n+[^\n]'¿¡ ¸Â´Â °æ¿ìÀÌ´Ù. Áï, ¿ì¸®´Â ´ÙÀ½°ú °°Àº ¹®ÀÚ¿­À» ¸¸³¯ ¼öµµ ÀÖ´Ù:

msgstr "\n\nHello, world!\n\n\n"

ÇÏÁö¸¸ Áٹٲ޿¡ µû¶ó ±¸ºÐÇϸé, ´ÙÀ½°ú °°ÀÌ µÈ´Ù:

msgstr ""
"\n"
"\n"
"Hello,\n"
"world!\n"
"\n"
"\n"

¿ì¸®´Â ½ÅÁßÇÏ°Ô ¿¹¸¦ »ç¿ëÇØ ¿ÔÁö¸¸, ¿©±â¼­ ¸íÈ®È÷ ÇÏ°Ú´Ù. ´ëºÎºÐ ¿©·¯ÁÙÀÌ ÀÖ´õ¶óµµ ±×·¸°Ô ¸ø »ý±âÁö´Â ¾Ê´Ù. ¾Æ¸¶µµ ´ÙÀ½ Á¦¾È¿¡ µû¶ó ±¸ÇöÇÒ °ÍÀÌ´Ù. ¸Ç ¾Õ¿¡ ÁٹٲÞÀÌ ÀÖÀ¸¸é ÀÏ´Ü Ã¹ÁÙÀ» ºó ¹®ÀÚ¿­·Î ¸¸µé°í, ¿¬¼ÓµÈ ¸ðµç ÁٹٲÞÀ» ºóÁÙ·Î ¸¸µç´Ù (Áï, n > 1ÀÎ °æ¿ì, n-1¹ø° ¸¶Áö¸· ÁٹٲޱîÁö ÇϳªÀÇ ¹®ÀÚ¿­ÀÌ µÈ´Ù). ÀÌ·¸°Ô Çؼ­ À§ÀÇ ¿¹¸¦ ´ÙÀ½°ú °°ÀÌ ¸¸µç´Ù:

msgstr "\n\n"
"Hello,\n"
"world!\n"
"\n\n"

¹®ÀÚ¿­ Ç¥ÁØÈ­¿¡ ´ëÇØ ¾ÆÁ÷ °áÁ¤µÇÁö ¾ÊÀº ÀÛÀº »çÇ×µéÀÌ ¸î °¡Áö Àִµ¥, ÀÌ Àǹ®Á¡µéÀÌ ÇØ°áµÇ¸é ÀÌ ¾È³»¼­¿¡ ¹®¼­È­ÇÒ °ÍÀÌ´Ù.


Go to the first, previous, next, last section, table of contents.