[Top] [Contents] [Index] [ ? ]

GNU gettext¥æ¡¼¥Æ¥£¥ê¥Æ¥£

1. ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó  
2. PO¥Õ¥¡¥¤¥ë¤ÈPO¥â¡¼¥É¤Î´ðËÜ  
3. ¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î½àÈ÷  
4. ºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤Î½àÈ÷  
5. ´û¸¤ÎPO¥Õ¥¡¥¤¥ë¤Î¹¹¿·  
6. MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®  
7. ¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ  
8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ  
9. ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ  
10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ  
11. ·ëÏÀ  

A. ¹ñ²È¥³¡¼¥É  ISO 639¹ñ²È¥³¡¼¥É

 -- The Detailed Node Listing ---

¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó

1.1 GNU gettext¤ÎÌÜŪ  
1.2 ¹ñºÝ²½, ÃÏ°è²½, ¤ª¤è¤Ó¤½¤ì¤ËÎह¤ë¤â¤Î  
1.3 ¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Î³Æ¦ÌÌ  
1.4 ¥Õ¥¡¥¤¥ë¤ÎËÝÌõ¤Îή¤ì  
1.5 GNU gettext¤Î³µÍ×  

PO¥Õ¥¡¥¤¥ë¤ÈPO¥â¡¼¥É¤Î´ðËÜ

2.1 GNU gettext¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë  
2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È  
2.3 PO¥â¡¼¥É¤Î¼çÍפʥ³¥Þ¥ó¥É  
2.4 ¥¨¥ó¥È¥ê¤Î°ÌÃÖ  
2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½  

¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î½àÈ÷

3.1 gettext¤Î½èÍý¤ò¥È¥ê¥¬¤¹¤ë  
3.2 ¥½¡¼¥¹Ãæ¤Ç¤Î¥Þ¡¼¥¯ÉÕ¤±¤ÎÊýË¡  
3.3 ËÝÌõÂоÝʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±  
3.4 ³¤¯Ê¸»úÎó¤Ë´Ø¤·¤Æ²¿¤«¤òÅÁ¤¨¤ë¤³¤È  
3.5 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó  

ºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤Î½àÈ÷

4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°  
4.2 C¥½¡¼¥¹¤Îʸ̮  
4.3 ËÝÌõÍ×Ìóµ¡Ç½¤Î»ÈÍÑ  

´û¸¤ÎPO¥Õ¥¡¥¤¥ë¤Î¹¹¿·

5.1 msgmerge¥×¥í¥°¥é¥à¤Îµ¯Æ°  
5.2 ËÝÌõºÑ¤ß¥¨¥ó¥È¥ê  
5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê  
5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê  
5.5 Çѻߥ¨¥ó¥È¥ê  
5.6 ËÝÌõ¤Î½¤Àµ  
5.7 ¥³¥á¥ó¥È¤Î½¤Àµ  
5.8 Êä½õPO¥Õ¥¡¥¤¥ë¤ò»²¹Í¤Ë¤¹¤ë  

MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®

6.1 msgfmt¥×¥í¥°¥é¥à¤Îµ¯Æ°  
6.2 GNU MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È  

¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ

7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ  
7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡  
7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡  

¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ

8.1 catgets¤Ë¤Ä¤¤¤Æ  
8.2 gettext¤Ë¤Ä¤¤¤Æ  
8.3 Æó¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÈæ³Ó  
8.4 Æȼ«¤Î¥×¥í¥°¥é¥à¤Çlibintl.a¤ò»È¤¦  
8.5 Being a gettext grok  
8.6 ¥×¥í¥°¥é¥Þ¤Î¾Ï¤Ë¤Ä¤¤¤Æ¤Î°ì»þŪ¤Ê¥á¥â  

catgets ¤Ë¤Ä¤¤¤Æ

8.1.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹  catgets¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
8.1.2 catgets¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!  

gettext ¤Ë¤Ä¤¤¤Æ

8.2.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹  
8.2.2 Û£Ë椵¤Î²ò·è  
8.2.3 ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤Î½êºß  
8.2.4 gettext´Ø¿ô·²¤ÎºÇŬ²½  

¥×¥í¥°¥é¥Þ¤Î¾Ï¤Ë´Ø¤¹¤ë°ì»þŪ¤Ê¾ðÊó

8.6.1 °ì»þŪ¤Ê¾ðÊó - Æó¤Ä¤Î¼ÂÁõ  
8.6.2 °ì»þŪ¤Ê¾ðÊó - catgets¤Ë¤Ä¤¤¤Æ  
8.6.3 °ì»þŪ¤Ê¾ðÊó - ¤Ê¤¼°ì¤Ä¤Î¼ÂÁõ¤Ê¤Î¤«  
8.6.4 °ì»þŪ¤Ê¾ðÊó - ¥Î¡¼¥È  

ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ

9.1 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó0  
9.2 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó1  
9.3 µÄÏÀ  
9.4 ÁÈ¿¥  
9.5 ¾ðÊó¤Îή¤ì  

ÁÈ¿¥²½

9.4.1 Ãæ±û¤Ë¤è¤ëÄ´À°  
9.4.2 ¹ñ²È¥Á¡¼¥à  
9.4.3 ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È  

National Teams

9.4.2.1 ¥µ¥Ö¥«¥ë¥Á¥ã¡¼  
9.4.2.2 ÁÈ¿¥²½¤Ø¤Î¥¢¥¤¥Ç¥£¥¢  

ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ

10.1 ¥Õ¥é¥Ã¥È¤Þ¤¿¤Ï¥Î¥ó¥Õ¥é¥Ã¥È¤Ê¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤  
10.2 »öÁ°¤ËɬÍפʺî¶È  
10.3 gettextize¥×¥í¥°¥é¥à¤Îµ¯Æ°  
10.4 ºîÀ®¤¹¤ë¤«Êѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë  

ºîÀ®¤Þ¤¿¤Ï½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¥Õ¥¡¥¤¥ë

10.4.1 `po/'°Ê²¼¤Î`POTFILES.in'  
10.4.2 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`configure.in'  
10.4.3 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`aclocal.m4'  
10.4.4 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`acconfig.h'  
10.4.5 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`Makefile.in'  
10.4.6 `src/'°Ê²¼¤Î`Makefile.in'  

·ëÏÀ

11.1 GNU gettext¤ÎÎò»Ë  
11.2 »²¹Íʸ¸¥  


1. ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó

¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï¤Þ¤À¥É¥é¥Õ¥È¾õÂ֤Ǥ¢¤ê¡¢´ö¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤Ï¤Þ¤À¶õ ¤«¤½¤ì¤Ë¶á¤¤¾õÂ֤Ǥ¹¡£²æ¡¹¤ÏºîÀ®¤¬ÃÙ¤ì¤Æ¤¤¤ëÉôʬ¤òÅý¹ç¤·¤Ê¤¬¤é¡¢Â¾¤Î¾ðÊó¸» (ÆäËÅŻҥ᡼¥ë¤Î¥Õ¥©¥ë¥À)¤«¤éŬÀÚ¤ÊÅý¹ç¤¬ÃÙ¤ì¤Æ¤¤¤ë»ñÎÁ¤ò¼è¤ê¹þ¤ß³¤±¤Æ¤¤ ¤Þ¤¹¡£

¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤äÊݼéôÅö¼Ô¤Ë¤Ä¤¤¤ÆÏ乤Ȥ­¤Ë¤ÏÈà ¤ò¡¢ËÝÌõ¼Ô¤È¤·¤ÆÈà½÷¤ò¡¢ËÝÌõºÑ¤ß¥×¥í¥°¥é¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¿Í ¤ä¥¨¥ó¥É¥æ¡¼¥¶¤È¤·¤ÆÈà¤é¤È¤¤¤¦Ã±¸ì¤ò»ÈÍѤ¹¤·¤Þ¤¹¡£¤³¤ì¤Ï¤³¤Î¥É¥­¥å ¥á¥ó¥È¤òÌÀ²÷¤Ë¤¹¤ë¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ê¡¢·è¤·¤ÆÃËÀ­¤ä½÷À­¤¬²¿¤«¤é ¤ÎÌò³ä¤ò²Ì¤¿¤¹¤Î¤Ë¤è¤êŬ¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤ò°Å¼¨¤¹¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤·¤Æ¤Þ¤¿¡¢¤¢¤Ê¤¿¤¬¹Í¤¨¤ëÄ̤ꡢGNU gettext¤ÏÀ­Ê̤ä¿Í¼ï¡¢½¡¶µ¤ä ¹ñÀÒ¤òÌä¤ï¤º¥³¥ó¥Ô¥å¡¼¥¿¤ò°·¤¦¿Í¡¹¤Ë¤È¤Ã¤Æ¤È¤Æ¤âÊØÍø¤Ê¤â¤Î¤Ê¤Î¤Ç¤¹¡£

¤³¤Î¾Ï¤Ç¤Ï GNU gettext¤ÎÁϤ¤È¡¢¥Õ¥ê¡¼¤ÎËÝÌõ¥×¥í¥¸¥§¥¯¥È (Translation Project)¤¬Ìܻؤ¹¥´¡¼¥ë¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¤½¤·¤Æ¤Þ¤¿¡¢¥Í¥¤ ¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸(Native Language)¤Î¥µ¥Ý¡¼¥È¤ò¼è¤ê´¬¤¯´ö¤Ä¤«¤ÎÉý¹­¤¤¥³¥ó ¥»¥×¥È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¡¢(¥×¥í¥°¥é¥à¤ËŬÍѲÄǽ¤Ê¤â¤Î¤È¤·¤Æ¤Î)¹ñ¤Þ¤¿¤Ïʸ²½Åª ¤ÊÆÃħ¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸ËÝÌõ¤Î°ÌÃÖÉÕ¤±¤Ë¤Ä¤¤¤Æµ¬Äꤷ¤Þ¤¹¡£Æ±Íͤˡ¢¥Õ¥¡¥¤ ¥ë¤ÎËÝÌõ¤Îή¤ì¤È¡¢¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤«¤é¸å¡¹¤ÎÊݼé¤Î¥µ¥¤¥¯¥ë¤Ë»ê¤ë¤Þ ¤Ç¤Î³Æ¼ï¥Ä¡¼¥ë¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¤âÀâÌÀ¤·¤Þ¤¹¡£

Äó°Æ¤äÄûÀµ¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤ØÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£

 
Internet address:
    [email protected]

¥Þ¥Ë¥å¥¢¥ë¤ÎÈÇÈÖ¹æ¤È¡¢¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤¿ÆüÉÕ¤òÉÕµ­¤·¤Æ²¼¤µ¤¤¡£

1.1 GNU gettext¤ÎÌÜŪ  
1.2 ¹ñºÝ²½, ÃÏ°è²½, ¤ª¤è¤Ó¤½¤ì¤ËÎह¤ë¤â¤Î  
1.3 ¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Î³Æ¦ÌÌ  
1.4 ¥Õ¥¡¥¤¥ë¤ÎËÝÌõ¤Îή¤ì  
1.5 GNU gettext¤Î³µÍ×  


1.1 GNU gettext¤ÎÌÜŪ

Ä̾¥×¥í¥°¥é¥à¤È¥É¥­¥å¥á¥ó¥È¤Ï±Ñ¸ì¤Çµ­½Ò¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¥×¥í¥°¥é¥à¤¬¥æ¡¼ ¥¶¤ÈÂÐÏ乤ëºÝ¤Ë¤â±Ñ¸ì¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£¤³¤ì¤Ï GNU ¤Ë¤è¤ë¥½¥Õ¥È¥¦¥§¥¢¤Ð¤«¤ê ¤Ç¤Ï¤Ê¤¯¡¢Â¿¤¯¤Î¾¦ÍÑ¥½¥Õ¥È¥¦¥§¥¢¤ä¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤âƱÍͤǤ¹¡£¶¦Ä̸À¸ì (common language)¤Ï¡¢³«È¯¼Ô(developer)¤äÊݼéôÅö¼Ô(maintainer)¤¬Á´¤Æ¤Î¹ñ¤Î ¥æ¡¼¥¶¤È¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¤ò¼è¤ë¤¿¤á¤Ë¤Ï¼Â¤ËÊØÍø¤Ç¤¹¡£¤½¤Î°ìÊý¤Ç¡¢Â¿¤¯¤Î¿Í¡¹ ¤ÏÊì¹ñ¸ì¤Û¤É¾å¼ê¤Ë¤Ï±Ñ¸ì¤ò»È¤¨¤Þ¤»¤ó¡£¤½¤·¤ÆÆü¡¹¤Îºî¶È¤Ç¤â½ÐÍè¤ë¤³¤È¤Ê¤éÊì ¹ñ¸ì¤¬»È¤¨¤ë¤³¤È¤ò˾¤à¤Ç¤·¤ç¤¦¡£Â¿¤¯¤Î¿Í¤Ï¥³¥ó¥Ô¥å¡¼¥¿¤Î²èÌ̤ˤϼç¤ËÊì¹ñ¸ì ¤¬É½¼¨¤µ¤ì¡¢±Ñ¸ì¤ÏɬÍ׺Ǿ®¸Â¤Ç¤¢¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£

¤·¤«¤·¤Ê¤¬¤é¿¤¯¤Î¿Í¡¹¤Ë¤È¤Ã¤Æ¡¢¤½¤ì¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë»þ´Ö¤òÈñ¤ä¤¹¤³¤È¤µ¤¨¤â²Á ÃͤΤʤ¤¤³¤È¤À¤È¹Í¤¨¤é¤ì¤ë¤Û¤É¡¢¤³¤ÎÌ´¤Ï¼Â¸½¤Ë¤Ï±ó¤¤¤â¤Î¤À¤Ã¤¿¤«¤â¤·¤ì¤Þ¤» ¤ó¡£Èà¤é¤Ï¤½¤ó¤ÊÌ´¤¬¼Â¸½¤¹¤ë¤Ê¤ó¤Æ¹Í¤¨¤Æ¤â¤ß¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¡£¤½¤ì¤Ç¤â¡¢Â¿¤¯ ¤Î¿Í¤Ï´õ˾¤ò¼Î¤Æ¤º¡¢Èà¤é¤ÎÁÈ¿¥¤ò·ëÀ®¤·¤Þ¤·¤¿¡£¡ÖËÝÌõ¥×¥í¥¸¥§¥¯¥È(The Translation Project)¡×¤Ï¡¢¤³¤Î´õ˾¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ê¡¢¥×¥í¥°¥é¥à¤Î ¿¿¤Î¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¥»¥Ã¥È(multi-lingual set)¤ÎãÀ®¤Ë»ê¤ë¤¿¤á¤Î¤è¤¤µ¡²ñ¤Ç¤¹¡£

GNU gettext¤Ï¡¢ÍÍ¡¹¤Ê¾¤Î¥¹¥Æ¥Ã¥×¤òƧ¤ß½Ð¤¹¤¿¤á¤Îºâ»º¤È¤Ê¤ë¡¢ËÝÌõ¥× ¥í¥¸¥§¥¯¥È¤ÎÂçÀÚ¤ÊÂè°ìÊâ¤Ç¤¹¡£¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¥×¥í¥°¥é¥Þ¡¢ËÝÌõ¼Ô¤½¤·¤ÆÁ´¤Æ ¤Î¥æ¡¼¥¶¤Ë¡¢Åý¹ç¤µ¤ì¤¿¥Ä¡¼¥ë·²¤È¥É¥­¥å¥á¥ó¥ÈÎà¤òÄ󶡤·¤Þ¤¹¡£Æäˡ¢GNU gettext¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¾¤ÎGNU¥Ñ¥Ã¥±¡¼¥¸¤¬¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¤Ê¥á¥Ã¥»¡¼ ¥¸¤ò°·¤¨¤ë¤è¤¦¤Ê¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÄ󶡤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥Ä¡¼¥ë¤Ë¤Ï¡¢¥á¥Ã¥»¡¼¥¸ ¥«¥¿¥í¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥í¥°¥é¥à¤ÎºîÀ®ÊýË¡¤ÎÄêµÁ¡¢¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥Ç¥£ ¥ì¥¯¥È¥êµÚ¤Ó¥Õ¥¡¥¤¥ë·²¤Î̿̾µ¬Â§¡¢ËÝÌõºÑ¤ß¥á¥Ã¥»¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥é¥ó¥¿ ¥¤¥à¥é¥¤¥Ö¥é¥ê¡¢ÍÍ¡¹¤ÊÊýË¡¤ÇËÝÌõ¤µ¤ì¤¿Ê¸»úÎó¤Î½¸¹ç¤ò¼è¤ê°·¤¦¤¿¤á¤ÎÆÈΩ¤·¤¿ ¥×¥í¥°¥é¥à·²¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤ì¤é¤ò½àÈ÷¤·¤¿¤êºÇ¿·¤Î¤â¤Î¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ GNU EmacsÍѤÎÆÃÊ̤ʥ⡼¥É¤â¤Þ¤¿Ìò¤ËΩ¤Ä¤Ç¤·¤ç¤¦¡£

GNU gettext¤Ï¥×¥í¥°¥é¥à¥½¡¼¥¹¤ËÂФ¹¤ë¹ñºÝ²½¤Î±Æ¶Á¤¬²Äǽ¤Ê¸Â¤ê¾®¤µ¤¯¡¢ ¤½¤·¤ÆÌÜΩ¤Á¤Ë¤¯¤¯¤Ê¤ë¤è¤¦¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤òį¤á ¤ëºÝ¡¢¹ñºÝ²½¤Î±Æ¶Á¤¬¤´¤¯¶Ï¤«¤«¡¢¤¢¤ë¤¤¤Ï¾¯¤Ê¤¯¤È¤â±Æ¶Á¤¬¾®¤µ¤¤¤È»×¤¨¤ë¤Î¤Ç ¤¢¤ì¤Ð¡¢¹ñºÝ²½¤Ï¤è¤êÀ®¸ù¤·¤ä¤¹¤¤¤³¤È¤Ç¤·¤ç¤¦¡£

ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Ï¤Þ¤¿¡¢¤½¤Î¹½Â¤µÚ¤ÓÊýË¡¤òÅÁ㤹¤ë¤¿¤á¤ÎÇÞÂΤȤ·¤ÆGNU gettext¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï gettext¤òµ­½Ò¤¹¤ë¸·Ì©¤ÊÀìÌçŪ»ö¹à¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢ËÝÌõ¼Ô¤Ï ËÝÌõ¤ÎÂоݤȤʤë¤â¤ÎÁ´¤Æ¤ò²Äǽ¤Ê¸Â¤ê°ì¥ö½ê¤Ç¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê ¤Þ¤¹¡£¤³¤ÎÊä½õ¥É¥­¥å¥á¥ó¥È¤â¡¢GNU gettext¤¬¤É¤Î¤è¤¦¤ËËÝÌõ¥×¥í¥¸¥§¥¯ ¥È¤Î»Äºî¶È¤Ë´ØÏ¢¤·¤Æ¤¤¤ë¤«¤Ë¤Ä¤¤¤Æ¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¡¢¤½¤Î·ë²Ì¤È¤·¤Æ Â礭¤Ê°ìË糨¤ò³À´Ö¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥ÞµÚ¤Ó¹¥´ñ¿´¤Î¶¯¤¤¥æ¡¼¥¶¤ÎÌò ¤ËΩ¤Ä¤³¤È¤Ç¤·¤ç¤¦¡£


1.2 ¹ñºÝ²½, ÃÏ°è²½, ¤ª¤è¤Ó¤½¤ì¤ËÎह¤ë¤â¤Î

¥×¥í¥°¥é¥à¤Ç¤Î¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¤È¤­¤Ï¡¢¾ï¤ËÆó ¤Ä¤Î¸·Ì©¤Ê°ÕÌ£¤ò»ý¤ÄŤ¤Ã±¸ì¤¬Åо줷¤Þ¤¹¡£internationalization¤È localization¡¢¤³¤ÎÆó¤Ä¤Îñ¸ì¤Ë¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î¤¿¤á¤Ë¤³¤³¤Ç ÀâÌÀ¤¹¤ë¤À¤±¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£¤³¤ÎÆó¤Ä¤ÎŤ¤Ã±¸ì¤ò·«¤êÊÖ¤··«¤êÊÖ¤·½ñ¤¯¤³ ¤È¤ËÈè¤ì¤Æ¤·¤Þ¤Ã¤¿Â¿¤¯¤Î¿Í¡¹¤Ï¡¢¤½¤ì¤ò¤­¤Á¤ó¤È½ñ¤¯Âå¤ï¤ê¤Ë¡¢ÀèƬ¤ÈºÇ¸å¤Î ʸ»ú¤ò»Ä¤·¡¢¤½¤Î´Ö¤Ë¤¢¤ëʸ»úÎó¤ò¤½¤ÎŤµ¤ÇÃÖ¤­´¹¤¨¤Æi18n¤È l10n ¤È½ñ¤¯¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¤·¤«¤·¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ïʪ»ö¤òÌÀ³Î¤Ë¤¹ ¤ë¤¿¤á¤Ë¡¢¤½¤Î¤¿¤Ó¤Ë¤­¤Á¤ó¤ÈÀµ³Î¤Ë½ñ¤¯¤³¤È¤Ë¤·¤Þ¤¹...

¹ñºÝ²½(internationalization)¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤È¤Ê ¤ë¥×¥í¥°¥é¥à·²¤Ë¤ª¤±¤ë½èÍý¤ÏÊ£¿ô¤Î¸À¸ì¤òǧ¼±¤·¥µ¥Ý¡¼¥È¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê ¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥à¤«¤é±Ñ¸ì¤Îʸ»úÎó¤ä¤½¤Î¾¤Î±Ñ¸ìÆÃÍ­¤Î´·½¬¤òÀÚ¤êÎ¥¤· ¤Æ¡¢¤½¤ÎÂå¤ï¤ê¤ËƱ¤¸¤³¤È¤ò¹Ô¤¦°ìÈÌŪ¤ÊÊýË¡¤ò¹Íθ¤¹¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢°ìÈ̲½¤Î¥× ¥í¥»¥¹¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤Î³«È¯¼Ô¤Ï¡¢¼«Ê¬¤¬ºîÀ®¤¹¤ë¥×¥í¥°¥é¥à¤Ë ÂФ·¤ÆÍÍ¡¹¤Ê¹ñºÝ²½¤Îµ»Ë¡¤ò»È¤¦¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¤¦¤Á¤Î´ö¤Ä¤«¤Ïɸ½àŪ¤Ê¤â¤Î¤È ¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£gettext¤Ï¤³¤ì¤é¤Îɸ½à¤Î°ì¤Ä¤òÄó°Æ¤¹¤ë¤â¤Î¤Ç¤¹¡£ See section 8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ ¡£

ÃÏ°è²½(localization)¤Ë¤è¤Ã¤Æ¡¢´û¤Ë¹ñºÝ²½¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à·²¤Ë¤ª ¤±¤ëÁàºî¤Ë¤ª¤¤¤Æ¡¢¥×¥í¥°¥é¥à¤Ë(¤½¤Î¥×¥í¥°¥é¥à¤¬)ɬÍפȤ¹¤ëÁ´¤Æ¤Î¾ðÊó¤òÍ¿¤¨ ¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ëÆþÎϤä¥×¥í¥°¥é¥à¤«¤é¤Î½ÐÎϤò¤¢¤ë¥Í¥¤¥Æ¥£¥Ö ¥é¥ó¥²¡¼¥¸¤äʸ²½ÅªÆÃÀ­(cultual habits)¤Ë¤Ä¤¤¤ÆÀµ¤·¤¯¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤ë¤è ¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç´û¤Ë¼ÂÁõ¤µ¤ì¤¿°ìÈÌŪ¤Ê¼êË¡¤ò¡¢Æüì¤Ê ÊýË¡¤Ç»ÈÍѤ¹¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢¤³¤ì¤ÏÆü첽¤Î¥×¥í¥»¥¹¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£¥×¥í¥°¥é ¥ß¥ó¥°´Ä¶­¤Ë¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬¼Â¹Ô»þ¤ËÀßÄê¤òÄ´À°½ÐÍè¤ë¤è¤¦¤Ê´ö¤Ä¤«¤Î´Ø¿ô¤¬ÍÑ °Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤¢¤ë¹ñ¤Ç»È¤ï¤ì¤ë¸À¸ì¤òÂоݤȤ·¤¿Á´¤Æ¤Î´ØÏ¢¤·¤¿ËÝÌõ¡¢¤½¤·¤Æ ¤½¤ì¤È¶¦¤Ë»È¤ï¤ì¤ë¤½¤Î¹ñ¤Ë¤ª¤±¤ëʸ²½ÅªÆÃÀ­¤Î¸ÇÍ­¤Î½¸¹ç¤ò¡¢¤½¤Î¸À¸ì¡¢¹ñ¤ËÂÐ ¤¹¤ë ¥í¥«¡¼¥ë(locale)¤È¤¤¤¤¤Þ¤¹¡£¥æ¡¼¥¶¤Ï¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢ ¤É¤Î¥í¥«¡¼¥ë¤ò»ÈÍѤ¹¤ë¤Î¤«¤ò¼¨¤¹¤¿¤á¤ËÆüì¤Ê´Ä¶­ÊÑ¿ô¤ËŬÀÚ¤ÊÃͤòÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¥×¥í¥°¥é¥à¤ÎÃÏ°è²½¤¬¹Ô¤ï¤ì¤Þ¤¹¡£

¼ÂºÝ¤Î¤È¤³¤í¡¢¥í¥«¡¼¥ë¤Ë¤è¤ë¥í¥«¡¼¥ë¥á¥Ã¥»¡¼¥¸¥µ¥Ý¡¼¥È¤Ï¡¢ÆÃÄê¤Î¥í¥«¡¼¥ë¤ò ¹½À®¤¹¤ëʸ²½Åª¥Ç¡¼¥¿(cultural data)¤ÎÍ×ÁǤΰì¤Ä¤Ë²á¤®¤Þ¤»¤ó¡£¹ñºÝ²½¤µ¤ì¤¿ ¥½¥Õ¥È¥¦¥§¥¢¤ò³«È¯¤¹¤ë¥×¥í¥°¥é¥Þ¤Î¼ê½õ¤±¤ò¤·¤¿¤ê¡¢¤¢¤ëÆÃÄê¤Î¥í¥«¡¼¥ë¤Ë°¤¹ ¤ë¥Ç¡¼¥¿¤Ø¤Î¥¢¥¯¥»¥¹¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Î¡¢´°Á´¤Ê¥ë¡¼¥Á¥ó·²¤ä´Ø¿ô·²¤¬Â¸ºß¤·¤Þ¤¹¡£ º£¡¢¤¢¤ë¿Í¤¬¤¢¤ë¥í¥«¡¼¥ë¤ò»²¾È¤¹¤ë¤È¤¹¤ì¤Ð¡¢¤½¤ì¤é¤Î´Ø¿ô·²¤ä¥ë¡¼¥Á¥ó·²¤Ï³º Åö¤¹¤ë¥í¥«¡¼¥ë¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò»²¾È¤·¤Æ¤¤¤Þ¤¹¡£Æ±Íͤˡ¢¤¢¤ë¥×¥í¥°¥é ¥Þ¤¬¡Ö¥í¥«¡¼¥ë¥ë¡¼¥Á¥ó·²¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡×¤È¸À¤Ã¤¿¾ì¹ç¡¢¤½¤ì¤é¤Î´Ø¿ô·²¤ä¥ë¡¼ ¥Á¥ó·²¤È¤Ï¥í¥«¡¼¥ë¤Î¾ðÊóÁ´¤Æ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¥ë¡¼¥Á¥ó·²¤Î´°Á´¤Ê½¸¹ç (complete suite)¤Î¤³¤È¤È¤Ê¤ê¤Þ¤¹¡£

¥×¥í¥°¥é¥àÃæ¤ÇÊ£¿ô¤Î¸À¸ì¤ò»ÈÍѲÄǽ¤È¤¹¤ë¡¢¹ñºÝ²½¤ÈÃÏ°è²½¤ÎξÊý¤òÊñ´Þ¤¹¤ëÆà ħµÚ¤Ó¤½¤Î³èÆ°Á´ÂΤòɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¡¢¤Þ ¤¿¤Ïµ©¤ËNLS¤È¤¤¤¦É½¸½¤¬»È¤ï¤ì¤Þ¤¹¡£Í×Ì󤹤ì¤Ð¡¢¹ñºÝ²½¤È¤ÏÃÏ°è²½¤ò²Äǽ¤È¤¹ ¤ë¤â¤Î¤ò±Û¤¨¤¿½èÍý¤Ç¤¢¤ë¤È¸À¤¨¤ë¤Ç¤·¤ç¤¦¡£

¤Þ¤¿¡¢Èó¾ï¤ËÂ绨ÇĤ˸À¤Ã¤Æ¤·¤Þ¤¨¤Ð¡¢¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¥á¥Ã¥»¡¼¥¸¤ò¼Â¸½¤¹¤ëºÝ¡¢ ¹ñºÝ²½¤Ï°ìÈÌŪ¤Ë¥×¥í¥°¥é¥Þ¤¬Ãí°Õ¤¹¤ë¤³¤È¤Ç¤¢¤ê¡¢ÃÏ°è²½¤Ï°ìÈ̤ËËÝÌõ¼Ô¤¬Ãí°Õ ¤¹¤ë¤³¤È¤È¤Ê¤ê¤Þ¤¹¡£


1.3 ¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Î³Æ¦ÌÌ

´°Á´¤Ê¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¤¿¤á¤Ë¤Ï¡¢½ÐÎÏ¥á¥Ã¥»¡¼¥¸°Ê³° ¤Ë¤âËÝÌõ¤¹¤Ù¤­»öÊÁ¤¬¤¢¤ê¤Þ¤¹¡£

´û¤Ë¶¯Ä´¤·¤¿¤è¤¦¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ÎËÝÌõ¤Ï¥í¥«¡¼¥ë¤Î°ì¦Ì̤Ǥ·¤«¤¢¤ê¤Þ¤»¤ó¡£Â¾ ¤Î¹ñºÝ²½¤Î¦Ì̤ϸ½ºß¤ÎGNU gettext¤Ç¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢ ¤ª¤½¤é¤¯¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤½¤Î¹ñ¤Îʸ²½ Ū´·½¬(cultual conventions)¤òÄêµÁ¤¹¤ë¤¿¤á¤ËɬÍפÊ°À­¤Ë¤ÏÍÍ¡¹¤Ê¼ïÎब¤¢¤ê ¤Þ¤¹¡£¤³¤ì¤é¤Î°À­¤Ë¤Ï¤½¤Î¹ñ¤Î¸À¸ì¡¢ÆüÉÕ¤ä»þ¹ï¤Îɽµ­ÊýË¡¡¢¿ôÃͤÎɽµ­ÊýË¡¡¢ Ä̲ߵ­¹æ¤Ê¤É¤¬´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¥í¡¼¥«¥ë¥ë¡¼¥ë¤Ï¹ñ¤Î¥í¥«¡¼¥ë¤È¸Æ ¤Ð¤ì¤Þ¤¹¡£¥í¥«¡¼¥ë¤Ï¡¢¤½¤Î¹ñ¤ÎÆȼ«Â°À­(native attributes)¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿ ¤á¤ËɬÍפȤʤëÃ챤òɽ¤ï¤·¤¿¤â¤Î¤Ç¤¹¡£

¹ñ¤´¤È¤ËÂ礭¤¯°Û¤Ê¤êÆÀ¤ë¤¿¤á¡¢¥í¥«¡¼¥ë¤¬É¬¤ºµ­½Ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÄêµÁ¹àÌÜ ¤¬´ö¤Ä¤«Â¸ºß¤·¤Þ¤¹¡£°Ê²¼¤Ëµó¤²¤ë¥ê¥¹¥È¤Ï¡¢¥í¥«¡¼¥ë¤Ë´Ø·¸¤¹¤ë¾¤Î¥¿¥¹¥¯¤ÎŬ ÀÚ¤Êʸ̮¤Ë¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¥á¥Ã¥»¡¼¥¸¤òÇÛÃÖ¤¹¤ë¤È¤­¤Î½õ¤±¤È¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤Þ ¤¿Æ±Íͤˡ¢GNU gettext¤¬ºÇ½ªÅª¤Ë¤Ï¼è¤ê³Ý¤«¤ë¤«¤â¤·¤ì¤Ê¤¤¤½¤Î¾¤ÎÎÎ °è¤òɽ¤ï¤¹¤â¤Î¤Ç¤¹¡£

ʸ»ú¤È¥³¡¼¥É¥»¥Ã¥È

ÊƹñÁ´ÅڤȱѸì·÷¤Ë¤ª¤¤¤Æ¡¢¤â¤Ã¤È¤â°ìÈÌŪ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥³¡¼¥É¥»¥Ã¥È¤Ï ASCII¥³¡¼¥É¥»¥Ã¥È¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢ASCII¥³¡¼¥É¥»¥Ã¥È¤Ç¤ÏÂбþ¤Ç¤­¤Ê¤¤¤è¤¦ ¤ÊÂô»³¤Îʸ»ú¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¥í¥«¡¼¥ë¤â¤¢¤ê¤Þ¤¹¡£8¥Ó¥Ã¥È¤ÎISO 8859-1¥³¡¼¥É¥»¥Ã¥È¤Ï¼ç¤Ê¥è¡¼¥í¥Ã¥Ñ·÷¸À¸ì¤ò¼è¤ê°·¤¦¤¿¤á¤ËɬÍפȤʤëÆÃÊÌ¤Ê Ê¸»ú¤Î¤Û¤È¤ó¤É¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£¤·¤«¤·Â¿¤¯¤Î¾ì¹ç¡¢ISO 8859-1¥Õ¥©¥ó¥È¤Ï ÂÅÅö¤Ê¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤Î¤¿¤á¡¢³ÆÃÏ°è¤Ë¤è¤Ã¤Æ¤É¤Î¥³¡¼¥É¥»¥Ã¥È¤ò»È¤¦É¬ Íפ¬¤¢¤ë¤Î¤«¤òÌÀ¼¨¤¹¤ëɬÍפ¬¤¢¤ê¡¢¥³¡¼¥É¥»¥Ã¥È¤ËÂн褹¤ë¤¿¤á¤ÎŬÀÚ¤Êʸ»ú¼è °·¤¤¥ë¡¼¥Á¥ó(character handling routines)¤ò½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

Ä̲ß

Ä̲ߵ­¹æ¤Ï¡¢¤½¤ì¤¬µ­¹æ¤È¤·¤Æ»È¤ï¤ì¤ë¤È¤­¤Î°ÌÃÖ¤ÈƱ¤¸Äø¡¢¹ñ¤´¤È¤Ë¤è¤Ã¤Æ¤Ë°Û ¤Ê¤ë¤â¤Î¤Ç¤¹¡£¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢¥í¥«¡¼¥ëËè¤ÎÄ̲ߵ­¹æ¤ËÂФ¹¤ëÊýË¡¤ò¤­¤Á¤ó¤È°· ¤¨¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

ÆüÉդȻþ¹ï

ÆüÉդΥե©¡¼¥Þ¥Ã¥È¤Ï¥í¥«¡¼¥ë¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¹¡£Î㤨¤Ð¡¢1994ǯ¤Î¥¯¥ê¥¹¥Þ¥¹¤ò Êƹñ¤Ç¤Ï12/25/94¤È½ñ¤­¤Þ¤¹¤¬¡¢¥ª¡¼¥¹¥È¥é¥ê¥¢¤Ç¤Ï25/12/94¤È½ñ¤­¤Þ¤¹¡£¤½¤Î¾ ¤Î¹ñ¡¹¤Ç¤Ï¤ª¤½¤é¤¯ISO 8061¤ÇÄê¤á¤é¤ì¤¿ÆüÉÕµ­Ë¡¤Ê¤É¤¬»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£

»þ¹ï¤Ïhh:mm¡¢hh.mm¤Ê¤É¤Èµ­½Ò¤µ¤ì¤Þ¤¹¡£´ö¤Ä¤«¤Î¥í ¥«¡¼¥ë¤Ï¸áÁ° / ¸á¸å¤Î»ØÄê¤ò»ÈÍѤ»¤º¤Ë24»þ´ÖÀ©¤Çµ­½Ò¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¡¢²Æ»þ´Ö¤ÎÀ­¼Á¤ä²Æ»þ´Ö¤¬¼Â»Ü¤µ¤ì¤ë´ü´Ö¤Ï¹ñ¤´¤È¤Ë¤è¤Ã¤ÆÂ礭¤¯°ã¤¤¤Þ¤¹¡£

¿ôÃÍ

¿ôÃÍ¤Ï³Æ¥í¥«¡¼¥ë¤´¤È¤Ë°Û¤Ê¤ëɽµ­Ë¡¤ò¼è¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢¼¡¤Î¿ô¤Ï¤½¤ì¤¾¤ì¤Î¥í ¥«¡¼¥ë¤´¤È¤Îɽµ­Ë¡¤Ë¤è¤Ã¤ÆÀµ¤·¤¯µ­½Ò¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£

 
12,345.67       ±Ñ¸ì·÷
12.345,67       ¥Õ¥é¥ó¥¹
1,2345.67       ¥¢¥¸¥¢

°ìÉô¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤â¤Ã¤È¿Ê¤ó¤Ç¤¤¤Æ¡¢°Û¤Ê¤ëñ°Ì·Ï¡¢Î㤨¤Ð±Ññ°Ì(English units)¤ä¥á¡¼¥È¥ëË¡¡¢¤¢¤ë¤¤¤Ï¿ôÃͤò¤Þ¤ë¤Þ¤ëÄÖ¤ë¤È¤¤¤Ã¤¿ÊýË¡¤Î¤è¤¦¤Ê¡¢ÍÍ¡¹¤Ê ñ°Ì·Ï¤ò»ÈÍѤ¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¥á¥Ã¥»¡¼¥¸

¤â¤Ã¤È¤âÂçÀڤʤΤϡ¢¥í¥«¡¼¥ëÃæ¤Î¸À¸ì¥µ¥Ý¡¼¥È¤Ç¤¹¡£³«È¯¼Ô¤Ë¤È¤Ã¤Æ¤â¥æ¡¼¥¶¤Ë ¤È¤Ã¤Æ¤â¡¢¥½¥Õ¥È¥¦¥§¥¢¤¬¥æ¡¼¥¶¤ÈÂÐÏ乤ëºÝ¤Î¸À¸ì¤ò´Êñ¤ËÊѹ¹¤Ç¤­¤ë¤³¤È¡¢¤½ ¤ì¤³¤½¤¬GNU gettext¤¬Ä󶡤¹¤ë¤â¤Î¤Ç¤¹¡£

¶á¤¤¾­Íè¤Ë¡¢¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥ê¥ó¥°°Ê³°¤Î¥í¥«¡¼¥ë¹½À®Í×ÁǤ¬Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸ Ãæ¤Ç»ÈÍѲÄǽ¤Ë¤Ê¤ë¤È¤¤¤¦¤³¤È¤Ï¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢¤Û¤È¤ó¤É¤ÎºÇ¶á¤Î ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤½¤Î¥·¥¹¥Æ¥à¤Ë·ç¤±¤Æ¤¤¤ë¥í¥«¡¼¥ëÃæ¤Î¹½À®Í×ÁǤξ¯¤Ê¤¯¤È¤â´ö ¤Ä¤«¤ò¡¢Â¿¾¯¤Ê¤ê¤È¤â¹çÍýŪ¤Ë¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£¤â¤¦°ìÅÀ¤Ï¡¢GNU libc¤ÈLinux¤¬¡¢¥µ¥Ý¡¼¥È¤¬·ç¤±¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆÍøÍѤǤ­¤ë¤è ¤¦¤Ê¿·¤·¤¯´°Á´¤Ç¹çÍýŪ¤Ê¥í¥«¡¼¥ëµ¡Ç½Á´ÂΤμÂÁõ¤ò¼Â¸½¤¹¤ë¤«¤é¤Ç¤¹¡£


1.4 ¥Õ¥¡¥¤¥ë¤ÎËÝÌõ¤Îή¤ì

`.po'¥Õ¥¡¥¤¥ë¤Î¡ÖPO¡×¤È¤Ï¡ÖPortable Object¡×¤ò°ÕÌ£¤·¤Þ¤¹¡£¤³¤ì¤Ï `.mo'¥Õ¥¡¥¤¥ë¤È¶èÊ̤¹¤ë¤¿¤á¤Ç¤¹¡£¤Ê¤ª¡¢¡ÖMO¡×¤Ï¡ÖMachine Object¡× ¤ËͳÍ褷¤Þ¤¹¡£¤³¤Î¹Í¤¨¤Ï¡¢PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÈƱÍÍ¡¢Uniforum¤Ç³«È¯¤µ ¤ì¤¿NLSɸ½à¡¢¤½¤·¤ÆSolaris¤Ë¤ª¤¤¤ÆSun¤¬¼ÂÁõ¤·¤¿ÊýË¡¤«¤éÍè¤Æ¤¤¤Þ¤¹¡£

PO¥Õ¥¡¥¤¥ë¤Ï¿Í´Ö¤¬Æɤ߽ñ¤­¤¹¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ÆÃÄê¤Î¥¿¡¼¥²¥Ã¥È¤È¤µ ¤ì¤¿¸À¸ìÍѤˡ¢»ØÄꤵ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î¸µ¡¹¤Îʸ»úÎó¤È¡¢ËÝÌõ¸å¤Îʸ»úÎó¤ò´Þ¤ó ¤Ç¤¤¤Þ¤¹¡£ÂоݤθÀ¸ì°ì¤Ä¤Ë°ì¤Ä¤ÎPO¥Õ¥¡¥¤¥ë¤¬ÍÑ°Õ¤µ¤ì¤Þ¤¹¡£¥Ñ¥Ã¥±¡¼¥¸¤¬Ê£¿ô ¤Î¸À¸ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¢¥µ¥Ý¡¼¥È¤¹¤ë¸À¸ì¤Î°ì¤Ä¤º¤Ä¤Ë¤½¤ì¤¾¤ìÂбþ¤¹¤ëPO¥Õ¥¡ ¥¤¥ë¤¬É¬ÍפǤ¹¡£¤³¤ì¤é¤ÎPO¥Õ¥¡¥¤¥ë¤Ïxgettext¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÀ¸À® ¤µ¤ì¤ë¤â¤Î¤¬¥Ù¥¹¥È¤Ç¤¢¤ê¡¢msgmerge¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Þ¤¹¡£ xgettext¥×¥í¥°¥é¥à¤ÏC¥½¡¼¥¹¥Õ¥¡¥¤¥ë·²¤«¤é¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸ ¤òÃê½Ð¤·¡¢¶õ¤ÎÊÑ´¹¸åʸ»úÎó¤Ç½é´ü²½¤µ¤ì¤¿PO¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£ msgmerge¥×¥í¥°¥é¥à¤Ï¤ÏPO¥Õ¥¡¥¤¥ë¤È¤½¤ì¤Ë¤ËÂбþ¤¹¤ë¥½¡¼¥¹¤È¤ÎÄ´À°¤ò ¹Ô¤¤¤Þ¤¹¡£»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¥¨¥ó¥È¥ê¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¡¢¿·¤·¤¤¥¨¥ó¥È¥ê¤òÄɲà ¤·¡¢¥½¡¼¥¹¹Ô¤È¤ÎÂбþ¤ò¹¹¿·¤·¤Þ¤¹¡£¡Ö`.pot'¡×¤Ç½ª¤ë¥Õ¥¡¥¤¥ë¤ÏPO¥Õ¥¡¥¤ ¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤Ã¤¿´ðËÜËÝÌõ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£¤Þ¤¿¡¢¡Ö`.pox'¡×¤Ç½ª¤ë¥Õ¥¡ ¥¤¥ë¤Ï¤·¤Ð¤·¤Ð°ì»þŪ¤Ë»ÈÍѤ¹¤ëPO¥Õ¥¡¥¤¥ë¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£

MO¥Õ¥¡¥¤¥ë¤Ï¡¢Ä̾ï¤Ï¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Ç¡¢¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÆɤ߹þ¤Þ¤ì¤Þ¤¹¡£ ´û¤Ë´ö¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¤ËÉÕ°¤·¤Æ¤¤¤ë¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼ ¥È¤Î°ìÉô¤È¤·¤Æ¡¢MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ä¼è¤ê°·¤¤¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·MO¥Õ¥¡ ¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤·¤Ð¤·¤Ð¥·¥¹¥Æ¥àËè¤Ë°Û¤Ê¤ë¤â¤Î¤Ç¤¢¤ê¡¢°Ü¿¢À­¤Ë·ç¤±¤Þ¤¹¡£ ¥¨¥ó¥É¥æ¡¼¥¶¤ä¥¤¥ó¥¹¥È¡¼¥é¤Ï¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¤È¤·¤Æ`.mo'¤ò»È¤¦É¬ÍפϤ¢ ¤ê¤Þ¤»¤ó¤¬¡¢¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê¤â¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¤­¤Ï¤³¤Î³È Ä¥»Ò¤ò»È¤¦¤Î¤Ç¡¢Æ±¤¸¤è¤¦¤ËÌ·½â¤Ê¤¯»ÈÍѽÐÍè¤ë¤Ç¤·¤ç¤¦¡£GNU gettext¤È ´û¤Ë¥·¥¹¥Æ¥à¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¥Ä¡¼¥ë·²¤È¤Î´Ö¤Ë¸ß´¹À­¤¬¤¢¤ë¤Î¤Ê¤é¡¢É¬Á³Åª¤Ë MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤Ë¤Ï¥·¥¹¥Æ¥à¤¬ÍÑ°Õ¤·¤¿¤½¤ì¤é¤Î¥Ä¡¼¥ë¤ò»È¤¨¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç ¤¦¡£¤·¤«¤·¤½¤ì¤é¤Î¥Ä¡¼¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¤¤«¡¢¤Þ¤¿¤Ï»È¤¨¤Ê¤¤¤è¤¦¤Ç¤¢¤ì¤Ð¡¢ GNU gettext¤¬¤½¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëMO¥Õ¥¡¥¤¥ë¤ÎºîÀ®¼êÃʤȤʤꡢMO¥Õ¥¡ ¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤Ê¤ê¤Þ¤¹¡£`.gmo'¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë̾Á°¤Î¥Õ¥¡¥¤¥ë¤Ï¼Â ¤ÏMO¥Õ¥¡¥¤¥ë¤Ç¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤¬GNU¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¤Æ ¤¤¤Þ¤¹¡£


1.5 GNU gettext¤Î³µÍ×

°Ê²¼¤Î¥À¥¤¥¢¥°¥é¥à¤Ï¡¢GNU gettext¤Ë¤è¤Ã¤ÆÁàºî¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¡¢¤½¤Î ¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤ÆÆ°ºî¤¹¤ë¥Ä¡¼¥ë¤Î´Ö¤Î´Ø·¸¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¹¡£¤è¤ê¾ÜºÙ¤ÊÀâÌÀ ¤¬¸å¤Ë³¤­¤Þ¤¹¤¬¡¢¤³¤Î¿Þ¤«¤éÌܤòÊü¤µ¤Ê¤¤¤Ç²¼¤µ¤¤¡£¤³¤Î´Ø·¸¤ÎÀµ³Î¤ÊÍý²ò¤Ï¡¢ ¥×¥í¥°¥é¥Þ¤Ë¤âËÝÌõ¼Ô¤Ë¤âÊݼéôÅö¼Ô¤Ë¤âÌò¤ËΩ¤Ä¤³¤È¤Ç¤·¤ç¤¦¡£

 
¥ª¥ê¥¸¥Ê¥ë¤ÎC¥½¡¼¥¹ ---> PO¥â¡¼¥É ---> ¥Þ¡¼¥¯ÉÕ¤­¤ÎC¥½¡¼¥¹ ---.
                                                              |
              .---------<--- GNU gettext¥é¥¤¥Ö¥é¥ê            |
.--- make <---+                                               |
|             `---------<--------------------+----------------'
|                                            |
|   .-----<--- PACKAGE.pot <--- xgettext <---'   .---<----- Í×ÌóPO 
|   |                                            |             ^
|   |                                            `---.         |
|   `---.                                            +---> PO¥â¡¼¥É ----.
|       +----> msgmerge -------> LANG.pox --->-------'                  |
|   .---'                                                               |
|   |                                                                   |
|   `-------------<---------------.                                     |
|                                 +--- LANG.po <--- ¿·¤·¤¤LANG.pox <----'
|   .--- LANG.gmo <--- msgfmt <---'
|   |
|   `---> install ---> /.../LANG/PACKAGE.mo ---.
|                                              +---> "¤³¤ó¤Ë¤Á¤Ï¡¢À¤³¦!"
`-------> install ---> /.../bin/PROGRAM -------'

`PO¥â¡¼¥É'¤Ï¤³¤Î¿Þ¤ÇÆó²óÅо줷¤Æ¤¤¤Þ¤¹¡£PO¥â¡¼¥É¤Ï¹¥¤­¤Ê¥¨¥Ç¥£¥¿¤ò»È¤Ã ¤¿Ã±¤Ê¤ë¡Ö¼êºî¶È¤Ë¤è¤ëÊÔ½¸¡×¤ÈÆɤळ¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢GNU Emacs¤ò»È¤Ã¤Æ¤¤¤ë ¤Î¤Ç¤¢¤ì¤Ð¡¢PO¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤·¤¿¤ê½¤Àµ¤·¤¿¤ê¤¹¤ë¤Î¤ËÊØÍø¤Ê´Ä¶­¤Ç¤¢¤ëPO¥â¡¼ ¥É¤È¤¤¤¦¤â¤Î¤¬»È¤¨¤Þ¤¹¡£PO¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¡¢PO¥â¡¼¥É¤ÏPO¥Õ¥¡¥¤¥ë¤ò À¸À®¤¹¤ë¸µ¤È¤Ê¤ëC¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹·²¤ò»²¾È¤¹¤ë¤Î¤ÈƱ¤¸¤¯¤é¤¤´Êñ¤Ë¡¢Êä½õ PO¥Õ¥¡¥¤¥ë(auxiliary PO file)¤äÍ×ÌóPO¥Õ¥¡¥¤¥ë(compendium PO file)¤ò¥Ö¥é¥¦ ¥º¤Ç¤­¤Þ¤¹¡£¤³¤Î¥â¡¼¥É¤Ë¤Ï¡¢¥×¥í¥°¥é¥àÃæ¤Îʸ»úÎó¤òËÝÌõ²Äǽ¤Ç¤¢¤ë¤È¥Þ¡¼¥¯ÉÕ ¤±¤·¤¿¤ê¡¢¥¨¥é¡¼¤òɽ¼¨¤¹¤ë¤¿¤á¤ËPO¥Õ¥¡¥¤¥ë¤ÎÅö³º¹Ô¤Ë¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤Ë¤è¤Ã ¤ÆPO¥Õ¥¡¥¤¥ë¤Î³Îǧ¤ò¹Ô¤¦¤È¤¤¤Ã¤¿¡¢´ö¤Ä¤«¤ÎÆÃÊ̤ʵ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£

¥×¥í¥°¥é¥Þ¤È¤·¤ÆGNU gettext¤òƳÆþ¤¹¤ëÂè°ìÃʳ¬¤Ï¡¢C¥½¡¼¥¹¤ÎÃæ¤Ë¤¢¤ë ʸ»úÎó¤¬ËÝÌõ¤¹¤Ù¤­¤â¤Î¤Ê¤Î¤«ËÝÌõ¤·¤Ê¤¤¤Ç¤ª¤¯¤â¤Î¤Ê¤Î¤«¤ò³Îǧ¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤ÎñĴ¤ÇÂà¶þ¤Êºî¶È¤ÏEmacs¤ÎPO¥â¡¼¥É¤ò»È¤¦¤³¤È¤Ç´öʬ³Ú¤Ë¤Ï¤Ê¤ê¤Þ¤¹¤¬¡¢»È ¤¤´·¤ì¤¿ÍÍ¡¹¤ÊÊýË¡¤ÇC¥½¡¼¥¹¤òÊѹ¹¤·¤Æ¤¤¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤½¤ì°Ê³°¤Ë¤â¡¢ËÝ Ìõ¥é¥¤¥Ö¥é¥ê(translation library)¤òŬÀڤ˽é´ü²½¤¹¤ë¤¿¤á¤Ë¡¢Ã±½ã¤«¤Äɸ½àŪ ¤ÊÊѹ¹¤¬É¬ÍפȤʤê¤Þ¤¹¡£¤³¤ì¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï @xref{sources}¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

¿·¤·¤¯¥½¥Õ¥È¥¦¥§¥¢¤ò½ñ¤¯¤Ë¤¢¤¿¤Ã¤Æ¡¢¥½¥Õ¥È¥¦¥§¥¢¤ò½ñ¤­¤Ê¤¬¤éʸ»úÎó¤Ë¥Þ¡¼¥¯ ÉÕ¤±¤¹¤ë¤³¤È¤Ï¤â¤Á¤í¤ó²Äǽ¤Ç¤¹¤·¡¢¤Þ¤¿¤½¤¦¤¹¤Ù¤­¤Ç¤¹¡£gettext¤Î¥¢¥× ¥í¡¼¥Á¤Ï¤³¤ì¤ò¤È¤Æ¤â´Êñ¤Ë¤·¤Þ¤¹¡£°Ê²¼¤Ëµó¤²¤ë¹Ô¤ò¡¢³Æ¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Þ¤¿¤Ï Ãæ¿´¤È¤Ê¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤·¤Þ¤¹¡£

 
#define _(String) (String)
#define N_(String) (String)
#define textdomain(Domain)
#define bindtextdomain(Package, Directory)

¤³¤ì¤Ë¤è¤Ã¤Æ¥½¡¼¥¹¤Î¹ñºÝ²½¤Î½àÈ÷¤¬½ÐÍè¤Þ¤¹¡£gettext¥é¥¤¥Ö¥é¥ê¤ò»È¤¦ ¶ÉÌ̤˻ê¤Ã¤¿¤È»×¤Ã¤¿¤é¡¢Ã±½ã¤Ë¤³¤ì¤é¤ÎÄêµÁ¤ò¼è¤êµî¤ê¡¢`libintl.h'¤ò ¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ`libintl.a'¤ò¥ê¥ó¥¯¤·¤Þ¤¹¡£Êѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ï¤½ ¤ì¤À¤±¤Ç¤¹¡£

C¥½¡¼¥¹¤òÊѹ¹¤¹¤ë¤Èxgettext¥×¥í¥°¥é¥à¤¬Á´¤Æ¤ÎËÝÌõ²Äǽ¤Êʸ»úÎó¤ò¸¡º÷ ¤·¤ÆŸ³«¤·¡¢¤½¤ì¤ò¸µ¤ËºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£¤³¤Î `package.pot'¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥°¥é¥à¤ÎÁ´¤Æ¤Î¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¤ò´Þ¤ó ¤Ç¤¤¤Þ¤¹¡£¤½¤ì¤Ï¤½¤ì¤¾¤ì¤Îʸ»úÎó¤¬C¥½¡¼¥¹Ãæ¤Î¤É¤³¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹Àµ ³Î¤Ê¥Ý¥¤¥ó¥¿¤Î½¸¹ç¤Ç¤¹¡£Á´¤Æ¤ÎËÝÌõ¤Ï¶õ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£`.pot'¤Î t¤È¤¤¤¦Ê¸»ú¤Ï¤½¤ì¤¬PO¥Õ¥¡¥¤¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ç¤¢¤Ã¤Æ¡¢¤É¤Î¸À¸ì¤ËÂФ· ¤Æ¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤â¤Î¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹(xgettext¥×¥í¥°¥é¥à ¤Î¸Æ¤Ó½Ð¤·¤Ë´Ø¤·¤Æ¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤ÏSee section 4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°)¡£¤â¤·¤¢¤Ê¤¿ ¤¬ËÜÅö¤ËÉÔÀº¤Ê¤Î¤Ç¤·¤¿¤é¡¢¤¹¤°¤Ë¤¿¤¯¤µ¤óƯ¤¤¤Æ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç ¥óÁ´ÂΤΥ»¥Ã¥È¥¢¥Ã¥×¤ò¹Ô¤¦¤³¤È¤Ë¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó (see section 10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ)¡£¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢º£¤ämake¤¬¤¢¤Ê¤¿¤Î¤¿¤á¤Ë ŬÀڤʤâ¤Î¤ò¼«Æ°Åª¤ËÀ¸À®¤¹¤ë¤Î¤Ç¡¢¤¢¤Ê¤¿¼«¿È¤Ïgettext¥³¥Þ¥ó¥É¤ò¥¿¥¤ ¥×¤»¤º¤Ë¤¹¤à¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹!

°ì²óÌܤνèÍý¤Ç¤Ï¡¢`lang.po'¤Ï¤Þ¤À¸ºß¤·¤Þ¤»¤ó¤Î¤Ç¡¢ msgmerge¤Î¥¹¥Æ¥Ã¥×¤¬¥¹¥­¥Ã¥×¤µ¤ì¤Æ¡¢Ã±½ã¤Ë `package.pot'¤ò`lang.pox'¤Ë¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ë¤Ê¤ë¤Ç¤·¤ç ¤¦¡£¤³¤³¤Ç¡¢lang¤ÏÌÜŪ¤È¤¹¤ë¸À¸ì¤òɽ¤ï¤·¤Þ¤¹¡£

¤½¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¤ÎºÇ½é¤ÎËÝÌõ¤È¤Ê¤ê¤Þ¤¹¡£ËÝÌõ¤Ï¤½¤ì¼«¿È¤¬ÌäÂê¤Ç¤¢¤ê¡¢Ì¤¤À ¤Ë¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Î¿å½à¤ò¤Ï¤ë¤«¤Ë±Û¤¨¤ëÊ£»¨¤µ¤òÈ÷¤¨¤¿¿Í´Ö¤Î¤ß¤¬½ÐÍè¤ë¤³¤È ¤Ê¤Î¤Ç¤¹¡£¤Ë¤â´Ø¤é¤º¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Î¾¤Î¾Ï¤Ç´ö¤Ä¤«¤Î¥Ò¥ó¥È¤¬Í¿¤¨¤é¤ì¤Æ¤¤ ¤Þ¤¹(see section 9. ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ)¡£Æ±Íͤˤ¢¤Ê¤¿¤Ï¡¢ËÝÌõ¥Á¡¼¥à¤Ø¤Î¥³¥ó¥¿¥¯¥È¤Î»ÅÊý ¤Ë¤Ä¤¤¤Æ¤Î»Øɸ¤ä¡¢¤½¤Î¥Á¡¼¥à¤Ë½ê°¤·¤Æ¡¢¤¢¤Ê¤¿¤¬´Ø¿´¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤ÈƱ¤¸¸À ¸ì¤ò¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¤¤¤ë¿Í¤ÈËÝÌõ¤ò¶¦Í­¤¹¤ë¤¿¤á¤Î»Øɸ¤ò¸«¤Ä¤±¤é¤ì¤ë¤Ç¤·¤ç¤¦¡£

ËÝÌõ¥á¥Ã¥»¡¼¥¸¤òPO¥Õ¥¡¥¤¥ë`lang.pox'¤ËÄɲ䷤Ƥ¤¤ë´Ö¤Ë¡¢¤â¤·¤¢ ¤Ê¤¿¤¬GNU Emacs¤òÊØÍø¤Ë»È¤¨¤Ê¤¤¤Î¤Ê¤é¡¢¤¢¤Ê¤¿¤¬¼«Ê¬¤Ç´°Á´¤ËPO¥Õ¥¡¥¤¥ë¥Õ¥©¡¼ ¥Þ¥Ã¥È¤È¡¢¥¯¥©¡¼¥È½èÍý(quoting conventions)(see section 2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È)¤ò¹Íθ¤¹¤ë¤³ ¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï·è¤·¤ÆÉÔ²Äǽ¤Êºî¶È¤Ç¤Ï¤Ê¤¯¡¢´û¤Ë Uniforum¤äSolaris¤Ç¿¤¯¤Î¿Í¤¬PO¥Õ¥¡¥¤¥ë¤ò°·¤¦¤Î¤Ë¹Ô¤Ã¤Æ¤¤¤ë¤ä¤êÊý¤Ç¤¹¡£°ì Êý¡¢GNU Emacs¤ÎPO¥â¡¼¥É¤ò»È¤¦¤Î¤Ç¤·¤¿¤é¡¢PO¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤Û¤È¤ó¤É ¤Î¾ÜºÙÉôʬ¤Ï(Emacs¤¬)ÌÌÅݤò¸«¤Æ¤¯¤ì¤Þ¤¹¤¬¡¢¤½¤ÎÂå¤ï¤ê¤ËPO¥â¡¼¥É¤½¤ì¼«ÂÎ¤Ë ¤Ä¤¤¤Æ´·¤ì¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¼ç¤ÊPO¥â¡¼¥É¥³¥Þ¥ó¥É(see section 2.3 PO¥â¡¼¥É¤Î¼çÍפʥ³¥Þ¥ó¥É)¤Ë¤Ä¤¤¤Æ¡¢¥¨¥ó¥È¥ê´Ö¤Î°ÜÆ°¤Î»ÅÊý(see section 2.4 ¥¨¥ó¥È¥ê¤Î°ÌÃÖ)¤È̤ ËÝÌõ¥¨¥ó¥È¥ê¤Î°·¤¤Êý(see section 5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê)¤ÏÃΤäƤª¤¤¤¿¤Û¤¦¤¬Îɤ¤ ¤Ç¤·¤ç¤¦¡£

¤â¤·°ìÉô¤Î¶¦ÄÌËÝÌõ(common translations)¤¬´û¤ËÍ×ÌóPO¥Õ¥¡¥¤¥ë(compendium PO file)¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤·¤¿¤é¡¢ËÝÌõ¼Ô¤ÏPO¥â¡¼¥É¤ò¡¢Í×Ì󤫤é̤ËÝÌõ¥¨¥ó ¥È¥ê¤ò½é´ü²½¤¹¤ë¤¿¤á¡¢¤Þ¤¿ÁªÂò¤·¤¿ËÝÌõ¸ì¤òÍ×Ìó¤Ë¥»¡¼¥Ö¤·¤Æ¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë ¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹(see section 4.3 ËÝÌõÍ×Ìóµ¡Ç½¤Î»ÈÍÑ)¡£Í×Ìó¥Õ¥¡¥¤¥ë¤Ï¡¢ËÝÌõ¥Á¡¼ ¥à¤Î¥á¥ó¥Ð¡¼¤Î´Ö¤Ç¸ò´¹¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£

¥×¥í¥°¥é¥à¤ä¥×¥í¥°¥é¥à¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢ËܼÁŪ¤ËưŪ¤Ê¤â¤Î¤Ç¤¹¡£¥æ¡¼¥¶¤Ï¥Ð¥° ¥ì¥Ý¡¼¥È¤ä²þÎɰƤò½ñ¤­¡¢ÊݼéôÅö¼Ô¤Ï¤µ¤Þ¤¶¤ÞÊýË¡¤Ç¥×¥í¥°¥é¥à¤ò½¤Àµ¤·¤Æ¤½¤ì ¤ËÈ¿±þ¤·¤Þ¤¹¡£¥Ñ¥Ã¥±¡¼¥¸¤¬´û¤Ë¹ñºÝ²½¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦»ö¼Â¤¬¡¢ÊݼéôÅö¼Ô¤Ë¿· ¤·¤¤Ê¸»úÎó¤òÄɲä·¤¿¤ê´û¤ËËÝÌõ¤·¤¿Ê¸»úÎó¤òÊѹ¹¤¹¤ë¤³¤È¤ò¶²¤¬¤é¤»¤ë¤è¤¦¤Ë¤µ ¤»¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Èà¤é¤Ï¼«Ê¬¤Î¥Ù¥¹¥È¤Ê»Å»ö¤ò¹Ô¤¦¤À¤±¤Ç¤¹¡£ËÝÌõ¥×¥í¥¸¥§ ¥¯¥È¤ò½çÄ´¤Ë¿Ê¤á¤ë¤¿¤á¡¢ÊݼéôÅö¼Ô¤Ë¤Ï¹¹¤Ê¤ë;·×¤Ê½Å²Ù¤òÉé¤ï¤»¤º¡¢¤½¤·¤ÆËÝ Ìõ¼Ô¤ò¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤Î´Ø¿´¤«¤é¤Ç¤­¤ë¸Â¤ê¼«Í³¤Ë¤¹¤ë¤³¤È¤¬½ÅÍפǤ¹¡£

ÊݼéôÅö¼Ô¤¬´Ø¿´¤ò»ý¤Ä¤Ù¤­Í£°ì¤Î¤³¤È¤Ï¡¢ËÝÌõ²Äǽ¤Ê¿·¤·¤¤Ê¸»úÎó¤òÃí°Õ¿¼¤¯¥Þ¡¼ ¥¯¤¹¤ë¤³¤È¤Ç¤¢¤ê¡¢¤½¤ì¤¬ËÝÌõ²Äǽ¤Ç¤¢¤ë¤«¤É¤¦¤«¤òÈà¤é¤Îºî¶ÈÃæ¤Ëµ¤¤Ë¤¹¤ë¤³¤È ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó(¤¤¤º¤ì¡¢¤½¤ì¤Ë¤Õ¤µ¤ï¤·¤¤µ¡²ñ¤¬Íè¤Þ¤¹)¡£¤½¤Î·ë²Ì¤È¤·¤Æ¡¢¥×¥í ¥°¥é¥à¤È¤½¤Îʸ»úÎó¤¬ÊݼéôÅö¼Ô¤Ë¤è¤Ã¤ÆÄ´À°¤µ¤ì¤¿¤È¤­¡¢¤½¤·¤ÆÄ̾ï¤ÏËÝÌõ¤Ë´Ø ·¸¤Ê¤¤ÌäÂê¤Î¤¿¤á¤Ë¡¢xgettext¤Ï²¿ÅÙ¤â`package.pot'¥Õ¥¡¥¤ ¥ë¤ò¹½ÃÛ¤·¤Þ¤¹¡£¤½¤·¤Æ`lang.po'¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ëËÝÌõ¤Ï¾¯¤·¤Å¤Ä¼Â ¾ð¤Ë¤½¤°¤ï¤Ê¤¤¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¥Ñ¥Ã¥±¡¼¥¸¤ÎËÝÌõ¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤Ë¤ª¤±¤ë·Ñ³Ū¤Êºî¶È¤Ç¤¢¤Ã¤Æ¡¢ °ì²ó¤ä¤Ã¤Æ¤·¤Þ¤¨¤Ð½ª¤ï¤ê¤È¤¤¤¦¤â¤Î¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤òǧ¼±¤·¤Þ¤·¤ç¤¦¡£¤³¤ì ¤Ï¡¢ËÝÌõ¼Ô(¤ÈÊݼéôÅö¼Ô¤â)¤Ë¤È¤Ã¤Æ½ÅÍפʤ³¤È¤Ç¤¹¡£Í¿¤¨¤é¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ËÂÐ ¤¹¤ëºÇ½é¤ÎËÝÌõºî¶È¤Î¸å¤â¡¢»þ¡¹¸¡ºº¤ò¹Ô¤¦¤³¤È¤¬É¬ÍפǤ¹¡£¤Ê¤¼¤Ê¤é¡¢¤½¤³¤«¤· ¤³¤ÎËÝÌõºÑ¤ß¤Î¥¨¥ó¥È¥ê¤¬ÍѺѤߤȤʤꡢƱ»þ¤ËËÝÌõ¤¬É¬ÍפÊ̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤¬ ¸½¤ì¤ë¤«¤é¤Ç¤¹¡£

msgmerge¥×¥í¥°¥é¥à¤ÎÌÜŪ¤Ï¡¢xgettext¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤¿C¥½¡¼ ¥¹¤«¤éÃê½Ð¤µ¤ì¤¿¤è¤ê¿·¤·¤¤¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë`package.pot'¤ÈÈæ ³Ó¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢´û¤Ë¤¢¤ë`lang.po'¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤Î¹¹¿·ºî¶È¤ÏC¥½¡¼¥¹Ãæ¤Îʸ»úÎó¤Î°ÜÆ°¤òÁ´¤ÆÄ´À°¤·¤Þ¤¹¡£Ê¸»úÎó¤Î°ÜÆ°¤¬¤¢¤Ã ¤¿¥×¥í¥°¥é¥à¤Ï¡¢Êѹ¹¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤¢¤ë¤«¤é¤Ç¤¹¡£Æ±Íͤˡ¢ msgmerge¤Ï`lang.pox'¤Ë¤¢¤ëÇѻߤµ¤ì¤¿¤â¤Î¤ò¥³¥á¥ó¥È¥¢¥¦¥È ¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢¤â¤Ï¤ä¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤ÊËÝÌõºÑ¤ß ¥¨¥ó¥È¥ê¤Ç¤¢¤ë¤¿¤á¤Ç¤¹(see section 5.5 Çѻߥ¨¥ó¥È¥ê)¡£·ë²ÌŪ¤Ë¡¢¤³¤Î¥Ä¡¼¥ë¤Ï¿· ¤·¤¤Ê¸»úÎó¤ò¸«¤Ä¤±½Ð¤·¡¢¤½¤·¤Æ¤½¤ì¤òPO¥Õ¥¡¥¤¥ë¤Ë̤ËÝÌõ¥¨¥ó¥È¥ê¤È¤·¤ÆÁÞÆþ¤· ¤Þ¤¹(see section 5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê)¡£msgmerge¤¬¼ÂºÝ¤Ë¹Ô¤Ã¤Æ¤¤¤ë¤³¤È ¤Ë´Ø¤¹¤ë¾ÜºÙ¤ÏSee section 5.1 msgmerge¥×¥í¥°¥é¥à¤Îµ¯Æ°¡£

ÌÜɸ¤Ï¡¢ËÝÌõ¤·¤¿¤Û¤¦¤¬¤è¤¤Á´¤Æ¤Îʸ»úÎó¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë(¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤¿) `lang.pox'¤òÆÀ¤ë¤³¤È¤Ç¤¹¡£¤³¤Îºî¶È¤¬´°Î»¤·¤¿»þÅÀ¤Ç¡¢¤³¤Î¥Õ¥¡¥¤ ¥ë¡¢`lang.pox'¤Ï¸ø¼°¤Î`lang.po'¥Õ¥¡¥¤¥ë¤òÃÖ¤­´¹¤¨¤ë ¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£

PO¥Õ¥¡¥¤¥ë¤Î»þ´Ö°ÜÆ°À­(temporal mobility)¤ä»þ´ÖήưÀ­(time fluidity)¤È¤¤ ¤¦¤â¤Î¤Ï¡¢ËÝÌõ¥²¡¼¥à¤Î½ÅÍפÊÉôʬ¤Ç¤¢¤ê¡¢Îɤ¯Íý²ò¤·¤Æ¼õ¤±Æþ¤ì¤ë¤Ù¤­¤â¤Î¤Ç ¤¹¡£¿Í¡¹¤ÏËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Çº¤Æñ¤Ê»Å»ö¤Ë»²²Ã¤¹¤ë¤³¤È¤òµñ¤ó¤À¤ê¡¢Â¾¤Î»²²Ã ¼Ô(participants)¤Ë¤½¤ì¤ò²¡¤·ÉÕ¤±¤è¤¦¤È¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó! Æäˡ¢ÊݼéôÅö ¼Ô¤Ï´Ø·¸¤¹¤ëÇÛÉÛ¥¢¡¼¥«¥¤¥Ö¤Ë¤¢¤ëÁ´¤Æ¤Î»ÈÍѲÄǽ¤ÊPO¥Õ¥¡¥¤¥ë¤ò¡¢¤½¤ì¤¬ºÇ¶á ¹¹¿·¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ç¤¢¤Ã¤Æ¤â´Þ¤á¤ë¤Î¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£¥×¥ì¥Ã¥·¥ã¡¼¤Ï¥æ¡¼ ¥¶¡¼¤Î¥³¥ß¥å¥Ë¥Æ¥£¤¬»È¤Ã¤Æ¤¤¤ëÆÃÄê¤Î¸À¸ì¤«¤éÍè¤ë¤Ù¤­¤â¤Î¤Ç¤¢¤ê¡¢ÊݼéôÅö ¼Ô¤ÏËÝÌõ¥Õ¥¡¥¤¥ë¤òŬÀڤˤ·¤Æ¤ª¤¯¤³¤È¤ËÃí°Õ¤òʧ¤¦¤Ù¤­¤Ç¤¹¡£¤½¤Î°ìÊý¤Ç¡¢ËÝ Ìõ¼Ô¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬Àµ¼°¤ÊÇÛÉÛ¤ËÀèΩ¤Ä¥×¥ê¥Æ¥¹¥È(pretest)¤Î´Ö¤Ë¡¢¼«Ê¬Ã£ ¤¬°·¤Ã¤Æ¤¤¤ëPO¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤¹¤Ù¤­¤Ç¤¹¡£

PO¥Õ¥¡¥¤¥ë¤¬´°Á´¤ÇÆÈΩ¤·¤¿¤â¤Î¤Ë¤Ê¤ì¤Ð¡¢¼Â¹Ô»þ¤ËɬÍפˤʤ俤Ȥ­¤Ë¤¤¤Ä¤Ç¤â PO¥Õ¥¡¥¤¥ë¤«¤é¸úΨÎɤ¯ËÝÌõ¥á¥Ã¥»¡¼¥¸¤ò¼è¤ê½Ð¤¹¤³¤È¤Î¤Ç¤­¤ë¥Þ¥·¥ó¸þ¤±¤Î¥Õ¥©¡¼ ¥Þ¥Ã¥È¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¡¢msgfmt¥×¥í¥°¥é¥à»È¤ï¤ì¤Þ¤¹(see section 6.2 GNU MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È)¡£msgfmt¥×¥í¥°¥é¥à¤Ø¤Î¼Â¹ÔÍͼ°¤ÎÁ´¤Æ¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï See section 6.1 msgfmt¥×¥í¥°¥é¥à¤Îµ¯Æ°¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

ºÇ¸å¤Ë¡¢½¤Àµ¤µ¤ì¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤¿C¤Î¥½¡¼¥¹¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¤µ¤é¤ËGNU gettext¥é¥¤¥Ö¥é¥ê¤È¶¦¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡£Ä̾¤³¤Îºî¶È¤Ï¥×¥í¥¸¥§¥¯¥È ¤Î¤¿¤á¤ËÍ¿¤¨¤é¤ì¤¿`Makefile'¤Ë±þ¤¸¤Æmake¤òÄ̤¸¹Ô¤ï¤ì¤Þ¤¹¡£¤½¤· ¤Æ¡¢¤½¤Î·ë²Ì¤È¤·¤Æ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ï¥æ¡¼¥¶¡¼¤¬¸«¤Ä¤±¤ë¤³¤È¤Î¤Ç¤­¤ë¾ì½ê¤Ë¥¤¥ó ¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£MO¥Õ¥¡¥¤¥ë¤½¤ì¼«¿È¤âŬÀڤ˥¤¥ó¥¹¥È¡¼¥ë¤¹¤Ù¤­¤Ç¤¹¡£Í¿¤¨¤é ¤ì¤¿Å¬ÀڤʴĶ­ÊÑ¿ô¤ò¥»¥Ã¥È¤¹¤ë¤È(see section 7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡)¡¢¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì ¤ì¤Ð¤¤¤Ä¤Ç¤â¼«Æ°Åª¤ËÃÏ°è²½¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£

Ëܥޥ˥奢¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç½Ò¤Ù¤¿³µÍפò¤è¤ê·¡¤ê²¼¤²¤ÆÀâ ÌÀ¤¹¤ë¤¿¤á¤Î¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£


2. PO¥Õ¥¡¥¤¥ë¤ÈPO¥â¡¼¥É¤Î´ðËÜ

GNU gettext¥Ä¡¼¥ë¥»¥Ã¥È¤Ï¡¢¥×¥í¥°¥é¥Þ¤ÈËÝÌõ¼Ô¤¬¼ç¤Ë(¥Æ¥­¥¹¥È·Á¼° ¤Ç¡¢ÊÔ½¸²Äǽ¤Ê)PO¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤ÊËÝÌõ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤¿¤ê¡¢¹¹¿·¤·¤¿¤ê¡¢ ¤¢¤ë¤¤¤Ï»È¤Ã¤¿¤ê¤¹¤ë¤³¤È¤ò½õ¤±¤ë¤â¤Î¤Ç¤¹¡£¤³¤Î¾Ï¤Ç¤ÏPO¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤È¡¢ PO¥â¡¼¥É¥¹¥¿¡¼¥¿(PO mode starter)¤Î¹½À®¤ò¶¯Ä´¤·¤Þ¤¹¡£PO¥â¡¼¥É¤Îµ­½Ò¤Ï°ì¥ö ½ê¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤ª¤é¤º¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ëÁ´ÂΤ˻¶¤é¤Ð¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤³¤Ç ¤ÏPO¥â¡¼¥É¤Î´ðËܤˤĤ¤¤Æ¤Î¤ß²òÀ⤷¤Þ¤¹¡£

2.1 GNU gettext¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë  
2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È  
2.3 PO¥â¡¼¥É¤Î¼çÍפʥ³¥Þ¥ó¥É  ¼çÍפʥ³¥Þ¥ó¥É
2.4 ¥¨¥ó¥È¥ê¤Î°ÌÃÖ  
2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½  


2.1 GNU gettext¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë

GNU gettext¤ÎÇÛÉÛ¥­¥Ã¥È¤òÆþ¼ê¤·¡¢Å¸³«¡¢¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¡¢¥³¥ó¥Ñ ¥¤¥ë¤·¤¿¸å¡¢`make install'¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æxgettext¡¢ msgfmt¡¢gettext¡¢msgmerge¤È¤¤¤Ã¤¿¥×¥í¥°¥é¥à¡¢¤½¤·¤ÆƱ »þ¤Ë¤½¤ì¤é¤Î¥×¥í¥°¥é¥à¤Ç»ÈÍѲÄǽ¤Ê¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬½êÄê¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼ ¥ë¤µ¤ì¤Þ¤¹¡£´°Á´¤Ë²÷Ŭ¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤Î¤¿¤á¤Ë¡¢¤¢¤Ê¤¿¤ÏGNU Emacs¤Î¥æ¡¼¥¶Ã£ ¤¬PO¥â¡¼¥É¤ò»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£

PO¥â¡¼¥É¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢`.emacs'¤Ë°Ê²¼¤Î¤è¤¦¤Ê¿ô¹Ô¤Î ½¤Àµ¤òÄɲä·¤¿¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£

 
(setq auto-mode-alist
      (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode) auto-mode-alist))
(autoload 'po-mode "po-mode")

¤³¤Î½¤Àµ¸å¡¢`.po'¥Õ¥¡¥¤¥ë¡¢`.pot'¥Õ¥¡¥¤¥ë¡¢`.pox'¥Õ¥¡¥¤¥ë¡¢ ¤¢¤ë¤¤¤Ï`.po.'¤È¤¤¤¦Ê¸»úÎó¤ò¥Õ¥¡¥¤¥ë̾Ãæ¤Ë´Þ¤à¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¤È¤­ ¤Ï¤¤¤Ä¤Ç¤â¡¢Emacs¤Ï`po-mode.elc'(¤¢¤ë¤¤¤Ï`po-mode.el')¤òɬÍפ˱þ ¤¸¤Æ¥í¡¼¥É¤·¤Þ¤¹¡£¤½¤·¤Æ¡¢`.po'¤Ê¤É¤òÊÔ½¸¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¼«Æ°Åª¤Ë PO¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£PO¥â¡¼¥É¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢ PO¤È¤¤¤¦Ê¸»úÎ󤬥⡼¥É¥é¥¤¥ó¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£°ì¤Ä¤ÎEmacs¥»¥Ã¥·¥ç¥ó¤Ë ¤ª¤¤¤ÆÊ£¿ô¤ÎPO¥Õ¥¡¥¤¥ë¤ò°·¤Ã¤Æ¤â¡¢¤³¤Î¥¢¥¯¥Æ¥£¥Ö²½¤Ï°ìÅÙ¤À¤±¤·¤«¼Â»Ü¤µ¤ì¤Þ ¤»¤ó¡£

¤â¤·¤¢¤Ê¤¿¤¬»ÈÍѤ·¤Æ¤¤¤ëEmacs¤Î¥Ð¡¼¥¸¥ç¥ó¤¬20¤«¤½¤ì°Ê¾å¤Ç¤¢¤ê¡¢´û¤ËŬÀÚ ¤Ê¿¹ñ¸ì¥Õ¥©¥ó¥È¤ò¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢É¬ÍפʤȤ­¤Ï ¤¤¤Ä¤Ç¤â¤½¤ì¤é¤Î¥Õ¥©¥ó¥È¤ò¼«Æ°Åª¤Ë¥í¡¼¥É¤·¤ÆEmacs¤Î²èÌÌɽ¼¨¤Ë»ÈÍѤ¹¤ë¤³ ¤È¤¬½ÐÍè¤Þ¤¹¡£¤½¤Î¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î¹Ô¤ò`.emacs'¥Õ¥¡¥¤¥ë¤ËÄɲä¹¤ì ¤Ð¤è¤¤¤Ç¤·¤ç¤¦¡£

 
(autoload 'po-find-file-coding-system "po-mode")
(modify-coding-system-alist 'file "\\.po[tx]?\\'\\|\\.po\\."
                            'po-find-file-coding-system)


2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È

PO¥Õ¥¡¥¤¥ë¤Ï¿¤¯¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£³Æ¥¨¥ó¥È¥ê¤Ï¥ª¥ê¥¸¥Ê¥ë¤ÎËÝ Ìõ¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó¤È¡¢¤½¤ì¤òËÝÌõ¤·¤¿¤â¤Î¤È¤Î´Ø·¸¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£PO¥Õ¥¡ ¥¤¥ëÃæ¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤Ï¡¢Ä̾ï°ì¤Ä¤Î¥×¥í¥¸¥§¥¯¥È¤Î¤ß¤Ë´Ø·¸¤·¡¢¤Þ¤¿Á´¤Æ¤ÎËÝ Ìõʸ»úÎó¤Ï°ì¤Ä¤Î(ËÝÌõÀè¤Î)¸À¸ì¤Çɽ¤ï¤µ¤ì¤Þ¤¹¡£°ì¤Ä¤ÎPO¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ï ¼¡¤Î¤è¤¦¤Ê¹½Â¤¤ò¤È¤ê¤Þ¤¹¡£

 
white-space
#  translator-comments
#. automatic-comments
#: reference...
#, flag...
msgid untranslated-string
msgstr translated-string

PO¥Õ¥¡¥¤¥ë¤Î°ìÈÌŪ¤Ê¹½À®¤Ï¡¢ËÝÌõ¼Ô¤¬Îɤ¯Íý²ò¤Ç¤­¤ë¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¤ÈÎɤ¤¤Ç ¤·¤ç¤¦¡£PO¥â¡¼¥É¤ò»ÈÍѤ¹¤ë¤È¤­¤Ë¡¢PO¥â¡¼¥É¤¬ËÝÌõ¼Ô¤ËÂФ·¤ÆÃí°Õ¤·¤Æ¤¤¤ë¤Î¤ÈƱ ¤¸¤è¤¦¤Ë¡¢ËÝÌõ¼Ô¤¬¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Ç¥£¥Æ¡¼¥ë¤Ë´Ø¤¹¤ë¤³¤È¤ò¤¢¤Þ¤êÃΤëɬÍפ¬¤Ê ¤¤¤è¤¦¤Ë¤¹¤ë¤Ù¤­¤Ç¤¹¡£

¥¨¥ó¥È¥ê¤Ï´ö¤Ä¤«¤Î(¾Êά²Äǽ¤Ê)¶õÇò¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£Ä̾GNU gettext¥Ä¡¼ ¥ë¤òÄ̤¸¤ÆÀ¸À®¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¥¨¥ó¥È¥ê¤È¥¨¥ó¥È¥ê¤Î´Ö¤Ë°ì¹Ô¤À¤±¶õ¹Ô¤¬Æþ¤ê¤Þ¤¹¡£ ¤³¤ì¤Ë¡¢#¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ë¥³¥á¥ó¥È¹Ô¤¬Â³¤­¤Þ¤¹¡£¥³¥á¥ó¥È¤Ë¤ÏÆó¼ïÎढ¤ê ¤Þ¤¹¡£°ì¤Ä¤Ï#¤Îľ¸å¤Ë´ö¤Ä¤«¤Î¶õÇò¤¬Â³¤¤¤Æ¤¤¤ë¤è¤¦¤Ê¥³¥á¥ó¥È¤Ç¡¢¤³¤ì ¤Ï¤â¤Ã¤Ñ¤éËÝÌõ¼Ô¤Ë¤è¤Ã¤ÆºîÀ®¤äÊݼ餬¹Ô¤ï¤ì¤ë¤â¤Î¤Ç¤¹¡£¤â¤¦°ì¤Ä¤Ï#¤Î ľ¸å¤Ë¶õÇò¤Ç¤Ï¤Ê¤¤¥­¥ã¥é¥¯¥¿¤¬Â³¤¤¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¤³¤ì¤ÏGNU gettext¥Ä¡¼ ¥ë¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤ËºîÀ®¤µ¤ì¤¿¤êÊݼ餵¤ì¤¿¤ê¤¹¤ë¤â¤Î¤Ç¤¹¡£¤¹¤Ù¤Æ¤Î¥³¥á¥ó¥È¤Ï ¤½¤Î¼ïÎà¤Ë¤è¤é¤º¾Êά¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¶õÇò¤È¥³¥á¥ó¥È¤Î¸å¤Ë¥¨¥ó¥È¥ê¤ÎÆó¤Ä¤Îʸ»úÎ󤬤¢¤ê¤Þ¤¹¡£ºÇ½é¤Îʸ»úÎó¤Ï¥ª¥ê¥¸ ¥Ê¥ë¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤Ë¤¢¤Ã¤¿¤è¤¦¤Ê̤ËÝÌõ¤Îʸ»úÎ󡢤⤦°ì¤Ä¤Ï¤½¤Îʸ»úÎó¤Î ËÝÌõ¤Ç¤¹¡£¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤Ïmsgid¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤Î¸å¤ËÃÖ¤«¤ì¡¢ËÝ Ìõ¤µ¤ì¤¿Ê¸»úÎó¤Ïmsgstr¤Î¸å¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤³¤ì¤éÆó¤Ä¤Îʸ»úÎó(ËÝÌõÁ° /ËÝÌõ¸å)¤ÏPO¥Õ¥¡¥¤¥ëÃæ¤Ç"¤ä\¤ò»È¤Ã¤¿ÊýË¡¤Ç¥¯¥©¡¼¥È¤µ¤ì¤Þ¤¹¤¬¡¢ PO¥â¡¼¥É¤¬¥¯¥©¡¼¥È¤ÎÌÌÅݤò¸«¤ë¤Î¤Ç¡¢ËÝÌõ¼Ô¤Ï¥¯¥©¡¼¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÂФ·¤Æ Ãí°Õ¤òʧ¤¦É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£

msgid¤Ï¼«Æ°Åª¤ËºîÀ®¤µ¤ì¤ë¥³¥á¥ó¥È¤ÈƱÍÍ¡¢Â¾¤ÎGNU gettext¥Ä¡¼ ¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¤ê¡¢´ÉÍý¤µ¤ì¤¿¤ê¤¹¤ë¤â¤Î¤Ç¤¹¡£PO¥â¡¼¥É¤Ïmsgid¤Î ºîÀ®/´ÉÍý¤ËÂå¤ï¤ëµ¡Ç½¤òËÝÌõ¼Ô¤ËÄ󶡤·¤Þ¤»¤ó¡£Èà½÷(ËÝÌõ¼Ô)¤¬¹Ô¤¨¤ë¤³¤È¤ÎÂç Éôʬ¤Ï¡¢Ã±¤Ë¤½¤ì¤é¤òºï½ü¤¹¤ë¤³¤È¤È¡¢¥¨¥ó¥È¥ê¤ò´Ý¤´¤Èºï½ü¤¹¤ë¤³¤È¤Î¤ß¤Ç¤¹¡£ ¤½¤Î°ìÊý¤Çmsgstr¤È¤¤¤¦Ê¸»úÎó¤Ï¡¢ËÝÌõ¼Ô¤Î¥³¥á¥ó¥È¤ÈƱ¤¸¤è¤¦¤Ë¡¢ËÝÌõ ¼Ô¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ê¡¢Èà½÷(ËÝÌõ¼Ô)¤ÏɬÍפȤ¹¤ëÁ´¤Æ¤ÎÀ©¸æ¤òPO¥â¡¼¥É¤Ç¹Ô¤¦¤³ ¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥×¥í¥°¥é¥à¤¬¥³¥á¥ó¥È¤È¤·¤Æ´°Á´¤Ë̵»ë¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¡¢#,¤Ç »Ï¤Þ¤ë¥³¥á¥ó¥È¹Ô¤ÏÆÃÊ̤ʤâ¤Î¤Ç¤¹¡£flag¤Î¥³¥ó¥Þ¶èÀÚ¤ê¤Î¥ê¥¹¥È¤Ï ¡¢´ö ¤Ä¤«¤ÎÍ­ÍѤʿÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò¥æ¡¼¥¶¤ËÍ¿¤¨¤ë¤â¤Î¤È¤·¤Æ¡¢msgfmt¥×¥í¥° ¥é¥à¤¬°·¤¤¤Þ¤¹¡£¸½ºß¤Î¤È¤³¤í¡¢Æó¤Ä¤Î·Á¼°¤Î¥Õ¥é¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

Û£Ëæ(fuzzy)
¤³¤Î¥Õ¥é¥°¤Ïmsgmerge¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¦¤ë¤«¡¢¤Þ¤¿¤ÏËÝÌõ¼Ô ¼«¿È¤Ë¤è¤Ã¤ÆÉÕÍ¿¤µ¤ì¤¦¤ë¤â¤Î¤Ç¤¹¡£¤³¤ì¤Ïmsgstrʸ»úÎ󤬤ª¤½¤é¤¯Àµ¤· ¤¤ËÝÌõ¤Ç¤Ê¤¤¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï¹¹¤ËËÝÌõ¤ò¿Ê¤á¤ë¤«¡¢¤¢¤ë¤¤¤Ï¸½ºß¤Î ¤Þ¤Þ¤Ç¤¤¤¯¤«¤ò·èÄꤹ¤ë¤À¤±¤Ç¤¹¡£¤Ò¤È¤¿¤ÓËÝÌõ¤¬´°Î»¤·¤¿¤Ê¤é¡¢Èà½÷¤Ï¤³¤Î Û£Ëæ°À­¤ò¼è¤ê½ü¤­¤Þ¤¹¡£msgmerge¥×¥í¥°¥é¥à¤ÏÛ£Ë渡º÷(fuzzy search)¤Î¸å¤Çmsgid¤Èmsgstr¤¬·ë¹ç¤µ¤ì¤¿¤È¤­¤Î¤ß¤³¤Î°À­¤òÉÕ Í¿¤·¤Þ¤¹¡£See section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê¡£

c-format
no-c-format
¤³¤Î¥Õ¥é¥°¤Ï¿Í´Ö¤Ë¤è¤Ã¤ÆÉÕÍ¿¤µ¤ì¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£xgettext¥×¥í ¥°¥é¥à¤Î¤ß¤¬¤³¤ì¤òÉÕÍ¿¤·¤Þ¤¹¡£¤³¤³¤ÇÄó°Æ¤µ¤ì¤¿¼«Æ°Åª¤ÊPO¥Õ¥¡¥¤¥ë½èÍý¥·¥¹¥Æ ¥à¤Ë¤è¤Ã¤Æ¡¢xgettext¥×¥í¥°¥é¥à¤¬¿·¤·¤¤¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹ ¤ë¤ä¤¤¤Ê¤ä¡¢¥æ¡¼¥¶¤Ë¤è¤ëÊѹ¹¤ÏºÆÅÙ¼º¤ï¤ì¤Þ¤¹¡£

c-format¥Õ¥é¥°¤¬Ê¸»úÎó¤ËÉÕÍ¿¤µ¤ì¤¿¾ì¹ç¡¢msgfmt¤ÏËÝÌõ¤¬ÀµÅö¤Ê ¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ë¤Ä¤¤¤Æ¹¹¤Ê¤ë¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤¹¡£See section 6.1 msgfmt¥×¥í¥°¥é¥à¤Îµ¯Æ°¡£

¶õÇò¤ä¥³¥á¥ó¥È¤¬²¿¹Ô¤«¡¢PO¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¸å¤Ë³¤¯¤è¤¦¤Ê¤³¤È¤¬¤¢ ¤ê¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¹Ô¤Ï¤É¤Î¥¨¥ó¥È¥ê¤Î°ìÉô¤Ç¤â¤Ê¤¯¡¢PO¥â¡¼¥É¤Ï¤³¤Î¤è¤¦¤Ê¹Ô¤Ë ÂФ·¤Æ²¿¤Î¥¢¥¯¥·¥ç¥ó¤â¼è¤ê¤Þ¤»¤ó¡£PO¥â¡¼¥É¤Î´Ø¿ôM-x po-normalize¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢ËÝÌõ¼Ô¤Ï¤½¤¦¤¤¤Ã¤¿Í¾·×¤Ê¹Ô¤ò¼è¤ê½ü¤¯¤³¤È ¤¬¤Ç¤­¤Þ¤¹¡£See section 2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½.

¤³¤Î¥»¥¯¥·¥ç¥ó¤Î»Ä¤ê¤ÎÉôʬ¤Ï¡¢PO¥â¡¼¥É¤ò»È¤¦¤ËÅö¤¿¤Ã¤Æ¥¹¥­¥Ã¥×¤¹¤ë¤³¤È¤â¤Ç ¤­¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤è¤êÎɤ¤¥¢¥¤¥Ç¥£¥¢¤ò»ý¤Ã ¤Æ¤¤¤ë¿Í¤Ë¤È¤Ã¤Æ¤Ï¶½Ì£¿¼¤¤¤â¤Î¤Ç¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£°ìÊý¡¢¤³¤³¤Ç¤Ï½Ò¤Ù¤é¤ì ¤Æ¤¤¤Ê¤¤GNU Emacs¤ÎÊØÍø¤Êµ¡Ç½¤Ë¤Ä¤¤¤Æ¤ÏÃí°Õ¿¼¤¯ÆɤߤĤŤ±¤ë¤Ù¤­¤Ç¤¹¡£

untranslated-string¤Ètranslated-string¤Ï¡¢¤½¤ì¤ò°Ï¤à¥¯¥©¡¼¥È ¤ä(ʸ»úÎóÃæ¤Î)¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤â´Þ¤á¤Æ¡¢¤½¤ì¤¾¤ì¥­¥ã¥é ¥¯¥¿Ê¸»úÎó¤ËÂФ¹¤ë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¤Î±¦Â¦¤ËÃÖ ¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó(1)¡£¸å¤í¤ÎÆó¤Ä ¤Îʸ»úÎó¤Î¥¯¥©¡¼¥È¤Ï²þ¹Ô`\n'¤Îľ¸å¤ÇÀÚ¤êÂؤ¨¤ëɬÍפ¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢ ¤½¤Î¾¤ÎǤ°Õ¤Îʸ»ú¤Î¸å¤Ç¹Ô¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£²æ¡¹¤¬²þ¹Ô¤Î¸å¤Ç¶èÀڤ俤Τϡ¢ ¤½¤ÎÊý¤¬¤¹¤Ã¤­¤ê¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£

¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤Î°ìÉô¤È¤·¤Æ¥¯¥©¡¼¥È¤ÎÆ⦤˸ºß¤¹¤ë`\n'¤Î¤è¤¦ ¤Ê¹Ô¤Î½ªÃ¼¤È¡¢Ê¸»úÎó¤Î¥¯¥©¡¼¥È¤Î³°Â¦¤Ë¤¢¤Ã¤Æ¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤ PO¥Õ¥¡¥¤¥ë¤Î¹Ô¤½¤ì¼«¿È¤Î¹Ô¤Î½ªÃ¼¤È¤Ï¡¢µ¤¤ò¤Ä¤±¤Æ¶èÊ̤·¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£

ʸ»úÎó¤Î³°Â¦¤Ç¤Ï¡¢¼«Í³¤Ë¶õ¹Ô¤ä¥³¥á¥ó¥È¤òÃÖ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥³¥á¥ó¥È¤Ï¹Ô¤Î ÀèƬ¤Î`#'¤«¤é»Ï¤Þ¤ê¡¢¤½¤Î¹Ô¤Î½ª¤ï¤ê¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤Ê¤ê¤Þ¤¹¡£ËÝÌõ¼Ô¤Ë ¤è¤Ã¤Æ½ñ¤«¤ì¤¿¥³¥á¥ó¥È¤Ï¡¢#¤Î¤¹¤°¸å¤í¤Ë´ö¤Ä¤«¤Î¶õÇò¤¬ÃÖ¤¯¤è¤¦¤Ë¤¹¤ë¤Î¤¬¤è ¤¤¤Ç¤·¤ç¤¦¡£¤â¤·¤½¤Î¤è¤¦¤Ê¶õÇò¤¬¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥³¥á¥ó¥È¹Ô¤ÏGNU¥Ä¡¼¥ë¤Ë¤è¤Ã ¤ÆÀ¸À®¤µ¤ì¤¿¤ê°·¤ï¤ì¤¿¤ê¤¹¤ë¤â¤Î¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¢¤ê¡¢PO¥Õ¥¡¥¤¥ë¤¬ msgmerge¤ËÍ¿¤¨¤é¤ì¤¿¤È¤­¤Ë¡¢»×¤¤¤¬¤±¤Ê¤¯¸«¼º¤Ã¤¿¤êÃÖ¤­´¹¤¨¤é¤ì¤¿¤ê ¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£


2.3 PO¥â¡¼¥É¤Î¼çÍפʥ³¥Þ¥ó¥É

2.1 GNU gettext¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë¤ÇÀßÄꤷ¤¿¤è¤¦¤ËEmacs¤ÎÀßÄ꤬´°Î»¤·¤¿¸å¡¢Emacs¤¬PO¥Õ¥¡¥¤ ¥ë¤òÆɤ߹þ¤ó¤À¤Ê¤é¤Ð¡¢¤½¤Î¥¦¥£¥ó¥É¥¦¤Ç¤ÏPO¥â¡¼¥É¤¬¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ê¤Þ¤¹¡£¥¦¥£ ¥ó¥É¥¦¤ÏÆɤ߼è¤êÀìÍѤȤʤꡢpo-mode-map¤¬³«»Ï¤µ¤ì¤Þ¤¹¡£ po-mode-hook¤È¤·¤Æ´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

PO¥â¡¼¥É¤¬¥¦¥£¥ó¥É¥¦¤ËÂФ·¤Æ¥¢¥¯¥Æ¥£¥Ö¤Ë¤µ¤ì¤¿»þÅÀ¤Ç¡¢`PO'¤È¤¤¤¦Ê¸»ú Î󤬥¦¥£¥ó¥É¥¦¤Î¥â¡¼¥É¥é¥¤¥ó¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£¥â¡¼¥É¥é¥¤¥ó¤Ë¤Ï¡¢PO¥Õ¥¡¥¤¥ëÃæ ¤Î¤¢¤é¤æ¤ë¼ïÊ̤Υ¨¥ó¥È¥ê¤Î¿ô¤â¤Þ¤¿É½¼¨¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢ `132t+3f+10u+2o'¤È¤¤¤¦Ê¸»úÎó¤¬É½¼¨¤µ¤ì¤¿¾ì¹ç¡¢¤½¤ì¤ÏPO¥â¡¼¥ÉÃæ¤Ë132¤Î ËÝÌõ¥¨¥ó¥È¥ê(see section 5.2 ËÝÌõºÑ¤ß¥¨¥ó¥È¥ê)¤¬¤¢¤ê¡¢3¤Ä¤ÎÛ£Ëæ¤Ê¥¨¥ó¥È¥ê (see section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê)¤¬¤¢¤ê¡¢10¤Î̤ËÝÌõ¥¨¥ó¥È¥ê(see section 5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê¤¬¤¢¤ê)¡¢2¤Ä¤ÎÇѻߤµ¤ì¤¿¥¨¥ó¥È¥ê(see section 5.5 Çѻߥ¨¥ó¥È¥ê)¤¬¤¢¤ë¤³ ¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£°ì¤Ä¤â¸ºß¤·¤Ê¤¤¥¨¥ó¥È¥ê¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£Î㤨¤Ð¡¢¤â¤·Û£ Ëæ¤Ê¥¨¥ó¥È¥ê¤¬²ò·è¤µ¤ì¡¢Ì¤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤¬ËÝÌõ¤µ¤ì¡¢Çѻߤµ¤ì¤¿¥¨¥ó¥È¥ê¤¬ºï ½ü¤µ¤ì¤¿¤Ê¤é¡¢¥â¡¼¥É¥é¥¤¥ó¤Ë¤Ï¥«¥¦¥ó¥¿¤È¤·¤Æ`145t'¤¬É½¼¨¤µ¤ì¤ë¤³¤È¤Ç ¤·¤ç¤¦¡£

¼ç¤ÊPO¥³¥Þ¥ó¥É¤Ï¸å¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¾¤Î¥«¥Æ¥´¥ê¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤ê¤Þ¤»¤ó¡£¤³¤ì ¤é¤ÏPO¥â¡¼¥É¤ò½ªÎ»¤¹¤ë¤«¡¢¥¦¥£¥ó¥É¥¦¤òÆÃÊ̤ÊÊýË¡¤Ç´ÉÍý¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£

U
PO¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëºÇ¸å¤ÎÊѹ¹¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£

Q
½èÍý¤òÃæÃǤ·¡¢PO¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤Þ¤¹¡£

q
²Äǽ¤Ç¤¢¤ì¤Ð³Îǧ¤·¤Æ¤«¤é¡¢½èÍý¤òÃæÃǤ·¤Þ¤¹¡£

O
PO¥Õ¥¡¥¤¥ë¤Î¥¦¥£¥ó¥É¥¦¤«¤é°ì»þŪ¤ËÎ¥¤ì¤Þ¤¹¡£

?
h
PO¥â¡¼¥É¤Ë´Ø¤¹¤ë¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£

=
PO¥Õ¥¡¥¤¥ë¤Î´ö¤Ä¤«¤ÎÅý·×¤òɽ¼¨¤·¤Þ¤¹¡£

V
PO¥Õ¥¡¥¤¥ëÁ´ÂΤνñ¼°¤ÎÀµÅöÀ­¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤¹¡£

U(po-undo)¥³¥Þ¥ó¥É¤ÏGNU Emacs¤Îundoµ¡Ç½¤ËÂФ¹¤ë¥¤¥ó¥¿¡¼ ¥Õ¥§¡¼¥¹¤Ç¤¹¡£See section `Undoing Changes' in The Emacs Editor. U¤¬¥¿¥¤¥×¤µ¤ì¤ëÅ٤ˡ¢ËÝÌõ¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¹Ô¤Ã¤¿Êѹ¹¤Ï¾¯¤·¸µ¤Ë Ìᤵ¤ì¤Þ¤¹¡£¥¢¥ó¥É¥¥¤Î¤¿¤á¤Ë¡¢PO¥â¡¼¥É¤Î³Æ¥³¥Þ¥ó¥É¤Î½èÍý¤Ï¥¢¥È¥ß¥Ã¥¯¤Ê¤â¤Î ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏRET¥³¥Þ¥ó¥É¤Î¤È¤­¤ËÆäˤ½¤¦¤Ç¤¹¡£¤¿¤È¤¨ ÊÔ½¸¤½¤ì¼«¿È¤¬´ö¤Ä¤«¤Î¥¢¥¯¥·¥ç¥ó¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢°ì²ó¤Î RET¥³¥Þ¥ó¥É¤Ë¤è¤ëÊÔ½¸¤Ï°ìÅ٤˼è¤ê¾Ã¤µ¤ì¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢ÊÔ ½¸¥¦¥£¥ó¥É¥¦¤Çºî¶È¤·¤Æ¤¤¤ë´Ö¤ÏÊÔ½¸ºî¶È¤ò°ì¤Ä°ì¤Ä¥Á¥Þ¥Á¥Þ¤È¥¢¥ó¥É¥¥¤Ç¤­¤Þ¤¹¡£

Q¥³¥Þ¥ó¥É(po-quit)¤Èq¥³¥Þ¥ó¥É (po-confirm-and-quit)¤Ï¡¢ËÝÌõ¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÁàºî¤ò½ª¤¨¤ë¤È¤­ ¤Ë»ÈÍѤ·¤Þ¤¹¡£Á°¼Ô¤Ï¾¯¤·¤À¤±¾éŤµ¤Ë·ç¤±¤ë¤â¤Î¤Ç¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì ¤Æ¤¤¤ì¤Ð¡¢ºÇ½é¤Ë¥Õ¥¡¥¤¥ë¤¬¥Ç¥£¥¹¥¯¤Ë¥»¡¼¥Ö¤µ¤ì¤Þ¤¹¡£Î¾Êý¤Î¥±¡¼¥¹¤Ë¤ª¤¤¤Æ¡¢ ¤½¤·¤ÆÁ´¤Æ¤ò¹Ô¤¦Á°¤Ë¡¢¤³¤Î¥³¥Þ¥ó¥É¤ÏPO¥Õ¥¡¥¤¥ë¤ËËÝÌõ¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥Ã¥»¡¼¥¸ ¤¬»Ä¤Ã¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤·¡¢¤â¤·¤¢¤ì¤ÐËÝÌõ¼Ô¤ËÂФ¹¤ëPO¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸¤òËÜÅö¤Ë ¤ä¤á¤ë¤Î¤«¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤ÏEmacs ¤ÎPO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò°·¤¦ ¤Î¤Ë¹¥¤Þ¤·¤¤ÊýË¡¤Ç¤¹¡£¥Ð¥Ã¥Õ¥¡¤Îºï½ü¤òÄ̾ï¤ÎC-x k (kill-buffer)¥³¥Þ¥ó¥É¤Ç¹Ô¤¦¤Î¤ÏÎɤ¯¤Ê¤¤ÊýË¡¤Ç¤¹¡£

O(po-other-window)¥³¥Þ¥ó¥É¤Ï¡¢PO¥â¡¼¥É¤«¤éÈ´¤±½Ð¤ë¤¿¤á¤Î¤â¤¦ °ì¤Ä¤Î½ÀÆð¤Ê¤ä¤êÊý¤Ç¤¹(°ì»þŪ¤Ë¡¢¤Ç¤¹¤¬)¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¥«¡¼¥½¥ë¤òÊ̤ΠEmacs¥¦¥£¥ó¥É¥¦¤ËÆ°¤«¤·¤Æ¡¢É¬Íפʤé¤Ð¤½¤Î¥¦¥£¥ó¥É¥¦¤ò¥Ý¥Ã¥×¥¢¥Ã¥×¤¹¤ë¤È¤¤ ¤¦¤â¤Î¤Ç¤¹¡£Î㤨¤Ð¡¢ËÝÌõ¼Ô¤ÏPO¥â¡¼¥É¤Ç¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤¤¤ë¤È¤­¤Ë¡¢½¤Àµ¤¹ ¤ëɬÍפ¬¤¢¤ë¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤ËÌÀ¤é¤«¤Ê¥Ð¥°¤ò¸«¤Ä¤±¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤³¤Î ¥³¥Þ¥ó¥É¤ÏËÝÌõ¼Ô¤¬¥×¥í¥°¥é¥Þ¤È¤Ê¤ê¡¢(¤³¤Î»þÅÀ¤Ç¥×¥í¥°¥é¥Þ¤È¤Ê¤Ã¤¿)ËÝÌõ¼Ô¤¬ ½¤Àµ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦¤Ë¥«¡¼¥½¥ë¤ò°Ü¤¹¤³¤È¤òµö¤·¤Þ¤¹¡£¤³¤Î¸å¤Ç¥«¡¼ ¥½¥ë¤òPO¥Õ¥¡¥¤¥ë¤Î¥¦¥£¥ó¥É¥¦¤ËÌ᤹¤«¡¢Emacs¤Ë¤³¤Î¥Õ¥¡¥¤¥ë¤ò¤â¤¦°ìÅÙÊÔ½¸¤¹ ¤ë¤È¤¤¤¦¤³¤È¤òÅÁ¤¨¤ì¤Ð¡¢PO¥â¡¼¥É¤ÏÉü³è¤·¤Þ¤¹¡£

h¥³¥Þ¥ó¥É(po-help)¤Ï¡¢¤¹¤Ù¤Æ¤Î»ÈÍѲÄǽ¤ÊPO¥â¡¼¥É¥³¥Þ¥ó¥É¤Î¥µ¥Þ ¥ê¤òɽ¼¨¤·¤Þ¤¹¡£¤½¤Î¸å¤ÇËÝÌõ¼Ô¤¬Ç¤°Õ¤Î¥­¥ã¥é¥¯¥¿¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢Ä̾ï¤ÎPO ¥â¡¼¥É¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤ËÉüµ¢¤·¤Þ¤¹¡£?¥³¥Þ¥ó¥É¤Ïh¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Á¤Þ ¤¹¡£

=¥³¥Þ¥ó¥É(po-statistics)¤ÏPO¥Õ¥¡¥¤¥ëÃæ¤Î¥¨¥ó¥È¥ê¤ÎÁí¿ô¡¢¥«¥ì ¥ó¥È¥¨¥ó¥È¥ê¤Î½çÈÖ(1¤«¤é¥«¥¦¥ó¥È¤µ¤ì¤Þ¤¹)¡¢Ì¤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤Î¿ô¡¢Çѻߤµ¤ì ¤¿¥¨¥ó¥È¥ê¤Î¿ô¤ò·×»»¤·¡¢¤³¤ì¤é¤Î¿ô»úÁ´¤Æ¤òɽ¼¨¤·¤Þ¤¹¡£

V¥³¥Þ¥ó¥É(po-validate) ¤Ï¡¢¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ msgfmt¤òñÁÀå¥â¡¼¥É(verbose mode)¤Çµ¯Æ°¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤ÏºÇ½é¤Ë ¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë¤ò¥Ç¥£¥¹¥¯¤ËÊݸ¤¹¤ë¤³¤È¤òÄó°Æ¤·¤Þ¤¹¡£GNU gettext¤Î msgfmt¥Ä¡¼¥ë¤ÏMO¥Õ¥¡¥¤¥ë¤òPO¥Õ¥¡¥¤¥ë¤«¤éºîÀ®¤¹¤ë¤È¤¤¤¦ÌÜŪ¤ò»ý¤Ã¤Æ ¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢PO¥â¡¼¥É¤Ï¤³¤Î¥×¥í¥°¥é¥à¤Îµ¡Ç½¤òÁ´¤Æ¤Î¸ÄÊ̤Υ¨¥ó¥È¥ê¤Î¥Á¥§¥Ã ¥¯¡¢¤½¤·¤ÆPO¥Õ¥¡¥¤¥ëÁ´ÂΤΥե©¡¼¥Þ¥Ã¥È¤Î¥Á¥§¥Ã¥¯¤Î¤¿¤á¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡£

msgfmt¥×¥í¥°¥é¥à¤ÏEmacs¤ÈÈóƱ´ü¤ËÆ°ºî¤¹¤ë¤Î¤Ç¡¢ËÝÌõ¼Ô¤Ï¨ºÂ¤ËPO¥Õ¥¡ ¥¤¥ë¤ÎÀ©¸æ¤ò¼è¤êÌᤷ¤Þ¤¹¡£¥¨¥é¡¼½ÐÎϤÏGNU Emacs¤Î`*compilation*'¥Ð¥Ã ¥Õ¥¡¤Ë½¸¤á¤é¤ì¤ÆÊ̤Υ¦¥£¥ó¥É¥¦¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£Ä̾ï¤ÎGNU Emacs¥³¥Þ¥ó¥É C-x`(next-error)¤Ï¡¢Â¾¤ÎÄ̾ï¤Î¥³¥ó¥Ñ¥¤¥ë¥³¥Þ¥ó¥É¤ÈƱÍÍ¡¢PO¥Õ¥¡ ¥¤¥ë¤ÎÌäÂê¤È¤Ê¤Ã¤¿Éôʬ¤Ë¤¹¤Ð¤ä¤¯°ÜÆ°¤¹¤ë¤³¤È¤ò²Äǽ¤È¤·¤Þ¤¹¡£°ìö¥«¡¼¥½¥ë¤¬ ¥¨¥é¡¼¤Î¤¢¤ë¹Ô¤Ë°Ü¤ì¤Ð¡¢ËÝÌõ¼Ô¤Ï¥¨¥é¡¼¤ò½¤Àµ¤¹¤ë¤Î¤ËÌòΩ¤ÄǤ°Õ¤ÎPO¥â¡¼¥É¥¢ ¥¯¥·¥ç¥ó¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£


2.4 ¥¨¥ó¥È¥ê¤Î°ÌÃÖ

PO¥Õ¥¡¥¤¥ë¥¦¥£¥ó¥É¥¦¤Ë¤¢¤ë¥«¡¼¥½¥ë¤Ï¤Û¤È¤ó¤É¾ï¤Ë¥¨¥ó¥È¥ê¤Î°ìÉô¤Ç¤¹¡£Í£°ì¤Î Îã³°¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¸å¤í¤Ë¤¢¤ë¾ì¹ç¡¢¤¢¤ë¤¤¤ÏPO¥Õ¥¡¥¤¥ë¤¬¶õ¤Î¾ì ¹ç¤È¤¤¤Ã¤¿Æüì¤Ê¤â¤Î¤Ç¤¹¡£Â¿¤¯¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¥¨¥ó¥È¥ê¤ÇÆ°ºî¤¹ ¤ë¤Î¤Ç¡¢ËÝÌõ¼Ô¤ÏPO¥Õ¥¡¥¤¥ë¤òį¤á¤Æ²ó¤ë¤³¤È¤è¤ê¤â¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë¤³¤È¤Î¤Û ¤¦¤¬Â¿¤¯¤Ê¤ê¤Þ¤¹¡£¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¥³¥Þ¥ó¥É¤ÎÁàºîÂÐ¾Ý¤È¤Ê¤ë ¥¨¥ó¥È¥ê¤òÁªÂò¤¹¤ë¤³¤È¤Ë¤â¤Ê¤ê¤Þ¤¹¡£

¤¤¤¯¤Ä¤«¤Î¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤ÏÆüì¤Ê¤ä¤êÊý¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤òÊѤ¨¤Þ¤¹¡£¤³¤ì¤é ¤ÎÆüì¤ÊÌÜŪ¤Ç¤Î°ÌÃ֤ΰÜÆ°¤Î´ö¤Ä¤«¤ò¤³¤³¤ÇÀâÌÀ¤·¡¢¤½¤Î¾¤Î¤â¤Î¤Ï¤³¤Î¸å¤Î¥» ¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤Þ¤¹¡£

.
¸½ºß¤Î¥¨¥ó¥È¥ê¤òºÆɽ¼¨¤·¤Þ¤¹¡£

n
n
¸½ºß¤Î¥¨¥ó¥È¥ê¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÁªÂò¤·¤Þ¤¹¡£

p
p
¸½ºß¤Î¥¨¥ó¥È¥ê¤ÎÁ°¤Î¥¨¥ó¥È¥ê¤òÁªÂò¤·¤Þ¤¹¡£

<
PO¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤òÁªÂò¤·¤Þ¤¹¡£

>
PO¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥¨¥ó¥È¥ê¤òÁªÂò¤·¤Þ¤¹¡£

m
¸å¤Ç»ÈÍѤ¹¤ë¤È¤­¤Î¤¿¤á¤Ë¡¢¸½ºß¤Î¥¨¥ó¥È¥ê¤Î°ÌÃÖ¤òµ­Ï¿¤·¤Þ¤¹¡£

l
ľÁ°¤ËÊݸ¤·¤¿°ÌÃÖ¤ØÉüµ¢¤·¤Þ¤¹¡£

x
¸½ºß¤Î¥¨¥ó¥È¥ê°ÌÃ֤ȡ¢Ä¾Á°¤ËÊݸ¤·¤¿¥¨¥ó¥È¥ê°ÌÃ֤Ȥò¸ò´¹¤·¤Þ¤¹¡£

´ö¤Ä¤«¤ÎGNU Emacs¥³¥Þ¥ó¥É¤ÏPO¥â¡¼¥É¤Ë¤¢¤ë¥«¥ì¥ó¥È¥¨¥ó¥È¥ê¤òÁªÂò¤¹¤ë¤¿¤á¤Ë ¥«¡¼¥½¥ë¤Î°ÌÃÖÀßÄê¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Ê¸»ú¡¢¹Ô¡¢¥Ñ¥é¥°¥é¥Õ¡¢¥¹¥¯¥ê¡¼¥ó¡¢ ¤¢¤ë¤¤¤Ï¥Ú¡¼¥¸Ã±°Ì¤Ç°ÜÆ°¤¹¤ë¥³¥Þ¥ó¥É¤ä¡¢¸¡º÷¥³¥Þ¥ó¥É¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢ PO¥â¡¼¥ÉÃæ¤Ë¤¢¤ë¥«¥ì¥ó¥È¥¨¥ó¥È¥ê¤òɽ¼¨¤¹¤ë¤¿¤á¤Îɸ½àŪ¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£¤³ ¤ì¤Ï¥«¡¼¥½¥ë¤Î°ÜÆ°¤ò¶¯À©¤·¤Ê¤¤¤è¤¦¤ÊÄ̾ï¤ÎGNU Emacs¥³¥Þ¥ó¥É¤Ç¤¹¡£.¥³ ¥Þ¥ó¥É(po-current-entry)¤Ï¡¢¥«¥ì¥ó¥È¥¨¥ó¥È¥ê¤¬Êѹ¹¤µ¤ì¤¿¸å¤ä¡¢ Emacs¤Î¥¹¥¯¥ê¡¼¥ó¤Ê¤É¤Î¾õÂÖ¤¬ÊѤï¤Ã¤¿¸å¤Ç¡¢Å¬Àڤʥ«¥ì¥ó¥È¥¨¥ó¥È¥ê¤ÎºÆɽ¼¨ ¤ò¹Ô¤¦¤È¤¤¤¦¤¿¤À¤Ò¤È¤Ä¤ÎÌÜŪ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£

ËÝÌõ¼Ô¤¬ºî¶È¤ò¤¹¤ë´Ö¡¢¶¯À©Åª¤Ë¥¦¥£¥ó¥É¥¦¤ÎÀ©¸æÁ´¤Æ¤òÊÝ»ý¤·Â³¤±¤ë¤³¤È¤¬ËÝÌõ ¼Ô¤Ë¤È¤Ã¤Æºî¶È¤·¤ä¤¹¤¤¤Î¤«¤½¤¦¤Ç¤Ê¤¤¤Î¤«¡¢¤³¤ÎÅÀ¤Ë¤Ä¤¤¤Æ¤Ï¤Þ¤À·è¤á¤«¤Í¤Æ¤¤ ¤Þ¤¹¡£²æ¡¹¤Ï¥¦¥£¥ó¥É¥¦¤¬¤³¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¤Î¤ÏÁÇÀ²¤é¤·¤¤¥¢¥¤¥Ç¥£¥¢¤À¤È»×¤¤¤Þ ¤·¤¿¤¬¡¢¤·¤«¤·°ìÊý¤Ç¡¢Emacs¤ò»È¤¦¿Í¤¬¥¦¥£¥ó¥É¥¦¤ò´°Á´¤Ë¥³¥ó¥È¥í¡¼¥ë½ÐÍè¤ë Êý¤¬¤è¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¤È¤Ï»×¤¤¤Þ¤¹¡£¥¦¥£¥ó¥É¥¦¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ËÝÌõ¼Ô¤¬¤½ ¤ì¤òÍ­¸ú¤«Ìµ¸ú¤«¤òÀÚ¤êÂؤ¨¤ë¥ª¥×¥·¥ç¥ó¤ò¼Â¸³Åª¤ËPO¥â¡¼¥ÉÍѤËÄ󶡤¹¤ë¤«¤â¤· ¤ì¤Þ¤»¤ó¡£Ã¯¤â¤½¤Î¤è¤¦¤ÊɬÍ×À­¤ò´¶¤¸¤Ê¤¤¤«¡¢¤¢¤ë¤¤¤Ï¤½¤ì¤òºîÀ®¤¹¤ë¤è¤¦¤Ë¶¯ À©¤µ¤ì¤¿¤é¡¢²æ¡¹¤Ï¤½¤Î¤è¤¦¤Ê¥¢¥¤¥Ç¥£¥¢¤òÊü´þ¤¹¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¤³¤È¤ò¼Â¹Ô¤¹¤ë ¤¿¤á¤ÎÆ°µ¡¤È¤Ê¤ë¤Î¤Ï¡¢Â¾¿Í¤¬¤É¤Î¤è¤¦¤ËËÝÌõ¤ò¤¹¤ë¤Î¤«¤ò¹Í¤¨¤Æ ¤¤¤ë¥×¥í¥°¥é¥Þ¤«¤é¤è¤ê¤â¡¢¤à¤·¤í¤½¤ì¤Ë²ÁÃͤò¸«¤¤¤À¤¹·Ð¸³¤òÀѤó¤ÀËÝÌõ¼Ô¤« ¤é¤Î°Õ¸«¤Ç¤¹¡£

n(po-next-entry)¥³¥Þ¥ó¥É¤äp (po-previous-entry)¥³¥Þ¥ó¥É¤Ï¡¢¤½¤ì¤¾¤ìľ¸å¤Î¥¨¥ó¥È¥ê¡¢Ä¾Á°¤Î¥¨¥ó¥È ¥ê¤Ë¥«¡¼¥½¥ë¤òÆ°¤«¤·¤Þ¤¹¡£n¤¬ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Ë¤¢¤ë¤È¤­¤Ë»ØÄꤵ¤ì¤¿¤ê¡¢ p¤¬ºÇ½é¤Î¥¨¥ó¥È¥ê¤Ë¤¢¤ë¤È¤­¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¥«¡¼¥½¥ë¤ò°ÜÆ°¤·¤Þ¤»¤ó¡£

<(po-first-entry)¤È>(po-last-entry)¤È¤¤¤¦¥³¥Þ¥ó ¥É¤Ï¡¢¤½¤ì¤¾¤ì¥«¡¼¥½¥ë¤òPO¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î¥¨¥ó¥È¥ê¡¢ºÇ¸å¤Î¥¨¥ó¥È¥ê¤Ë°ÜÆ°¤· ¤Þ¤¹¡£¥«¡¼¥½¥ë¤¬PO¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥¨¥ó¥È¥ê¤Ë¤¢¤Ã¤¿¤È¤­¡¢¤Û¤È¤ó¤É¤ÎPO¥â¡¼¥É ¥³¥Þ¥ó¥É¤Ï`After last entry'¤Î¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢ <¤È>¤Ï¥«¡¼¥½¥ë¤¬PO¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë¤Ê¤¤¤è¤¦¤Ê¾õÂ֤ǤâÆ°ºî ¤¬²Äǽ¤Ê¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥«¡¼¥½¥ë¤¬ºÇ¸å¤Î¥¨¥ó¥È¥ê¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤Ç¤â»È¤¦¤³ ¤È¤¬¤Ç¤­¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò¶õ¤ÎPO¥Õ¥¡¥¤¥ë¤Ç¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¥¨ ¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£PO¥â¡¼¥É¤ò¡¢ÂÐÏÃŪ¤Ë¥½¡¼¥¹¤«¤é¶õ¤ÎPO¥Õ¥¡¥¤¥ë¤òËä¤á¤Æ¤¤¤¯¤è ¤¦¤Ë¤¹¤ë³«È¯·×²è¤¬¤¢¤ê¤Þ¤¹¡£See section 3.3 ËÝÌõÂоÝʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±.

ÆÃÄê¤Î¥¨¥ó¥È¥ê¤òËÝÌõ¤¹¤ëÁ°¤Ë¡¢ËÝÌõ¼Ô¤Ï´ØÏ¢¤¹¤ë¥¨¥ó¥È¥ê¤Ç»È¤ï¤ì¤Æ¤¤¤ëÍѸì¤ä ¸ìË¡¤ò»²¾È¤¹¤ë¤¿¤á¤ËPO¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤òį¤á¤ëɬÍפ¬¤¢¤ë¤«¤É¤¦¤«¤ò·è¤á ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï¤â¤Á¤í¤ó¡¢¤½¤Î»þÅÀ¤Ç¤Î¥«¡¼¥½¥ë°ÌÃÖ¤ò´ö¤Ä¤«¤Î¥ì¥¸ ¥¹¥¿¤ËÊݸ¤·¡¢¸å¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤òÌ᤹¤¿¤á¤Ë¥ì¥¸¥¹¥¿¤ËÊݸ¤·¤¿Ãͤò»È¤¦¤È¤¤¤¦ Emacs¤Îɸ½àŪ¤Ê¤ä¤êÊý¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¤·¡¢location ring¤ò»È¤¦¤³¤È¤â¤Ç¤­ ¤Þ¤¹¡£

PO¥â¡¼¥É¤ÏÊ̤Υ¢¥×¥í¡¼¥Á¤òÄ󶡤·¤Þ¤¹¡£¥«¡¼¥½¥ë°ÌÃÖ¤òÆÃÊ̤ʥ¹¥¿¥Ã¥¯¤ËÊݸ¤¹ ¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£m¥³¥Þ¥ó¥É(po-push-location)¤Ï¡¢Ã±¤Ë¸½ºß¤Î°Ì ÃÖ¤ò¥¹¥¿¥Ã¥¯¤ËÄɲ䷤ơ¢°ÊÁ°¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë°ÌÃÖ¾ðÊó¤Î¾å¤Ë¿·¤·¤¤¤â¤Î¤ò¥×¥Ã ¥·¥å¤·¤Þ¤¹¡£r¥³¥Þ¥ó¥É(po-pop-location)¤Ï¥¹¥¿¥Ã¥¯¤ÎºÇ¾å°Ì¤ÎÍ× ÁǤò¼è¤ê½Ð¤·¤Æ¡¢¼è¤ê½Ð¤·¤¿Í×ÁǤ˷ë¤ÓÉÕ¤±¤é¤ì¤Æ¤¤¤ë°ÌÃ֤ؤȥ«¡¼¥½¥ë¤ò°ÜÆ°¤· ¤Þ¤¹¡£¤³¤Î°ÌÃ֤ϥ«¡¼¥½¥ë¤òľÁ°¤ËÊݸ¤µ¤ì¤¿°ÌÃ֤ذÜÆ°¤µ¤»¤ër¤¬¼¡¤Ë»È ¤ï¤ì¤¿¤È¤­¤Ë¾ÃÈñ¤µ¤ì¤Þ¤¹¡£¤³¤Î°ÌÃÖ¾ðÊó¤Ï»ÈÍѤµ¤ì¤ë¤Þ¤Ç¥¹¥¿¥Ã¥¯¾å¤Ëα¤Þ¤ê¤Ä ¤Å¤±¤Þ¤¹¡£

ËÝÌõ¼Ô¤¬°ÌÃÖ¥¹¥¿¥Ã¥¯¾å¤Ë°ÌÃÖ¤òÊݸ¤·¤Æ¤ª¤­¤¿¤¤¤È˾¤à¤Î¤Ç¤·¤¿¤é¡¢¥¹¥¿¥Ã¥¯¤Î ºÇ¾å°Ì¤Ë¤¢¤ëÍ×ÁǤ˷ë¤ÓÉÕ¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤ò¸«¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£ ¤½¤·¤ÆËÝÌõ¼Ô¤Ïr¤Îľ¸å¤Ëm¤ò»È¤Ã¤Æ¡¢¸å¤ÇÌá¤ë¤¿¤á¤ÎÌÜ°õ¤òȼ¤¤¤Ä¤Ä Ǥ°Õ¤Î¾ì½ê¤Ø°ÜÆ°¤·¤Þ¤¹¡£

x(po-exchange-location)¥³¥Þ¥ó¥É¤ÏÊݸ¤µ¤ì¤¿¥í¥±¡¼¥·¥ç¥ó¤Î¥¹¥¿¥Ã ¥¯¤ÎºÇ¾å°Ì¤Ë¤¢¤ëÍ×ÁǤ˴ØÏ¢ÉÕ¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Ø¤Î¥«¡¼¥½¥ë¤ÎºÆ°ÌÃÖÉÕ¤± (reposition)¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¡¢°ÜÆ°Á°¤Ë¸½ºß¤Î¥¨¥ó¥È¥ê¤Î°ÌÃÖ¤ËÂбþ¤¹¤ëºÇ¾å °ÌÍ×ÁǤòÃÖ¤­´¹¤¨¤Þ¤¹¡£½¾¤Ã¤Æ¡¢x¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ë¤È¡¢Æó¤Ä¤Î ¥¨¥ó¥È¥ê¤Î´Ö¤ÇÆþ¤ìÂؤ¨¤¬¹Ô¤ï¤ì¤Þ¤¹¡£¤³¤ì¤òÀ®¤·¿ë¤²¤ë¤¿¤á¤Ë¡¢ËÝÌõ¼Ô¤ÏºÇ½é¤Î ¥¨¥ó¥È¥ê¤Ë¥«¡¼¥½¥ë¤òÃÖ¤¤¤Æm¤ò»È¤Ã¤Æ¡¢¤½¤ì¤«¤é¥«¡¼¥½¥ë¤òÆóÈÖÌܤΥ¨¥ó ¥È¥ê¤ËÆ°¤«¤·¤Þ¤¹¡£¤½¤·¤ÆÆþ¤ìÂؤ¨¤Î¤¿¤á¤Ëx¤ò»È¤¤¤Þ¤¹¡£


2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½

PO¥Õ¥¡¥¤¥ë¤Î³Æ¥¨¥ó¥È¥ê¤ËÆÃÄê¤Îʸ»úÎó¤ò¥¨¥ó¥³¡¼¥É¤·¤Æ¤ª¤¯¤È¤¤¤¦¤³¤È¤Ë¤Ä¤¤¤Æ ¤Ï¡¢Â¿¤¯¤Î°Û¤Ê¤Ã¤¿ÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£¤Ê¤¼¤Ê¤é¡¢Ê£¿ô¹Ô¤ËÅϤëʸ»úÎó¤Î°úÍѤäʬ³ä ¤ÎÊýË¡¤Ï¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤·¡¢¹¹¤Ë¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ÎÉÕ¤¤¤¿¥¨¥¹¥±¡¼¥×¥·¡¼¥± ¥ó¥¹¤Ë¤è¤ëÆü쥭¥ã¥é¥¯¥¿¤Îɽ¸½ÊýË¡¤â°ì¤Ä¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¹¡£PO¥â¡¼¥É¤Î´ö¤Ä¤« ¤Îµ¡Ç½¤Ï¡¢´û¤Ë¸ºß¤·¤Æ¤¤¤ëPO¥Õ¥¡¥¤¥ëÃæ¤Çmsgid¥Õ¥£¡¼¥ë¥É¤Ë¤¢¤ë¥¨¥ó¥³¡¼ ¥É¤µ¤ì¤¿ÆÃÄê¤Îʸ»úÎó¤ò¸¡º÷¤¹¤ëPO¥â¡¼¥É¤Îµ¡Ç½¤Ë°Í¸¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Îǧ¼±¤ò´Ê ñ¤Ë¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¡¢PO¥â¡¼¥É¤¬¤¹¤Ù¤Æ¤ÎÁȤ߹þ¤ßµ¡Ç½¤òÆâÉôŪ¤Ë»ý¤Ã¤Æ¤¤¤¿¤È¤· ¤Æ¤â¡¢¤½¤ì¤ò¹â®¤Ë¹Ô¤¦¤Î¤Ïµ»½ÑŪ¤Ë¤Ïº¤Æñ¤Ç¤¹¡£¤³¤Î¸úΨ¤Ë´Ø¤¹¤ëÌäÂê¤ò²ò·è¤¹ ¤ë¤¿¤á¡¢²æ¡¹¤Ïʸ»úÎó¤òɸ½àŪ(canonical)¤Ëɽ¸½¤¹¤ë¤³¤È¤ò·èÄꤷ¤Þ¤·¤¿¡£

PO¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ëÅÁÅýŪ¤Ê(conventional)ʸ»úÎó¤Îɽ¸½¤Ë´Ø¤·¤Æ¤Ï¸½ºßµÄÏÀÃæ¤Ç ¤¢¤ê¡¢¤½¤·¤ÆPO¥â¡¼¥É¤Îɸ½àŪµ­Ë¡¤Ë¤Ä¤¤¤Æ¤â¼Â¸³Ãæ¤Ç¤¹¡£Åù²Á¤Êʸ»úÎó¤òɽ¤ï¤¹ ¤¿¤á¤ÎÅý°ìŪ¤ÊÊýË¡¤Ë¸þ¤±¤Æ¡¢xgettext¤ÈPO¥â¡¼¥É¤ÎξÊý¤òÅý¹ç¤¹¤ë¤³¤È ¤ÏÍ­ÍѤǤ¹¡£GNU gettext¤Îxgettext¤ò»È¤Ã¤¿»þÅÀ¤Ç¡¢PO¥â¡¼¥É¤¬ ɬÍפȤ¹¤ëÆâÉôŪ¤ÊÀµµ¬²½¤¬¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¤Î¤Ç¤¹¤«¤é¡£»öºÙ¤«¤ÊPO¥â¡¼¥É¤Ë ¤è¤ëÀµµ¬²½¤Ï¡¢¤É¤³¤«¤«¤é¤«¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤ëPO¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Î¤ß¤Ë¡¢¤¢¤ë¤¤ ¤Ï¤½¤ì¼«¿È¤òȯŸ¤µ¤»¤ë¤¿¤á¤ÎµÄÏÀ¤Î¤È¤­¤Î¤ß¤ËɬÍפȤʤê¤Þ¤¹¡£

PO¥Õ¥¡¥¤¥ëÆâ¤Ë¤¢¤ë¡¢¾¯¤Ê¤«¤é¤ºÉ¸½àŪµ­Ë¡¤òɬÍפȤ·¤Æ¤¤¤ëʸ»úÎó¤òÀµµ¬²½¤¹¤ë ¤Ë¤Ï¡¢°Ê²¼¤ÎPO¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£

M-x po-normalize
PO¥Õ¥¡¥¤¥ëÁ´ÂΤò¡¢¥¨¥ó¥È¥ê¤Î·Á¼°¤ò·¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ÇÀ°Æܤ·¤Þ¤¹¡£

Æü쥳¥Þ¥ó¥ÉM-x po-normalize(ÆÃÄê¤Î¥­¡¼¤Ë¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤»¤ó)¤Ï ¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤òºÆ¸¡ºº¤·¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¤â¤Î¤ÈËÝÌõ¤µ¤ì¤¿¤â¤Î¤ÎξÊý¤Îʸ»úÎó ¤Î¥¨¥ó¥È¥ê¤¬PO¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ëµ¬Äê¤Î·Á¼°¤Ç¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ·¤Þ ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤ÏºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¸å¤í¤Ë¤¢¤ë¥´¥ß¤â¼è¤ê½ü¤­¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó ¥É¤ÏPO¥Õ¥¡¥¤¥ë¤ò¤É¤³¤«¤«¤é¿·µ¬¤Ë¥¤¥ó¥Ý¡¼¥È¤·¤Æ¤­¤¿¤È¤­¤ä¡¢É¸½àŪ¤Ê¥¯¥©¡¼¥È ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊѹ¹¤¹¤ëºÝ¤ËÍ­ÍѤǤ¹¡£¤³¤Îɸ½àŪ¤Ê¥¯¥©¡¼¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë ÊÑ´¹¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤è¤ê¥¯¥ê¡¼¥ó¤ÊPO¥Õ¥¡¥¤¥ë¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤À¤±¤Ç¤Ê¤¯¡¢ ¾¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤¬Ê¸»úÎó¤ò¹â®¤Ë¸¡º÷¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

M-x po-normalize¤Ï³Æ¥¨¥ó¥È¥ê¤ËÂФ·¤Æ½èÍý¤ò»°²ó»î¹Ô¤·¤Þ¤¹¡£ºÇ½é¤ÎÊýË¡ ¤ÏGNU gettext 0.6¤è¤êÁ°¤ËºÎÍѤµ¤ì¤Æ¤¤¤¿PO¥Õ¥¡¥¤¥ëÊÑ´¹¤Î¥Ò¥å¡¼¥ê¥¹¥Æ¥£ ¥¯¥¹¤Ç¡¢msgid¤Èmsgstr¥Õ¥£¡¼¥ë¥É¤ÏÊ£¿ô¹Ô¤ò°·¤¦ºÝ¤ËK&R¥¹¥¿¥¤ ¥ë¤ÎCʸ»úÎó¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ì¤é¤Î¥Ò¥å¡¼¥ê¥¹¥Æ¥£¥¯¥¹¤ÏÇѻߤµ¤ì¤¿¥¨¥ó¥È ¥ê¤È´ØÏ¢¤Å¤±¤é¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç½ªÎ»¤¹¤ë¥³¥á¥ó¥È¤ËÂФ·¤Æ¤Ï ¼ºÇÔ¤·¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ì¤é¤Î¥Ò¥å¡¼¥ê¥¹¥Æ¥£¥¯¥¹¤ÏÇѻߤµ¤ì¤¿¥¨¥ó¥È¥ê¤Ë³¤¯¹Ô¤â ¥³¥á¥ó¥È¤Ë¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤«¤é¤Ç¤¹¡£°ìöÁ´¤Æ¤Î¸Å¤¤PO¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¤Ê ¤é¡¢¤³¤ÎºÇ½é¤ÎÊýË¡¤Ï¾ÃÌǤ¹¤ë¤Ç¤·¤ç¤¦¡£ÂèÆó¡¢Âè»°¤ÎÊýË¡¤ÏÁ´¤Æ¤Î msgid¤È msgstrʸ»úÎó¤ò¸ÄÊ̤ËÀµµ¬²½¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÊýË¡¤Ï XView¤Î msgfmt¤¬·Ñ³¹Ô¤ËÂФ·¤Æ»ÈÍѤ·¤Æ¤¤¤¿¤â¤Î¤Ç¤¢¤ê¡¢·Ñ³¤¹¤ë¥Ð¥Ã ¥¯¥¹¥é¥Ã¥·¥å¤òºï½ü¤·¤Þ¤¹¡£

¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éPO¥Õ¥¡¥¤¥ë¤Ø¤È¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ëÌÀ²÷¤ÊÀµµ¬²½ ¥³¥Þ¥ó¥É¤¬¤¢¤ë¤â¤Î¤Î¡¢º£¤Ç¤Ï¸½ºß¤Îµ¬Äê¤Î¿Ê²½¤Ï¤è¤ê·Ý½ÑŪ¤Ë´ËϤµ¤ì¤Æ¤¤¤Þ ¤¹¡£Àµµ¬²½¤Î¥³¥Þ¥ó¥É¤È¤·¤ÆÄó°Æ¤µ¤ì¤Æ¤¤¤ë½¤Àµ¤ò¹Ô¤¦¤Î¤Ï´Êñ¤Ç¤¹¡£·ë¶É¤Î¤È ¤³¤í¡¢Â¾¤Î GNU gettext¥Ä¡¼¥ë·²¤¬¼«Æ°Åª¤Ë¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ì¤Ð¤è¤¤¤Î ¤Ç¤¹¡£Ê¸»úÎó¤Îɸ½àŪµ­Ë¡¤Ë¤Ä¤¤¤Æ°Ê²¼¤Ë½Ò¤Ù¤Þ¤¹¡£¤³¤ì¤é¤Î¾ðÊó¤ÏGNU Emacs ¤ò»ÈÍѤ»¤º¡¢Æȼ«¤ÎÊýË¡¤Ç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"

ʸ»úÎó¤ÎÀµµ¬²½¤ÎºÙÉô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤Þ¤À´ö¤Ä¤«¤Î̤·èÄê»ö¹à¤¬»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤é¤ÎÌäÂ꤬²ò·è¤·¤¿¤é¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ëµ­ºÜ¤µ¤ì¤Þ¤¹¡£


3. ¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î½àÈ÷

C¥×¥í¥°¥é¥à¥½¡¼¥¹¥³¡¼¥É¤ÎÊѹ¹¤Ï3Ãʳ¬¤Ëʬ¤±¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£ºÇ½é¤Ë¡¢¥á¥Ã¥»¡¼¥¸ ÊÑ´¹¤¬É¬ÍפÊÁ´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Ë¡¢ÃÏ°è²½ÍѤδؿô·²¤Î¸ºß¤òÃΤ餻¤Ê¤±¤ì¤Ð¤Ê¤ê ¤Þ¤»¤ó¡£¼¡¤Ë¡¢¥×¥í¥°¥é¥à½é´ü²½»þ¤ËGNU gettext¤ò»È¤¦½àÈ÷¤ò¤¹¤ëɬÍ× ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ÏÄ̾ïmain´Ø¿ôÆâ¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£ºÇ¸å¤Ë¡¢¥×¥í¥°¥é¥àÃæ¤ÇÊÑ´¹¤¬ ɬÍפÊÁ´Ê¸»úÎó¤òÁܤ·½Ð¤·¤Æ¥Þ¡¼¥¯ÉÕ¤±¤·¤Þ¤·¤ç¤¦¡£

¤³¤³¤Ç¡¢¥×¥í¥°¥é¥àËô¤Ï¥Ñ¥Ã¥±¡¼¥¸¤¬´û¤ËɬÍפÊGNU gettext¥Õ¥¡¥¤¥ë¤òÍø ÍѤǤ­¤ë¤è¤¦¤Ë½¤Àµ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤·¤Æ`Makefile'¤Î½¤Àµ¤â´°Î»¤·¤Æ¤ª¤ê¡¢ (see section 10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ) ¡¢Ê¸»úÎó¤ÎËÝÌõ¤ÎÂоݤȤʤëÁ´¤Æ¤ÎC¥×¥í¥°¥é¥à¤Ë¼¡¤Î°ì ¹Ô¤¬Äɲ䵤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Þ¤¹¡£

 
#include <libintl.h>

C¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤ËÂФ¹¤ë¤½¤Î¾¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤Î¾Ï¤Î¸å¤Î¥»¥¯¥·¥ç¥ó ¤ÇÀâÌÀ¤·¤Þ¤¹¡£

3.1 gettext¤Î½èÍý¤ò¥È¥ê¥¬¤¹¤ë  
3.2 ¥½¡¼¥¹Ãæ¤Ç¤Î¥Þ¡¼¥¯ÉÕ¤±¤ÎÊýË¡  
3.3 ËÝÌõÂоÝʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±  
3.4 ³¤¯Ê¸»úÎó¤Ë´Ø¤·¤Æ²¿¤«¤òÅÁ¤¨¤ë¤³¤È  
3.5 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó  


3.1 gettext¤Î½èÍý¤ò¥È¥ê¥¬¤¹¤ë

¥í¥«¡¼¥ë¥Ç¡¼¥¿¤Î½é´ü²½¤Ï¡¢¤É¤Î¥×¥í¥°¥é¥à¤Ç¤â¤³¤Î¤è¤¦¤Ê·Á¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£²¼¤Î Îã¤ò»²¾È¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

 
int
main (argc, argv)
     int argc;
     char argv;
{
  ...
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);
  ...
}

PACKAGE¤ÈLOCALEDIR¤Ï¡¢¶¦¤Ë`config.h'Ëô¤ÏMakefileÃæ¤Ç ÄêµÁ¤¹¤ë¤Î¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£¤è¤ê¿¤¯¤Î¾ðÊó¤¬É¬ÍפǤ¢¤ì¤Ð¡¢gettext¤Î ¥½¡¼¥¹¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

LC_ALL¤Î»ÈÍѤÏŬÀڤǤϤʤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£LC_ALL¤ÏÁ´¤Æ¤Î¥í¥«¡¼ ¥ë¥«¥Æ¥´¥ê¡¢ÆäËLC_CTYPE¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£LC_CTYPE¤Ï¡¢ `ctype.h'Æâ¤ÇÄêµÁ¤µ¤ì¤ëisalnum´Ø¿ô¤Ê¤É¤¬°·¤¦¥­¥ã¥é¥¯¥¿¥¯¥é¥¹¤Î ·èÄê¤Ë±Æ¶Á¤·¤Þ¤¹¡£¤³¤ì¤é¤ÏÆäˡ¢¤¢¤ë¼ï¤ÎÆþÎϸÀ¸ì¤ò°·¤¦¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤è ¤¯¤¢¤ê¤Þ¤»¤ó¡£Î㤨¤Ð¡¢¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Çc + (ÌõÃí: ¥»¥Ç¥£¥æ¡¢ ¥Õ¥é¥ó¥¹¸ì¤Ç»ÈÍѤµ¤ì¤ëʸ»ú)¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ï¥Õ¥é¥ó¥¹¤Ç ¤ÏÆ°¤¤¤Æ¤âÊƹñ¤Ç¤ÏÆ°¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£

°ìÉô¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¤Þ¤¿¡¢LC_ALL¥í¥«¡¼¥ë°Ê³°¤Î¤â¤Î¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ scanf´Ø¿ôÃæ¤Î¿ôÃͤΥѡ¼¥¹¤Ë´Ø¤¹¤ëÌäÂê¤òÊú¤¨¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ "C"¥í¥«¡¼¥ëÆâ¤Ë¤¢¤Ã¤Æ¤âǧ¼±¤µ¤ì¤ëÄɲäΥե©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¡¢µ¬³Ê¤Ç ¤Ï¸ÀµÚ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¡£¤·¤«¤·¡¢°ìÉô¤Î¥·¥¹¥Æ¥à¤Ï"C"¥í¥«¡¼¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã ¥È¤Ë¤¢¤ë¿ôÃͤò̵»ë¤¹¤ë¤è¤¦¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¾õ¶·²¼¤Ç¤Ï¡¢¿ôÃͤ¬"C"¥í¥«¡¼ ¥ë¤Þ¤¿¤Ï¥í¡¼¥«¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤¢¤í¤¦¤È¤Ê¤«¤í¤¦¤È¡¢¿ôÃÍɽµ­ÊýË¡¤Îǧ¼±¤¬ÉÔ ²Äǽ¤Ë¤Ê¤ë¤è¤¦¤ÊÌäÂ꤬¤¢¤ë¤³¤È¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ï²¿Àé¤â¤Î¥»¥Ñ¥ì¡¼¥¿Ê¸»ú¤¬»È¤ï ¤ì¤Æ¤¤¤ë¤³¤È¤Ëµ¯°ø¤·¤Þ¤¹¡£°ìÉô¤Î¥í¥«¡¼¥ë¤Ï¡¢"C"¥í¥«¡¼¥ë¤Ë¤ª¤¤¤Æ¾®¿ô ÅÀ¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë'.'¤ò¹ñ²ÈŪ»ö¾ð¤Î¤¿¤á¤ËÊ̤ÊÍÑÅӤ˻Ȥ¦¤è¤¦¤ËÄê µÁ¤·¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¤¿¤á¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¾å¤ÎÎã¤Ë¤ª¤±¤ëLC_ALL¤Î¹Ô¤ò setlocale¤Î¹Ô¤ÎʤӤËÃÖ¤­´¹¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢

 
{
  ...
  setlocale (LC_TIME, "");
  setlocale (LC_MESSAGES, "");
  ...
}

¤³¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£Á´¤Æ¤ÎPOSIX½àµò¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢LC_CTYPE¡¢ LC_COLLATE¡¢LC_MONETARY¡¢LC_NUMERIC¡¢¤½¤·¤Æ LC_TIME¥í¥«¡¼¥ë¥«¥Æ¥´¥ê¤¬»ÈÍѲÄǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£°ìÉô¤Î¸½ÂåŪ¤Ê¥·¥¹ ¥Æ¥à¤Ç¤Ï¡¢XPG2½àµò¥·¥¹¥Æ¥à¤Ç¤«¤Ä¤ÆLC_RESPONSES¤È¸Æ¤Ð¤ì¤Æ¤¤¤¿¡¢ LC_MESSAGES¥í¥«¡¼¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


3.2 ¥½¡¼¥¹Ãæ¤Ç¤Î¥Þ¡¼¥¯ÉÕ¤±¤ÎÊýË¡

C¥½¡¼¥¹Ãæ¤ÎËÝÌõ¤òɬÍפȤ¹¤ëÁ´¤Æ¤Îʸ»úÎó¤Ï¥Þ¡¼¥¯ÉÕ¤±(marking)¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡£ ¥Þ¡¼¥¯ÉÕ¤±¤¬¤Ê¤µ¤ì¤¿ËÝÌõ²Äǽ¤Êʸ»úÎó¤Ï¡¢¤¢¤ëÆÃÄê¤Î´Ø¿ô¤ä¥×¥ê¥×¥í¥»¥Ã¥µ¥Þ¥¯ ¥í¤Îñ°ì¤Î°ú¿ô¤È¤·¤Æɽ¤µ¤ì¤Þ¤¹¡£ËÝÌõ¤Î¤¿¤á¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ë´Ø¿ô¤ä¥Þ¥¯¥í¤Ï ¤Û¤ó¤Î¾¯¤·¤·¤«¤Ê¤¯¡¢¤½¤ì¤é¤Î̾Á°¤Ï¥Þ¡¼¥¯ÉÕ¤±ÍÑ¥­¡¼¥ï¡¼¥É(marking keyword)¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Þ¡¼¥¯ÉÕ¤±¤Ïʸ»úÎó¤ËÂФ·¤Æ¹Ô¤¦¤È¤¤¤¦¤è¤ê¤Ï¤à¤·¤í¡¢¡¢ ʸ»úÎ󤽤켫¿È¤È·ë¤ÓÉÕ¤±¤é¤ì¤ë¤â¤Î¤Ç¤¹¡£¤³¤Î¼êË¡¤Ï¾¤Ç¤â»È¤ï¤ì¤Þ¤¹¡£°ìÎã¤È ¤·¤Æ¡¢¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤ë¤³¤È¤Ë¤è¤ê½ÐÎϤµ¤ì¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¤³¤È¤ò¹Í¤¨¤Æ ¤ß¤Þ¤·¤ç¤¦¡£¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î½ñ¼°Ê¸»úÎó¤ÏËÝÌõ¤òɬÍפȤ·¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê½ñ ¼°»ØÄêʸ»úÎóÃæ¤Ç¤Ï¡¢½ñ¼°»ØÄêʸ»úÎóÃæ¤Î`%s'½ñ¼°»ØÄê¤òÄ̤¸¤ÆÍÍ¡¹¤Êʸ»ú Îó¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¤«¤é¡¢½ÐÎÏ·ë²Ì¤ÏÍÍ¡¹¤Ê·Á¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê½ñ¼°¤ò¼è¤ë `error_string_out()'¤Î¤è¤¦¤Ê´Ø¿ô¤Î¤¿¤á¤Ë¡¢¤³¤Î´Ø¿ô¤Î½ÐÎϤηë²ÌÁ´¤Æ¤ò ¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ë¤Î¤ÏÆÀºö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¤³¤Î¥Þ¡¼¥¯ÉÕ¤±Áàºî¤Ë¤ÏÆó¤Ä¤Î¥´¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¡£ºÇ½é¤Î¥´¡¼¥ë¤Ï¼Â¹Ô»þ¤ËËÝÌõʸ »úÎó¤ò¼è¤ê½Ð¤¹¤¿¤á¤Î°ú¤­¶â¤È¤Ê¤ë¤³¤È¤Ç¤¹¡£¥­¡¼¥ï¡¼¥É¤Ï¡¢Å¬ÀÚ¤ÊËÝÌõʸ»úÎó¤ò ưŪ¤ËÊÖ¤¹¤³¤È¤Î¤Ç¤­¤ë¥ë¡¼¥Á¥ó¤òÄ̤¸¤Æ²ò·è¤µ¤ì¤Þ¤¹¡£ÂçÉôʬ¤ÎËÝÌõ¤¬É¬ÍפÊʸ »úÎó¤Ï¼Â¹Ô°ÌÃ֤Ǹ¡º÷¤µ¤ì¡¢ÊÑ¿ô¤ËÈ¿±Ç¤·¤¿¤ê¡¢´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì ¤Þ¤¹¡£¤·¤«¤·¤³¤ì¤Ï°ìÈÌŪ¤ÊÊýË¡¤Ç¤¢¤ê¡¢°ìÉô¤ÎËÝÌõʸ»úÎó¤Ï¹½Â¤Åª¤Ê½é´ü²½ÊýË¡ ¤Ë¤è¤Ã¤Æ¸¡º÷¤µ¤ì¤Þ¤¹¡£See section 3.5 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

¥Þ¡¼¥¯ÉÕ¤±¤ÎÆóÈÖÌܤΥ´¡¼¥ë¤Ï¡¢xgettext¤¬¥×¥í¥°¥é¥à¥½¡¼¥¹¤Ë¤¢¤ëÁ´¤Æ ¤ÎËÝÌõÂоÝʸ»úÎó¤ò¥¹¥­¥ã¥ó¤·¤ÆÃê½Ð¤·¡¢PO¥Õ¥¡¥¤¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÀ¸À®¤¹¤ë¤Î ¤ò¼ê½õ¤±¤¹¤ë¤³¤È¤Ç¤¹¡£

ËÝÌõ²Äǽ¤Êʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±¤ò¤¹¤ë¤¿¤á¤Îɸ½àŪ¥­¡¼¥ï¡¼¥É¤Ï`gettext' ¤Ç¤¹¡£¤³¤ì¤ÏGNU gettextÁ´ÂΤÎ̾Á°¤Ë¤â¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Ç¡¢ `gettext'¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤ä¥Þ¥¯¥í¡¢´Ø¿ô¤À¤±¤ò»È¤¦¤³¤È¤ÏÈó¾ï¤Ë´Êñ¤Ç ¤¹¡£¤·¤«¤·¡¢¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Çgettext¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤¦¤ÈÈÑ»¨¤Ë¤Ê¤Ã ¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¼ç¤Ê¥­¡¼¥ï¡¼¥É¤È¤·¤Æ¤Ïû¤¯ÊØÍø¤ÇÌÜΩ¤¿¤Ê¤¤¤â¤Î¤òÄ󶡤¹¤Ù¤­ ¤Ç¤·¤ç¤¦¡£¼ÂºÝ¤Î¤È¤³¤í¡¢¥­¡¼¥ï¡¼¥É¤Ï¹ñºÝ²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î¿¤¯¤Îʸ»ú Îó¤ËÂФ·¤Æ¸½¤ì¤ë¤Ç¤·¤ç¤¦¤¬¡¢¥×¥í¥°¥é¥Þ¤Ï¼«Ê¬¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹¤Ë¤½¤¦¤¤¤Ã ¤¿¤â¤Î¤¬°î¤ì¤«¤¨¤ë¤è¤¦¤Ê¤³¤È¤ÏÉáÄÌ˾¤Þ¤Ê¤¤¤Ç¤·¤ç¤¦¡£¹¹¤Ë¡¢¥½¡¼¥¹¥³¡¼¥É¤ò 79·å¤«¤é80·å¤Ë¼ý¤á¤ë¤¿¤á¤Ë¤Ï¡¢¿åÊ¿Êý¸þ¤Ë¥¹¥Ú¡¼¥¹¤ò¼è¤ëŤ¤¥­¡¼¥ï¡¼¥É¤ÏÉÔ Íø¤Ë¤Ê¤ê¤Þ¤¹¡£

¥Ñ¥Ã¥±¡¼¥¸¤Î¿¤¯¤Ç¤Ï¡¢¥­¡¼¥ï¡¼¥É¤È¤·¤Æ`_'(ñ°ì¤Î¥¢¥ó¥À¡¼¥é¥¤¥ó)¤ò»È¤Ã ¤Æ¤¤¤Æ¡¢`gettext("Translatable string")'¤ÎÂå¤ï¤ê¤Ë `_("Translatable string")'¤Èµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£¹¹¤Ë¡¢GNUɸ½à¤Ë¤ª¤±¤ë¥³¡¼ ¥Ç¥£¥ó¥°µ¬Â§¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¡Ö¥­¡¼¥ï¡¼¥É¤È³«¤­³ç¸Ì¤Î´Ö¤Ë°ì¤Ä¤Î¥¹¥Ú¡¼¥¹¤òÃÖ ¤¯¡×¤È¤¤¤¦µ¬Â§¤¬¡¢¤³¤ìÆÃÍ­¤Ê»È¤¤Êý¤òÌÀ³Î¤Ë¤¹¤ë¤¿¤á¤Ë´Ë¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì ¤Ç¡¢ËÝÌõʸ»úÎó¤Ò¤È¤Ä¤¢¤¿¤ê¤ËɬÍפÊʸ»ú¿ô¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Ï¡¢¥¢¥ó¥À¡¼¥é¥¤¥ó ¤È°ì¤Ä¤Î³ç¸Ì¤Î¥Ú¥¢¤Î»°Ê¸»ú¤Ë²¡¤¨¤é¤ì¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢GNU gettext¤¬¤³¤Î¤ä¤êÊý¤òÆâÉôŪ¤Ë»È¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¸ø¼°¤Ë¤Ï´«¤á¤Þ¤»¤ó¡£ ¼ÂºÝ¤Î¤È¤³¤í¡¢ËÜÅö¤ÎÀµ¤·¤¤¥­¡¼¥ï¡¼¥É¤Ï`gettext'¤Ê¤Î¤Ç¤¹¡£ `gettext'¤ÎÂå¤ï¤ê¤Ë`_'¤ò»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤ÏÈó¾ï¤Ë´Êñ¤Ç¡¢¼¡ ¤Î¤è¤¦¤ËÀë¸À¤·¤Æ¤ª¤­¤Þ¤¹¡£

 
#include <libintl.h>
#define _(String) gettext (String)

ñ½ã¤Ë`#include <libintl.h>'¤È¤¹¤ë¤è¤ê¡¢¾å¤ÎÎã¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

Êݼé¤È¤¤¤¦ºî¶È¤Ï¡¢ºÇ½é¤Î¼ê´Ö¤ËÈæ¤Ù¤ì¤ÐÁêÂÐŪ¤Ë´Êñ¤Ç¤¹¡£¥×¥í¥°¥é¥Þ¤È¤·¤Æ¡¢ ¤¢¤Ê¤¿¤¬Ê¸»úÎó¤òÄɲᦽ¤Àµ¤·¤¿¤ê¤·¤¿¤é¡¢Äɲᦽ¤Àµ¤µ¤ì¤¿Ê¸»úÎó¤¬ËÝÌõ¤òɬÍ× ¤È¤¹¤ë¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£¤½¤·¤Æ¤½¤ì¤¬ËÝÌõ¤µ¤ì¤ë¤Ù¤­¤À¤È »×¤Ã¤¿¤Î¤Ê¤é¡¢¤½¤ì¤ò`_()'¤ÎÆ⦤ËÃÖ¤­¤Þ¤¹¡£`"%s: %d"'¤ÏËÝÌõ¤ò ɬÍפȤ·¤Ê¤¤Ê¸»úÎó¤ÎÎã¤Ç¤¹¡£


3.3 ËÝÌõÂоÝʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±

PO¥â¡¼¥É¤Ë¤ª¤±¤ëµ¡Ç½¤ÏËÝÌõ¼Ô¸þ¤±¤È±¾¤¦¤è¤ê¤Ï¥×¥í¥°¥é¥Þ¸þ¤±¤Ç¤¹¡£¤½¤·¤Æ¡¢¥× ¥í¥°¥é¥Þ¤ËÂФ·¤Æ¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Ë¤¢¤ëʸ»úÎó¤¬ËÝÌõ²Äǽ¤Ç¤¢¤ë¤«¡¢¤½¤¦¤Ç¤Ê ¤¤¤«¤Î¥Þ¡¼¥¯ÉÕ¤±¤òÂÐÏÃŪ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤Î¤è¤¦¤Êʸ »úÎó¤ò¸«¤Ä¤±¤À¤·¤Æ¥Þ¡¼¥¯ÉÕ¤±¤ò¤¹¤ë¤È¤¤¤¦ºî¶È¤¬¡¢¥×¥í¥°¥é¥Þ¤Ë¤È¤Ã¤Æ¼«Ê¬¤Î¹¥ ¤­¤Ê¥¨¥Ç¥£¥¿¤ò»È¤Ã¤Æ¹Ô¤¨¤ë¤´¤¯´Êñ¤Êºî¶È¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢PO¥â¡¼¥É¤Ï¤³¤Îºî ¶È¤ò¤è¤ê²÷Ŭ¤Ë¤¹¤ë¤Î¤Ç¤¹¡£¹¹¤ËPO¥â¡¼¥É¤Ï¡¢¹ñºÝ²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥×¥í¥°¥é ¥à¥½¡¼¥¹Ãæ¤ÎËÝÌõÂоݤȤʤëʸ»úÎó¤Ë¥Þ¡¼¥¯ÉÕ¤±¤·¤Æ¤¤¤ë´Ö¡¢¥×¥í¥°¥é¥Þ¤ËËÝÌõ¼Ô ¤Î¤è¤¦¤Êµ¤Ê¬¤ò¡¢ËÝÌõ¼Ô¤Ë¥×¥í¥°¥é¥Þ¤Î¤è¤¦¤Êµ¤Ê¬¤òÌ£¤ï¤»¤Þ¤¹¡£

¤³¤³¤ÇÀâÌÀ¤¹¤ëPO¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤¬ÂоݤȤ¹¤ë¥×¥í¥°¥é¥à¥½¡¼¥¹·²¤Ï¡¢¥×¥í¥¸¥§¥¯ ¥È¤Î¤¿¤á¤Ë¹½ÃÛ¤µ¤ì¤¿Emacs¥¿¥°¥Æ¡¼¥Ö¥ë¤ò»ý¤Ä¤Ù¤­¤Ç¤¹¡£¤³¤ì¤Ï´Êñ¤Ê¤³¤È¤Ç¡¢ Ǥ°Õ¤Î¥·¥§¥ë¥¦¥£¥ó¥É¥¦Ãæ¤Ç¥×¥í¥¸¥§¥¯¥È¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¡¢¼¡¤Ëµó ¤²¤ë¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹¡£

 
etags src/*.[hc] lib/*.[hc]

¤³¤³¤Ç¡¢`src/'¤ä`lib/'¤È¤¤¤Ã¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëÁ´¤Æ¤Î `.h'¤È`.c'¤È¤ò½èÍý¤·¤¿¤¤¾õ¶·¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤ÏÁ´ ¤Æ¤Î¥Õ¥¡¥¤¥ë¤òõº÷¤·¤Æ¡¢¥×¥í¥¸¥§¥¯¥È¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë`TAGS'¤È¤¤ ¤¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤ÏEmacs¤¬Íý²ò¤¹¤ë¤³¤È¤Î½ÐÍè¤ë¡¢Æüì¤Ê¥Õ¥©¡¼¥Þ¥Ã ¥È¤Ë¤è¤ëÆâÍƤÎÍ×Ìó¤Ë¤Ê¤ê¤Þ¤¹¡£

GNU¥³¡¼¥Ç¥£¥ó¥°É¸½à¤Ë½¾¤Ã¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢¥½¡¼¥¹¤ò¹½À®¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡ ¥¤¥ë¤«¤é¹½À®¤µ¤ì¤¿¥¿¥°¥Õ¥¡¥¤¥ë(tags¤«TAGS)¤¬Á´¤Æ¤Î¥Ç¥£¥ì¥¯¥È ¥ê¤Ë¸ºß¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

`TAGS'¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ÍÑ°Õ¤µ¤ì¤ì¤Ð¡¢¥×¥í¥°¥é¥Þ¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Ë¤¢ ¤ëËÝÌõÂоÝʸ»úÎó¤ò¥Þ¡¼¥¯ÉÕ¤±¤¹¤ë¤¿¤á¤Ë¸å½Ò¤¹¤ë¥³¥Þ¥ó¥É·²¤¬»ÈÍѤǤ­¤Þ¤¹¡£¤³ ¤ì¤é¤Î¥³¥Þ¥ó¥É¤ÏPO¥Õ¥¡¥¤¥ë¥¦¥£¥ó¥É¥¦¤ÎÃæ¤Çµ¯Æ°¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤¹¤¬¡¢¤Þ ¤ÀPO¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤È¤¤¤¦¤³¤È¤¬¤¢¤ê¤¬¤Á¤Ç¤¹¡£¤³¤ì¤Ï¤½¤ì¤Û¤É ÌäÂê¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò¼ç¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¢°ÂÁ´¤Ë¿·¤·¤¤¶õ¤Î PO¥Õ¥¡¥¤¥ë¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤¢¤Ê¤¿¤¬¥Þ¡¼¥¯ÉÕ¤±¤·¤¿¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Î ËÝÌõÂоÝʸ»úÎó¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¶õ¤ÎPO¥Õ¥¡¥¤¥ë¤Ï½ù¡¹¤ËËþ¤¿¤µ¤ì¤Æ¤æ¤¯¤Ç¤·¤ç¤¦¡£

,
¥×¥í¥°¥é¥à¥½¡¼¥¹¤«¤é¡¢ËÝÌõ¤Î¸õÊä¤Ë¤Ê¤ë¤È»×¤ï¤ì¤ëʸ»úÎó¤ò¸¡º÷¤·¤Þ¤¹¡£

M-,
ºÇ¸å¤Ë¸«¤Ä¤«¤Ã¤¿Ê¸»úÎó¤Ë`_()'¤ÇÌÜ°õÉÕ¤±¤ò¤·¤Þ¤¹¡£

M-.
ºÇ¸å¤Ë¸«¤Ä¤±¤¿Ê¸»úÎó¤Ë¡¢²Äǽ¤Ê¥­¡¼¥ï¡¼¥É¥»¥Ã¥È¤«¤é¼è¤ê½Ð¤·¤¿¥­¡¼¥ï¡¼¥É¤ÇÌÜ °õÉÕ¤±¤ò¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤³¤ì¤é¤Î¥­¡¼¥ï¡¼¥É¤Î´öʬ¤Î´ÉÍý¤òµö¤¹¤è¤¦¤Ê Á°ÃÖ°ú¿ô¤ò¼è¤ê¤Þ¤¹¡£

,(po-tags-search)¥³¥Þ¥ó¥É¤Ï¼¡¤Ë¸½¤ì¤ëËÝÌõ¤ÎÂоݤȤʤë¤è¤¦¤Êʸ »úÎó¤ò¸¡º÷¤·¤Þ¤¹¡£¤½¤·¤ÆEmacs¤ÎÊ̤Υ¦¥£¥ó¥É¥¦¤Ë¥×¥í¥°¥é¥à¥½¡¼¥¹¤òɽ¼¨¤·¡¢ ¤½¤Î¥¦¥£¥ó¥É¥¦¤ÎÀèƬÉÕ¶á¤Ë¸¡º÷¤µ¤ì¤¿Ê¸»úÎ󤬤¯¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¤â¤·Ê¸»úÎó¤¬ ¥¦¥£¥ó¥É¥¦¤Ë¼ý¤Þ¤é¤Ê¤¤¤Û¤ÉÂ礭¤±¤ì¤Ð¡¢¤½¤Î½ªÃ¼Éôʬ¤À¤±¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤Î ¤è¤¦¤Ê¾ì¹ç¡¢¥«¡¼¥½¥ë¤ÏPO¥Õ¥¡¥¤¥ë¤Î¥¦¥£¥ó¥É¥¦¤Ë»Ä¤ê¤Þ¤¹¡£É½¼¨¤µ¤ì¤Æ¤¤¤ëʸ»ú Îó¤¬Ê̤θÀ¸ì¤Ç¤Ï°Û¤Ê¤Ã¤¿É½µ­¤ò¤µ¤ì¤ë¤â¤Î¤Ç¤¢¤ì¤Ð¡¢M-,¤äM-.¤ò»È¤Ã ¤Æ¥Þ¡¼¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Îʸ»úÎó¤ò̵»ë¤¹¤ë¤Î¤Ê¤é¡¢Ã±¤Ë,¥³¥Þ¥ó ¥É¤ò·«¤êÊÖ¤¹¤³¤È¤Ë¤è¤Ã¤Æ¼¡¤Îʸ»úÎó¤Ø¤È¥¹¥­¥Ã¥×¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

»°Ê¸»ú°Ê¾å¤ÎŤµ¤Îʸ»úÎó¤ÏËÝÌõÂоݤȤʤêÆÀ¤Þ¤¹¡£Æóʸ»ú¤«¤éÀ®¤ëʸ»úÎó¤Ï¡¢¤½ ¤ì¤¬Ê¸»ú°Ê³°¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤ÐËÝÌõ¸õÊä¤È¤·¤Æ¤ß¤Ê¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥³¥Þ ¥ó¥É¤Ïʸ»ú¤ò´Þ¤Þ¤Ê¤¤Ê¸»úÎó¤ä¡¢Æ±¤¸Ê¸»ú¤«¤é¤Î¤ß¹½À®¤µ¤ì¤ëʸ»úÎó¤ò̵»ë¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢¥³¥á¥ó¥ÈÃæ¤Ë¤¢¤ëʸ»úÎó¤ä¡¢PO¥â¡¼¥É¤¬ÃΤäƤ¤¤ë¥­¡¼¥ï¡¼¥É(¸å½Ò)¤Ë¤è¤Ã ¤Æ´û¤Ë¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤ëʸ»úÎó¤Ë¤Ä¤¤¤Æ¤â̵»ë¤·¤Þ¤¹¡£

¤â¤·¤Þ¤ÀEmacs¤ËÂФ·¤Æ¤É¤Î`TAGS'¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ¤³¤Î¥³¥Þ¥ó¥É¤òºÇ½é¤Ë¼Â¹Ô¤·¤¿¤È¤­¡¢¤³¤Î¥³¥Þ¥ó¥É¤Ï¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç¤É¤Î `TAGS'¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¤«¤ò¿Ò¤Í¤Þ¤¹¡£Emacs¤ÎM-x visit-tags-table¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢»ÈÍѤ·¤¿¤¤`TAGS'¥Õ¥¡¥¤¥ë¤Ë¸å¤«¤é Êѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£@xref{Tags, , Tag Tables, The Emacs Editor}.

,¥³¥Þ¥ó¥É¤ò»È¤¦¤È¡¢¸¡º÷¤ÏľÁ°¤Ë¹Ô¤ï¤ì¤¿¸¡º÷¤Î°ÌÃÖ¤«¤éºÆ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤Î½èÍý¤Ï`TAGS'¥Õ¥¡¥¤¥ë¤Ë½¾¤Ã¤ÆÁ´¤Æ¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹¤¬½èÍý¤µ¤ì¤ë¤Þ ¤Ç³¤±¤é¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Á°ÃÖ°ú¿ô(C-u ,)¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ºÇ ½é¤Î¥Õ¥¡¥¤¥ë¤«¤é¸¡º÷¤òºÆ³«¤¹¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£Ã¢¤·¤³¤Î¾ì¹ç¡¢ (ËÝÌõ¤¹¤ë¤È¤·¤Æ)´û¤Ë¥Þ¡¼¥¯ÉÕ¤±¤·¤¿Ê¸»úÎó¤Ï¼«Æ°Åª¤Ë¥¹¥­¥Ã¥×¤µ¤ì¤Þ¤¹¡£

,¥³¥Þ¥ó¥É¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ä̾ï¤ÎEmacs¤Î¥¿¥°¥³¥Þ¥ó¥É¤ò¼ÙË⤷¤Æ¤·¤Þ ¤¦¤è¤¦¤Ê¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£Î㤨¤Ð¡¢Ä̾ï¤Îtags-search¤ä tags-query-replace¤È¤¤¤Ã¤¿¥³¥Þ¥ó¥É¤Ï¡¢,¤Î¥µ¡¼¥Á¤Îή¤ì¤òÃæÃǤ¹ ¤ë¤³¤È¤Ê¤¯»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤ÏºÇ½é¤Î ,¥³¥Þ¥ó¥É(¤â¤·¤¯¤Ï Á°ÃÖ°ú¿ô¤òȼ¤Ã¤¿,¥³¥Þ¥ó¥É)¤ÏºÇ½é¤Î¥¿¥°¥Õ¥¡ ¥¤¥ë¤ò¸¡º÷¤¹¤ë¤¿¤á¤ÎÄ̾ï¤ÎEmacs¥¿¥°¤òºÆ¤Ó½é´ü²½¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤º¡¢¤½¤Î ¤¿¤á¤Ë¤³¤ÎºÆ½é´ü²½¤ÏÉÔÅö¤Ê¤â¤Î¤Ç¤¢¤ë¤È´ÇÐö¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

M-,(po-mark-translatable)¥³¥Þ¥ó¥É¤Ï¡¢°ìÈֺǶḫ¤Ä¤«¤Ã¤¿Ê¸»úÎó ¤ò`_'¥­¡¼¥ï¡¼¥É¤Ç¥Þ¡¼¥¯ÉÕ¤±¤·¤Þ¤¹¡£M-. (po-select-mark-and-mark)¥³¥Þ¥ó¥É¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤é¥­¡¼¥ï¡¼¥É¤ò°ì ¤ÄÆɤ߹þ¤ß¡¢¤½¤Î¥­¡¼¥ï¡¼¥É¤ò»È¤Ã¤Æʸ»úÎó¤Î¥Þ¡¼¥¯ÉÕ¤±¤ò¤·¤Þ¤¹¡£¤³¤ì¤éξÊý¤Î ¥³¥Þ¥ó¥É¤Ï¡¢¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤¿Ê¸»úÎó¤ò»È¤Ã¤ÆPO¥Õ¥¡¥¤¥ëÃæ¤Ë¿·¤·¤¤Ì¤ËÝÌõ¥¨¥ó¥È ¥ê¤ò¼«Æ°Åª¤ËÀ¸À®¤·¤Þ¤¹(¤â¤·Ä¾¤Á¤ËËÝÌõ¤¹¤ë¤³¤È¤¬¹¥¤­¤Ê¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤Ë¤è ¤ê¤¹¤°¤ËËÝÌõ¤¬¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹)¡£M-,¤äM-.¤Ë¤è¤ëÊѹ¹¤Ï¥× ¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Î¹Ô¤ò80¥«¥é¥à¤è¤ê¤âŤ¯¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢¤¢¤Ê¤¿¤Ï²þ¹Ô¤·¤Æ¤½ ¤Î¹Ô¤ò°Û¤Ê¤ë·Á¤ÇºÆ¥¤¥ó¥Ç¥ó¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£PO¥â¡¼¥É¤«¤é O¥³¥Þ¥ó¥É¤ò»È¤Ã¤¿¤ê¡¢GNU Emacs¤«¤é¥¦¥£¥ó¥É¥¦¤òÊѹ¹¤¹¤ë¥³¥Þ¥ó¥É¤ò»È¤¦ ¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¥¦¥£¥ó¥É¥¦¤Ë°ÜÆ°¤·¤Æ²¿¤é¤«¤ÎɬÍפʽ¤Àµ¤ò¹Ô ¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¸å³¤Îʸ»úÎó¤ËÂФ·¤ÆM-,¤ò»È¤¤¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢PO¥Õ¥¡ ¥¤¥ë¥¦¥£¥ó¥É¥¦¤Ë¥«¡¼¥½¥ë¤òÌ᤹¤¿¤á¤ËÄ̾ï¤ÎEmacs¥³¥Þ¥ó¥É¤ò»È¤¦É¬Íפ¬¤¢¤ë¤Ç ¤·¤ç¤¦¡£

M-.¤Ë¤Ï¡¢Ëè²ó¥­¡¼¥ï¡¼¥É¤òÌÀ¼¨Åª¤Ë¥¿¥¤¥×¤·¤Ê¤¯¤Æ¤â¤¹¤à¤è¤¦¡¢ºî¶È¤ò¥¹ ¥Ô¡¼¥É¥¢¥Ã¥×¤µ¤»¤ë´ö¤Ä¤«¤Îµ¡Ç½¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ½é¤Î¥¹¥Ô¡¼¥É¥¢¥Ã¥×¤Ï¡¢ ¹¥¤ß¤Î¥­¡¼¥ï¡¼¥É¤¬É½¼¨¤µ¤ì¤¿¾ì¹ç¡¢¤½¤ì¤ò»È¤¦¤Ë¤Ï¤¿¤Àñ¤Ë¥×¥í¥ó¥×¥È ¤ËÂФ·¤ÆRET¤ò¥¿¥¤¥×¤¹¤ì¤Ð¤è¤¤¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ÂèÆó¤Î¥¹¥Ô¡¼¥É¥¢¥Ã ¥×¤Ï¡¢¥­¡¼¥ï¡¼¥É¤ÎºÇ½é¤Î¤Û¤¦¤ò¥¿¥¤¥×¤¹¤ì¤Ð¡¢¥³¥Þ¥ó¥É¤¬¤½¤ì¤ò¼«Æ°Åª¤ËÊä´°¤· ¤Æ¤¯¤ì¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£PO mode¤Ï»ÈÍѲÄǽ¤ÊÁ´¤Æ¤Î¥­¡¼¥ï¡¼¥É¤òÃÎ¤Ã¤Æ ¤ª¤ê¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¥­¡¼¥ï¡¼¥É¤Î¥ß¥¹¥¿¥¤¥×¤ÏÃƤ«¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¥­¡¼¥ï¡¼¥É¤Î¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ?¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¥³¥Þ¥ó¥É¤Ï¤¢¤Ê¤¿¤¬Áª Âò¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë´ûÃΤΥ­¡¼¥ï¡¼¥ÉÁ´¤Æ¤ò¥ê¥¹¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£¥³¥Þ¥ó¥É¤ËÁ°ÃÖ °ú¿ô¤¬ÅϤµ¤ì¤¿¾ì¹ç(C-u M-.)¡¢¥×¥í¥°¥é¥à¥½¡¼¥¹¤äPO¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã ¥Õ¥¡¤ËÂФ¹¤ë¹¹¿·¤Ï¹Ô¤ï¤ì¤º¡¢Âå¤ï¤ê¤Ëñ½ã¤Ê¥­¡¼¥ï¡¼¥É´ÉÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£¤³¤Î ¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Ï¥­¡¼¥ï¡¼¥É¤ò¿Ö¤Í¤Þ¤¹¡£¥­¡¼¥ï¡¼¥É¤ò´°Á´¤Ëµ­½Ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ ¤³¤³¤ÇÀßÄꤷ¤¿¥­¡¼¥ï¡¼¥É¤¬°Ê¸å¤ÎM-.¤Ç»ÈÍѤµ¤ì¤ë¥­¡¼¥ï¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£ ¹¹¤Ë¡¢¤³¤Î¿·¤·¤¤¥­¡¼¥ï¡¼¥É¤Ï¼«Æ°Åª¤Ë°Ê¸å¤Î¹¥¤ß¤Î¥­¡¼¥ï¡¼¥É¤È¤Ê¤ê¤Þ ¤¹¡£C-u M-.¤ËÂФ¹¤ëÆþÎϤȤ·¤Æ´ûÃΤΥ­¡¼¥ï¡¼¥É¤òÆþÎϤ·¤¿¾ì¹ç¡¢¤¿ ¤Àñ¤Ë¹¥¤ß¤Î¥­¡¼¥ï¡¼¥É¤¬Êѹ¹¤µ¤ì¤ë¤À¤±¤È¤Ê¤ê¤Þ¤¹¡£

M-.¥³¥Þ¥ó¥É¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤ëÁ´¤Æ¤Î¥­¡¼¥ï¡¼¥É¤Ï¡¢Ê¸»úÎó¤Î¸¡º÷»þ¤Ë ,¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¤âǧ¼±¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¤¢¤é¤æ¤ë´ûÃΤΥ­¡¼¥ï¡¼¥É¤Ë¤è¤Ã ¤Æ´û¤Ë¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤Æ¤¤¤ëʸ»úÎó¤Ï¼«Æ°Åª¤Ë¥¹¥­¥Ã¥×¤µ¤ì¤Þ¤¹¡£¤â¤·Â¿¤¯¤ÎPO¥Õ¥¡ ¥¤¥ë¤¬Æ±»þ¤Ë³«¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤ì¤é¤ÏÆȼ«¤Ë´ûÃΤΥ­¡¼¥ï¡¼¥É¤ÎÁȤòÊÝ»ý¤·¤Æ ¤¤¤Þ¤¹¡£¸½ºß¡¢PO¥â¡¼¥É¤Ë¤Ï´ûÃΤΥ­¡¼¥ï¡¼¥É¤òºï½ü¤¹¤ë¼êÃʤϤ¢¤ê¤Þ¤»¤ó¡£´ûÃÎ ¤Î¥­¡¼¥ï¡¼¥É¤òºï½ü¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤òÊĤ¸¤Æ(q¥³¥Þ¥ó¥É¤¬»È¤¨¤ë¤Ç ¤·¤ç¤¦)¡¢¿·¤¿¤Ë³«¤­Ä¾¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£PO¥Õ¥¡¥¤¥ë¤¬Emacs¤Î¿·¤·¤¤¥¦¥£¥ó¥É¥¦ ¤È¤·¤Æ³«¤«¤ì¤¿¾ì¹ç¡¢`gettext'¤È`_'¤À¤±¤¬´ûÃΤΥ­¡¼¥ï¡¼¥É¤È¤Ê¤ê¡¢ `gettext'¤¬M-.¤Î¹¥¤ß¤Î¥­¡¼¥ï¡¼¥É¤È¤Ê¤ê¤Þ¤¹¡£»ö¼Â¡¢`_'¤òÁª Âò¤¹¤ë¤Î¤Ï¹¥¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£¤½¤ì¤ÏM-,¥³¥Þ¥ó¥É¤ÎÁȤ߹þ¤ß¤È¤·¤Æ´û¤Ë ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£


3.4 ³¤¯Ê¸»úÎó¤Ë´Ø¤·¤Æ²¿¤«¤òÅÁ¤¨¤ë¤³¤È

C¥×¥í¥°¥é¥àÃæ¤Îʸ»úÎó¤Ï¤·¤Ð¤·¤Ð¡¢printf¥Õ¥¡¥ß¥ê¤Î´Ø¿ô¸Æ¤Ó½Ð¤·Ãæ¤Ç»È ¤ï¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó(format strings)¤Ï¡¢¤½¤ì¤é¤¬%¤« ¤é»Ï¤Þ¤ë¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò(format specifiers)¤ò´Þ¤à¤³¤È¤¬½ÐÍè¤ë¤È¤¤¤¦ÅÀ¤Ç Æüì¤Ê¤â¤Î¤Ç¤¹¡£¤³¤³¤Ç¡¢¤³¤Î¤è¤¦¤Ê¥³¡¼¥É¤¬¤¢¤ë¤È²¾Äꤷ¤Þ¤¹¡£

 
printf (gettext ("String `%s' has %d characters\n"), s, strlen (s));

¾åµ­¤Îʸ»úÎó¤ò¥É¥¤¥Ä¸ì¤Ø¤ÈËÝÌõ¤·¤¿¾ì¹ç¡¢¤³¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£

 
"%d Zeichen lang ist die Zeichenkette `%s'"

¤¿¤È¤¨¥É¥¤¥Ä¸ì¤¬Ï令ʤ«¤Ã¤¿¤È¤·¤Æ¤â¡¢C¥×¥í¥°¥é¥Þ¤Ï¤³¤ì¤Ç¤Ï²¿¤«¤Þ¤º¤¤¤È»× ¤¦¤Ç¤·¤ç¤¦¡£Æó¤Ä¤Î¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò¤Î½çÈÖ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢ printf¤Î°ú¿ô¤Ï¤â¤Á¤í¤ó¤½¤Î¤Þ¤Þ¤Ê¤Î¤Ç¤¹¡£¤³¤³¤Ç¤Ï¡¢Ê¸»úÎó¤ÎŤµ¤¬Ê¸ »úÎó¤Ø¤Î¥¢¥É¥ì¥¹¤È¤·¤Æ¸«Ðö¤µ¤ì¤ë¤¿¤á¡¢¤³¤ì¤Ï¤ª¤½¤é¤¯ÌäÂê¤È¤Ê¤ë¤³¤È¤Ç¤·¤ç¤¦¡£

¼Â¹Ô»þ¤ËËÝÌõ¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤ë¥¨¥é¡¼¤òËɤ°¤¿¤á¡¢msgfmt¥Ä¡¼¥ë¤Ï ËÜÍè¤Î°ú¿ô¤ÈËÝÌõʸ»úÎ󤬷¿¤È¸Ä¿ô¤Ë¤ª¤¤¤Æ¥Þ¥Ã¥Á¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÀÅŪ¤Ë¥Á¥§¥Ã ¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤·¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï·Ù¹ð¤¬½Ð¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¡¢¼Â ¹Ô»þ¤Ë¥¨¥é¡¼¤Ë¤è¤Ã¤ÆÌäÂ꤬ȯÀ¸¤¹¤ë¤³¤È¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

Àè¤Î¥É¥¤¥Ä¸ìËÝÌõ¤Ë¤ª¤±¤ë¸ì½ç¤¬Àµ¤·¤¤¤È¤¹¤ì¤Ð¡¢¤½¤ì¤Ï¤³¤Î¤è¤¦¤Ë½ñ¤«¤ì¤ë¤Ù¤­ ¤Ç¤¹¡£

 
"%2$d Zeichen lang ist die Zeichenkette `%1$s'"

msgfmtÃæ¤Î¥ë¡¼¥Á¥ó¤Ï¤³¤ÎÆÃÊ̤ʵ­Ë¡¤ò°·¤¨¤Þ¤¹¡£

Á´¤Æ¤Î¥×¥í¥°¥é¥àÃæ¤Îʸ»úÎ󤬥ե©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ç¤¢¤ë¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ `.po'¥Õ¥¡¥¤¥ëÃæ¤ÎÁ´¤Æ¤Îʸ»úÎó¤Ë¤Ä¤¤¤Æ¥Æ¥¹¥È¤¹¤ë¤³¤È¤Ïmsgfmt¤Ë ¤È¤Ã¤Æ¹¥¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£printfÃæ¤Ç»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤º¡¢Ê¸ »úÎ󤬥ե©¡¼¥Þ¥Ã¥È»ØÄê»Ò¤Î¤è¤¦¤Ë¸«¤¨¤ëʸ»úÎó¤ò´Þ¤ó¤Ç¤¤¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢¤³ ¤ì¤ÏÌäÂê¤È¤Ê¤ëÆÀ¤ë¤«¤é¤Ç¤¹¡£

½¾¤Ã¤Æ¡¢xgettext¤Ï¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¹Í¤¨¤é¤ì¤ë¤½¤ì¤é¤Îʸ»úÎó¤ËÂÐ ¤·¤ÆÆÃÊ̤ʥ¿¥°¤òÉÕÍ¿¤·¤Þ¤¹¡£¤³¤ì¤Ë¤ÏÀäÂÐŪ¤Ê¥ë¡¼¥ë¤¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯ ¤Þ¤Ç¤â¥Ò¥å¡¼¥ê¥¹¥Æ¥£¥Ã¥¯¤Ê¤â¤Î¤Ç¤¹¡£`.po'¥Õ¥¡¥¤¥ëÃæ¤Ç¡¢¤½¤Î¥¨¥ó¥È¥ê¤Ï c-format¤È¤·¤Æ#,¥³¥á¥ó¥È¹Ô¤Ë¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤Þ¤¹(see section 2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È)¡£

Ãí°Õ¿¼¤¤ÆɼԤϤ³¤³¤Ç¡¢¤³¤ì¤ÏºÆ¤ÓÌäÂê¤òµ¯¤³¤¹¤È¸À¤¦¤³¤È¤Ç¤·¤ç¤¦¡£¥Ò¥å¡¼¥ê¥¹ ¥Æ¥£¥¯¥¹¤Ï¤½¤ì¤ò°­¤¤¤È¿ä¬¤¹¤ë¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ï¿¿¼Â¤Ç¤¢¤ê¡¢ xgettext¤Ï¥×¥í¥°¥é¥Þ¤Ë·èÄê¤ò¹Ô¤ï¤»¤ë¤¿¤á¤ÎÆÃÊ̤ʼïÎà¤Î¥³¥á¥ó¥È¤òǧ ¼±¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£gettext¥­¡¼¥ï¡¼¥É¤ÈƱ¤¸¹Ô¤«¡¢¤¢¤ë¤¤¤ÏľÁ°¤Î¹Ô ¤Ë¤ª¤¤¤Æ¡¢xgettext¥×¥í¥°¥é¥à¤¬xgettext:c-format¤È¤¤¤¦¸ì¤ò´Þ¤ó ¤À¥³¥á¥ó¥È¤ò¸«¤Ä¤±½Ð¤·¤¿¤Ê¤é¡¢¤É¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤Î¤½¤Îʸ»úÎó¤Ë¤Ï c-format¥Õ¥é¥°¤¬ÉÕÍ¿¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¥³¥á¥ó¥È¤Ï¡¢Ê¸»úÎ󤬥ƥ¹¥È¤µ ¤ì¤½¤ì¤¬ËÜÅö¤Ë¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ç¤¢¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢xgettext¤¬¤½¤ì ¤ò¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æǧ¼±¤Ç¤­¤«¤Ã¤¿¾ì¹ç¤Ë¤â»ÈÍѤǤ­¤Þ¤¹¡£¥³¥á¥ó¥È¤¬ gettext¥­¡¼¥ï¡¼¥É¤ÈƱ¤¸¹Ô¤Ë¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤ÏËÝÌõ¤µ¤ì¤ëʸ»úÎó¤è¤ê¤â Á°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£

¤³¤Î¾õ¶·¤ÏÉÑÈˤËȯÀ¸¤·¤Þ¤¹¡£printf´Ø¿ô¤Ï¤·¤Ð¤·¤Ð¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò ¤ò´Þ¤Þ¤Ê¤¤Ê¸»úÎó¤È¶¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢¤½¤ì¤Ïfputs¤ò»ÈÍѤ¹ ¤ë¤È¤­¤â¤âÄ̾綠¤¦¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢xgettext¤Ï¤½¤Îʸ»úÎó¤ò¥Õ¥©¡¼ ¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æǧ¼±¤·¤Þ¤»¤ó¤¬¡¢¤â¤·ËÝÌõ¤¬Àµ¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò¤ò´Þ¤ó ¤Ç¤¤¤¿¾ì¹ç¤Ï¤É¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¡£printf´Ø¿ô¤Ï¥Ñ¥é¥á¡¼¥¿¤Ë¥¢¥¯¥»¥¹¤· ¤è¤¦¤È¤·¤Þ¤¹¤¬¡¢ËÜÍè¤Î¥³¡¼¥É¤Ï¤¤¤«¤Ê¤ë¥Ñ¥é¥á¡¼¥¿¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¥Ñ¥é ¥á¡¼¥¿¤Ï¸ºß¤·¤Þ¤»¤ó¡£

¤â¤Á¤í¤óxgettext¤Ï¤¢¤Ù¤³¤Ù¤Î´Ö°ã¤Ã¤¿·èÄê¤ò¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¥Õ¥©¡¼ ¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æ¥Þ¡¼¥¯¤µ¤ì¤¿Ê¸»úÎó¤Ï¼Â¤Ï¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó ¤Ç¤·¤¿¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢msgfmt¤ÏÂçÎ̤ηٹð¤ò½Ð¤·¡¢`.po'¥Õ¥¡¥¤ ¥ë¤ÎËÝÌõ¤ò¤µ¤»¤Þ¤»¤ó¡£¤³¤Î¤è¤¦¤Ê´Ö°ã¤Ã¤¿·èÄê¤ò¤ä¤á¤µ¤»¤ë¤¿¤á¤Ë¡¢Àè¤Ë»È¤Ã¤¿ ¤Î¤ÈƱ¤¸¤è¤¦¤ÊÊýË¡¤¬»ÈÍѤǤ­¤Þ¤¹¡£xgettext:no-c-format¤È¤¤¤¦Ê¸»úÎó¤ò ´Þ¤ó¤À¥³¥á¥ó¥È¤ò»ÈÍѤ¹¤ì¤Ð¤¤¤¤¤À¤±¤Ç¤¹¡£

c-format¤È¤·¤Æʸ»úÎ󤬥ޡ¼¥¯¤µ¤ì¤¿¤Ë¤â´Ø¤ï¤é¤º¡¢¤½¤ì¤¬Àµ¤·¤¯¤Ê¤¤¾ì¹ç¡¢ ¿®Íê¤Ç¤­¤ë·èÄ꤬¹Ô¤¨¤ë¥æ¡¼¥¶¤Ï¤½¤ì¤òȯ¸«¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ See section 4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°¤ò»²¾È¤¹¤ì¤Ð¡¢--debug¥ª¥×¥·¥ç¥ó¤¬¤³¤ÎÌäÂê ¤ò²ò·è¤¹¤ë¤¿¤á¤Ë»È¤¨¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£


3.5 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó

Ãí°Õ¿¼¤¤ÆɼԤϤ³¤³¤Ç¡¢gettext¤ä¤½¤Î¾¤ÎƱÍͤΥġ¼¥ë¤ÏËÝÌõ²Äǽ¤Êʸ»ú Îó¤ò¾ï¤Ë¥Þ¡¼¥¯ÉÕ¤±½ÐÍè¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò»ØŦ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¼¡ ¤Î¤è¤¦¤Ê¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

 
{
  static const char *messages[] = {
    "some very meaningful message",
    "and another one"
  };
  const char *string;
  ...
  string
    = index > 1 ? "a default message" : messages[index];

  fputs (string);
  ...
}

"a default message"¤È¤¤¤¦Ê¸»úÎó¤ËÂФ¹¤ë¥Þ¡¼¥¯ÉÕ¤±¤Ë¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó ¤¬¡¢messages¤ò½é´ü²½¤·¤Æ¤¤¤ëʸ»úÎó¤ËÂФ¹¤ë¥Þ¡¼¥¯ÉÕ¤±¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤³¤³¤Ç¹Ô¤¦¤³¤È¤Ï²¿¤Ç¤·¤ç¤¦? ²æ¡¹¤ÏÆó¤Ä¤Îºî¶È¤ò¹Ô¤ï¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ºÇ½é¤Ë¹Ô ¤¦¤Ù¤­¤³¤È¤Ï¡¢xgettext¥×¥í¥°¥é¥à(see section 4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°)¤¬¤½¤Î ¤è¤¦¤Êʸ»úÎó¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¥Þ¡¼¥¯ÉÕ¤±¤ò¤¹¤ë¤³¤È¤Ç¡¢ÆóÈÖÌÜ¤Ë¹Ô ¤¦¤Ù¤­¤³¤È¤Ï¡¢¼Â¹Ô»þ¤Ëʸ»úÎó¤¬É½¼¨¤µ¤ì¤ëÁ°¤Ëʸ»úÎó¤òËÝÌõ¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£

ºÇ½é¤Î»Å»ö¤Ï¡¢no-op¤È¤¤¤¦Ì¾Á°¤Î¿·¤·¤¤¥­¡¼¥ï¡¼¥É¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤è¤êãÀ®¤Ç ¤­¤Þ¤¹¡£ÆóÈÖÌܤλŻö¤È¤·¤Æ¡¢ÇÛÎóÃæ¤Ë³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤ò»²¾È¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¾ì ½ê¤Ë¥Þ¡¼¥¯ÉÕ¤±¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£²ò·èÎã¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£

 
#define gettext_noop(String) (String)

{
  static const char *messages[] = {
    gettext_noop ("some very meaningful message"),
    gettext_noop ("and another one")
  };
  const char *string;
  ...
  string
    = index > 1 ? gettext ("a default message") : gettext (messages[index]);

  fputs (string);
  ...
}

fputs¤Ë¤è¤Ã¤Æ½ÐÎϤµ¤ì¤ëʸ»úÎó¤Ï¤É¤Î¾ì¹ç¤Ç¤âËÝÌõ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¤³¤È ¤òÍý²ò¤·¤Æ²¼¤µ¤¤¡£Äɲå­¡¼¥ï¡¼¥Égettext_noop¤òxgettext¤ËÃÎ¤é ¤»¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¤â¤Á¤í¤ó¡¢Àè¤ÎÎã¤À¤±¤¬²ò·èÊýË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¼¡¤Î¤è¤¦¤Ë¤·¤Æ¤âƱ¤¸¤³¤È¤¬½Ð Íè¤Þ¤¹¡£

 
#define gettext_noop(String) (String)

{
  static const char *messages[] = {
    gettext_noop ("some very meaningful message",
    gettext_noop ("and another one")
  };
  const char *string;
  ...
  string
    = index > 1 ? gettext_noop ("a default message") : messages[index];

  fputs (gettext (string));
  ...
}

¤·¤«¤·¤³¤ì¤Ë¤Ï´ö¤Ä¤«¤Î·çÅÀ¤¬¤¢¤ê¤Þ¤¹¡£Âè°ì¤Ë¡¢¥×¥í¥°¥é¥Þ¤Ï¼«Ê¬¤¬"a default message"¤È¤¤¤¦Ê¸»úÎó¤Î¤¿¤á¤Ëgettext_noop¤ò»È¤Ã¤Æ¤¤¤ë¤È¤¤¤¦ ¤³¤È¤ËÂФ·¤ÆÃí°Õ¤òʧ¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡¢gettext¤Î»ÈÍѤϵ©¤ì¤Ëͽ¬ ¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤à¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£ÂèÆó¤Ë¡¢GNU gettext¥é¥¤¥Ö¥é¥ê ¤ÎÆâÉô¤ÎÌäÂê¤È¤·¤Æ¡¢¤³¤Î¤ä¤êÊý¤Ç¤Ï¸úΨ¤¬²¼¤¬¤ë¤«¤é¤Ç¤¹¡£

½ÐÎϤ¬ËÜÅö¤ËÁ´¤Æ¤Î¥±¡¼¥¹¤ÇËÝÌõ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤È¤¤¤¦¤³¤È¤ò³Î¼Â¤Ë¤¹¤ë¤¿¤á ¤Ë¡¢À©¸æ¥Õ¥í¡¼¤ò²òÀϤ¹¤ëɬÍפ¬¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ï°ì¤Ä¤ÎÍøÅÀ¤È¤Ê¤ê¤Þ¤¹¡£¤·¤«¤· ¤³¤Î²òÀϤϰìÈÌŪ¤Ë¤½¤ó¤Ê¤ËÆñ¤·¤¤¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·¤¢¤é¤æ¤ë¾õ¶·¤Ë¤ª¤¤ ¤Æ¤½¤¦¤¹¤Ù¤­¤Ç¤¢¤ì¤Ð¡¢¤¢¤Ê¤¿¤Ï¤³¤Î¾õ¶·²¼¤Ç¤³¤ÎÆóÈÖÌܤμêË¡¤ò»È¤¦¤³¤È¤¬¤Ç¤­ ¤Þ¤¹¡£


4. ºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤Î½àÈ÷

4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°  
4.2 C¥½¡¼¥¹¤Îʸ̮  
4.3 ËÝÌõÍ×Ìóµ¡Ç½¤Î»ÈÍÑ  


4.1 xgettext¥×¥í¥°¥é¥à¤Îµ¯Æ°

 
xgettext [option] inputfile ...

`-a'
`--extract-all'
¤¹¤Ù¤Æ¤Îʸ»úÎó¤òÃê½Ð¤·¤Þ¤¹¡£

`-c [tag]'
`--add-comments[=tag]'
tag(¤â¤·¤¯¤Ï¥­¡¼¥ï¡¼¥É¤¬Àè¹Ô¤·¤Æ¤¤¤ë¹Ô)¤ò»ý¤Ä¥³¥á¥ó¥ÈÉôʬ¤ò½ÐÎÏ¥Õ¥¡ ¥¤¥ë¤Ë½ÐÎϤ·¤Þ¤¹¡£

`-C'
`--c++'
C++·Á¼°¤Î¥³¥á¥ó¥È¤òǧ¼±¤·¤Þ¤¹¡£

`--debug'
¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æ¥á¥Ã¥»¡¼¥¸¤ò¥Þ¡¼¥¯ÉÕ¤±¤¹¤ëÀÕǤ¤òÉ餦¿Í´Ö¤¬¡¢ c-format¥Õ¥é¥°¤Èpossible-c-format¥Õ¥é¥°¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë»È¤¤¤Þ ¤¹¡£¸å¼Ô¤Î¥Õ¥©¡¼¥à¤Ïxgettext¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¤â¤Î¤Ç¡¢¥Õ¥©¡¼ ¥Þ¥Ã¥È¥Õ¥©¡¼¥à¤Ï¥×¥í¥°¥é¥Þ¤¬¤½¤¦µ¬Äꤷ¤¿¾ì¹ç¤Ë»È¤ï¤ì¤Þ¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïc-format¥Õ¥©¡¼¥à¤Î¤ß¤¬»È¤ï¤ì¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï¤³¤Î¾ÜºÙ¤Ë ¤Ä¤¤¤Æ¹Í¤¨¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

`-d name'
`--default-domain=name'
½ÐÎÏÀè¤ò`messages.po'¤Ç¤Ï¤Ê¤¯¡¢`name.po'¤Ë¤·¤Þ¤¹¡£

ÆÃÊ̤ʥɥᥤ¥ó̾¤Ç¤¢¤ë`-'¤Þ¤¿¤Ï`/dev/stdout'¤Ï¡¢`ɸ½à½ÐÎÏ' ¤Ë½ÐÎϤ¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£

`-D directory'
`--directory=directory'
¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥¹¥­¥ã¥ó¤¹¤ëÁ°¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òdirectory¤ËÊѹ¹¤·¤Þ¤¹¡£ ºÇ½ªÅª¤Ë`.po'¥Õ¥¡¥¤¥ë¤Ï¸µ¡¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤­½Ð¤µ¤ì¤Þ¤¹¡£

`-f file'
`--files-from=file'
ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÆÀ¤ëÂå¤ï¤ê¤Ë¡¢file¤«¤é¼èÆÀ¤·¤Þ¤¹¡£

`--force'
¤¿¤È¤¨¥á¥Ã¥»¡¼¥¸¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤È¤·¤Æ¤â¡¢¾ï¤Ë½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ ¤¹¡£

`-h'
`--help'
¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£

`-I list'
`--input-path=list'
ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£

`-j'
`--join-existing'
´û¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤòÄɲä·¤Þ¤¹¡£

`-k word'
`--keyword[=word]'
¸¡º÷¤¹¤ë¥­¡¼¥ï¡¼¥É¤òÄɲä·¤Þ¤¹(word¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¡¼ ¥ï¡¼¥É¤ò»È¤ï¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹)¡£

ÌÀ¤é¤«¤Ë»ÈÍѤ·¤Ê¤¤¤³¤È¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢ gettext¡¢dgettext¡¢dcgettext¤Ègettext_noop¤¬ ¥Ç¥Õ¥©¥ë¥È¤Î¥­¡¼¥ï¡¼¥É¤È¤Ê¤ê¤Þ¤¹¡£

`-m [string]'
`--msgstr-prefix[=string]'
msgstr¥¨¥ó¥È¥ê¤ÎÀÜƬ¼­¤È¤·¤Æ¡¢string¤ä""¤ò»ÈÍѤ·¤Þ¤¹¡£

`-M [string]'
`--msgstr-suffix[=string]'
msgstr¥¨¥ó¥È¥ê¤ÎÀÜÈø¼­¤È¤·¤Æ¡¢string¤ä""¤ò»ÈÍѤ·¤Þ¤¹¡£

`--no-location'
`#: filename:line'¤È¤¤¤¦¹Ô¤ò½ÐÎϤ·¤Þ¤»¤ó¡£

`-n'
`--add-location'
`#: filename:line'¤È¤¤¤¦¹Ô¤òÀ¸À®¤·¤Þ¤¹(¥Ç¥Õ¥©¥ë¥È)¡£

`--omit-header'
`msgid ""'¥¨¥ó¥È¥ê¤ò»ý¤Ä¥Ø¥Ã¥À¤ò½ÐÎϤ·¤Þ¤»¤ó¡£

.gmo¥Õ¥¡¥¤¥ëÀ¸À®»þ¤ÎÊÑÆ°¤òÀä¤Ä¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¡¢¥Æ¥¹¥ÈÌÜŪ¤Ë»ÈÍѤ¹ ¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÏGNU gettext¥Ñ¥Ã¥±¡¼¥¸¤Ç»ÈÍѤǤ­¡¢ msgfmt¤Ç¤â»ÈÍѤǤ­¤Þ¤¹¡£Î¾Êý¤Î·ë²Ì¤ÏƱ¤¸¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£

`-p dir'
`--output-dir=dir'
dir¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥Õ¥¡¥¤¥ë¤ò½ÐÎϤ·¤Þ¤¹¡£

`-s'
`--sort-output'
¥½¡¼¥ÈºÑ¤ß¤Î½ÐÎϤòÀ¸À®¤·¡¢½ÅÊ£¤·¤¿¤â¤Î¤Ï¼è¤ê½ü¤­¤Þ¤¹¡£

`--strict'
Uniforumµ¬Äê¤ÎPO¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¸·Ì©¤Ë½¾¤Ã¤¿·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£

`-v'
`--version'
¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Æ½ªÎ»¤·¤Þ¤¹¡£

`-x file'
`--exclude-file=file'
file¤«¤é¤Î¥¨¥ó¥È¥ê¤òÃê½Ð¤·¤Þ¤»¤ó¡£

ÄɲäÎPO¥Õ¥¡¥¤¥ë¤Î¥µ¡¼¥Á¥Ñ¥¹¤Ï`/usr/local/share/nls/src/'¤È¤Ê¤ê¤Þ¤¹¡£

inputfile¤È¤·¤Æ`-'¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ï¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤ß¤Þ¤¹¡£

xgettext¤Î¤³¤Î¼ÂÁõ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¥Þ¥¯¥íÃæ¤Îʸ»úÎó¡¢ANSIµ¬³Ê¤Ç¤ÎÎÙ Àܤ·¤¿Ê¸»úÎó¤ÎÏ¢·ë¡¢Ê¸»úÎó¤Î·Ñ³¤Î¤¿¤á¤Î¹ÔËö¤Î¥¨¥¹¥±¡¼¥×¤Ê¤É¤Î¤è¤¦¤Ê¡¢´ö¤Ä ¤«¤ÎÌñ²ð¤Ê¥±¡¼¥¹¤Î½èÍý¤ò²Äǽ¤È¤·¤Þ¤¹¡£


4.2 C¥½¡¼¥¹¤Îʸ̮

PO¥â¡¼¥É¤Ï¡¢GNU gettext¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»È¤Ã¤Æºî¤é¤ì¤¿PO¥Õ¥¡¥¤¥ë¤ò°· ¤¦¤È¤­¤ËÎϤòȯ´ø¤·¤Þ¤¹¡£GNU gettext¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÏÀ¸À®¤·¤¿PO¥Õ¥¡¥¤ ¥ë¤ËÆüì¤Ê¥³¥á¥ó¥È¤òÁÞÆþ¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÆüì¤Ê¥³¥á¥ó¥È¤Î°ìÉô¤Ï¡¢PO¥Õ¥¡¥¤¥ë ¤Î¥¨¥ó¥È¥ê¤È¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Î̤ËÝÌõʸ»úÎ󤬽и½¤¹¤ë¾ì½ê¤ò´ØÏ¢ÉÕ¤±¤Þ¤¹¡£

ËÝÌõ¼Ô¤¬Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤ò°·¤¦ºÝ¡¢Èà½÷¤¬°·¤¦Ì¤ËÝÌõʸ»úÎó¤Ï¤·¤Ð¤·¤Ð´Ê·é¤¹¤®¤¿ ¤ê¡¢°Å¹æŪ¤Ç¤¢¤Ã¤¿¤ê¡¢Û£Ëæ¤Ç¤¢¤Ã¤¿¤ê¤È¤¤¤Ã¤¿¡¢¤ï¤«¤ê¤Ë¤¯¤¤¤â¤Î¤Ç¤¢¤ë¤³¤È¤¬ ¤¢¤ê¤Þ¤¹¡£¤½¤Îʸ»úÎó¤ò¤É¤Î¤è¤¦¤ËËÝÌõ¤¹¤ë¤«¤ò¹Í¤¨¤ëÁ°¤Ë¡¢ËÝÌõ¼Ô¤Ï¤½¤ì¤¬²¿¤ò °ÕÌ£¤·¤Æ¤¤¤ë¤Î¤«¡¢¤½¤·¤Æ¤É¤Î¤è¤¦¤ÊËÝÌõ¤¬Å¬ÀڤʤΤ«¤òÍý²ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤ÊÌäÂê¤ËľÌ̤·¤¿¤È¤­¡¢ËÝÌõ¼Ô¤¬È½ÃǤò²¼¤¹¤¿¤á¤Ë¤Ï¤½¤Îʸ»úÎ󤬻Ȥï¤ì ¤Æ¤¤¤ëËÜʪ¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹¤òÆɤߡ¢Ê¸»úÎó¤Î¶á¤¯¤Ë¤¢¤ë¥×¥í¥°¥é¥Þ¤¬½ñ¤­»Ä¤· ¤¿¥³¥á¥ó¥È¤òÁܤ·½Ð¤·¡¢¤½¤·¤Æ²¿¤é¤«¤Î¼ê³Ý¤«¤ê¤òÆÀ¤ë¤·¤«¤¢¤ê¤Þ¤»¤ó¡£

¤â¤Á¤í¤ó¡¢ËÝÌõ¼Ô¤¬¼êÎý¤Î¥×¥í¥°¥é¥Þ¤Ç¤¢¤ì¤Ð¥×¥í¥°¥é¥à¥½¡¼¥¹¤òÆɤळ¤È¤Ç¹¹¤Ê ¤ë¾ðÊó¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢Èà½÷¤¬·Ð¸³¤òÀѤó¤À¥×¥í¥°¥é¥Þ¤Ç¤Ê ¤¯¡¢C¤Î¥³¡¼¥É¤Ë¸ÍÏǤ¤¤ò´¶¤¸¤¿¤È¤·¤Æ¤â¡¢¥½¡¼¥¹¤òÆɤळ¤È¤Ë¤Ä¤¤¤Æ²²É¤ˤʤà ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ËÝÌõ¼Ô¤¬É¬ÍפȤ¹¤ë²¿¤é¤«¤Î¥Ò¥ó¥È¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤È¤¤¤¦²Ä ǽÀ­¤Ï¤Þ¤À¤¢¤ë¤Î¤Ç¤¹¤«¤é¡£ËÝÌõ¼Ô¤Ï¤¹¤°¤Ë¡¢¥×¥í¥°¥é¥Þ¤Î¥³¥á¥ó¥È¡¢(¥×¥í¥°¥é ¥Þ¤¬Íýͳ¤ò»ý¤Ã¤Æ̿̾¤·¤¿)ÊÑ¿ôµÚ¤Ó´Ø¿ô̾¡¢Á´ÂΤι½Â¤¤Ë¤Ä¤¤¤Æ°ìÁØÃí°Õ¤òʧ¤¦ ¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¥³¡¼¥É¤¬ÉÔ²÷¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò³Ø¤Ö¤Ç¤·¤ç¤¦¡£

°Ê²¼¤Î¥³¥Þ¥ó¥É·²¤Ï¡¢ËÝÌõ¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë´Ø·¸¤¹¤ë¥×¥í¥°¥é¥à¥½¡¼¥¹ ¤Îʸ̮¤òÄ´¤Ù¤ë¤È¤­¤ËÌòΩ¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

s
¥×¥í¥°¥é¥à¥½¡¼¥¹¤Îʸ̮¤ò(·«¤êÊÖ¤·)ɽ¼¨¤·¤Þ¤¹¡£

M-s
¥á¥Ë¥å¡¼¤«¤éÁªÂò¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¥½¡¼¥¹¤Îʸ̮¤òɽ¼¨¤·¤Þ¤¹¡£

S
¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ñ¥¹¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤Þ¤¹¡£

M-S
¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ñ¥¹¤«¤é¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥És(po-cycle-reference)¤È¥³¥Þ¥ó¥É M-s(po-select-source-reference)¤Ï¡¢Î¾Êý¤È¤â¥½¡¼¥¹¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë ¤òÊ̤Υ¦¥£¥ó¥É¥¦¤È¤·¤Æ³«¤­¡¢¸½ºß¤ÎËÝÌõÂоݤȤʤëʸ»úÎó¤òɽ¼¨¤·¤Þ¤¹¡£¤·¤«¤·¡¢ ¤â¤·¥¨¥ó¥È¥ê¤Ë¥½¡¼¥¹¤Ø¤Î»²¾È¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï¥½¡¼¥¹¤Ø¤Î»²¾È¤ò´Þ¤à¥½¡¼ ¥¹¥Õ¥¡¥¤¥ë¤¬¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î¥µ¡¼¥Á¥Ñ¥¹Æâ¤Ë¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Ï ¥¨¥é¡¼¤òɽ¼¨¤·¤Þ¤¹¡£

s(Ëô¤ÏM-s)¤Ï¿·¤·¤¤¥¦¥£¥ó¥É¥¦¤ò³«¤­¤Þ¤¹¤¬¡¢¥«¡¼¥½¥ë¤ÏPO¥Õ¥¡¥¤ ¥ë¤Î¥¦¥£¥ó¥É¥¦Æâ¤Ëα¤Þ¤ê¤Þ¤¹¡£¤â¤·ËÝÌõ¼Ô¤¬¥«¡¼¥½¥ë¤ò¥×¥í¥°¥é¥à¥½¡¼¥¹¥¦¥£¥ó ¥É¥¦¤Ë°ÜÆ°¤µ¤»¤¿¤¤¾ì¹ç¡¢¤â¤Á¤í¤ó¤½¤¦¤¹¤Ù¤­¤Ê¤Î¤Ç¤¹¤¬¡¢¥³¥Þ¥ó¥ÉO¤ò»È ÍѤ¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£

ºÇ½é¤Ës¤¬¥¿¥¤¥×¤µ¤ì¤¿»þÅÀ¡¢¤¢¤ë¤¤¤ÏľÁ°¤Ë¥½¡¼¥¹¥³¡¼¥É¤Îʸ̮¤ò»²¾È¤¹ ¤ë¤¿¤á¤Ë»È¤ï¤ì¤¿¤â¤Î¤È¤ÏÊ̤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤¬ÁªÂò¤µ¤ì¤¿»þÅÀ¤Ç¡¢¥³¥Þ¥ó¥É s¤Ï¤³¤Î¥¨¥ó¥È¥ê¤Î¤¿¤á¤ÎºÇ½é¤Îʸ̮¤òºÆÅÙɽ¼¨¤·¤Þ¤¹¡£¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë ¥¨¥ó¥È¥ê¤Ë¤ª¤±¤ë¤¢¤ëʸ̮¤¬É½¼¨¤µ¤ì¤¿»þÅÀ¤Ç¡¢ËÝÌõ¼Ô¤¬Ê̤Îʸ̮¤ò»î¤·¤¿¤¤¾ì¹ç ¤Ï¡¢¤¿¤Àñ¤ËºÆÅÙs¤ò¥¿¥¤¥×¤¹¤ë¤À¤±¤ÇÊ̤Υ¦¥£¥ó¥É¥¦¤Ëʸ̮¤¬É½¼¨¤µ¤ì¤Þ ¤¹¡£ËÝÌõ¼Ô¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Ç¥«¡¼¥½¥ë¤ò¤½¤Îʸ̮¤«¤éÆ°¤«¤·¤¿¾ì¹ç¤Ï¡¢¥³¥Þ¥ó ¥És¤Ï¥«¡¼¥½¥ë¤ò¸µ¤Îʸ̮¤ËÌ᤹¤Ç¤·¤ç¤¦¡£¤¢¤ë¥¨¥ó¥È¥êÃæ¤Ç¡¢Â¾¤Î¥³¥Þ¥ó ¥É¤ò»ÈÍѤ»¤º¥³¥Þ¥ó¥És¤ò·«¤êÊÖ¤·»ÈÍѤ·¤¿¾ì¹ç¡¢¤«¤ÄÅÓÃæ¤Ë¾¤Î¥³¥Þ¥ó¥É ¤ò»ÈÍѤ·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢PO¥â¡¼¥É¤ÏºÇ½é¤Ëɽ¼¨¤·¤¿Ê¸Ì®¤ËÌá¤ë¤Þ¤Ç¡¢¤½¤Î¥¨¥ó¥È¥ê ¤¬»²¾È²Äǽ¤Êʸ̮¤ò¼¡¡¹¤Èɽ¼¨¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥ÉM-s¤Î¿¶Éñ¤¤¤Ï¤½¤ì¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£»²¾È²Õ½ê¤ò¼¡¡¹¤Èɽ¼¨¤·¤Æ¤¤ ¤¯Âå¤ï¤ê¤Ë¡¢»²¾È²Õ½ê¤Î°ìÍ÷¤òɽ¼¨¤·¤ÆËÝÌõ¼Ô¤Ë¤½¤ÎÃ椫¤éÆÃÄê¤Î»²¾È²Õ½ê¤òÁªÂò ¤µ¤»¤Þ¤¹¡£¤³¤ì¤ÏÊä´°µ¡Ç½(completion)¤È°ì½ï¤Ë»È¤¦¤Î¤¬ºÇÁ±¤Ç¤¹¡£ËÝÌõ¼Ô¤¬ M-s¤Îľ¸å¤ËTAB¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¼ÁÌä¤ËÂФ¹¤ë(¥Þ¥Ã¥Á¤¹¤ë²ÄǽÀ­¤Î ¤¢¤ë)Åú¤È¤·¤Æ²Äǽ¤Ê»²¾È¸Ä½êÁ´¤Æ¤¬¥á¥Ë¥å¡¼¤È¤·¤ÆÄ󼨤µ¤ì¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É ¤Ï¤¢¤ë°ì¤Ä¤ÎËÝÌõÂоÝʸ»úÎó¤¬ËÜÅö¤ËÊ£¿ô¤Îʸ̮¤ÇÅо줹¤ë¤È¤­¤Î¤ßÊØÍø¤Ç¤¹¡£

Ä̾¥×¥í¥°¥é¥à¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÏPO¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£ ÆÃÄê¤Îµ¬Äê¤È¤·¤Æ¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¥½¡¼¥¹·²¤Ï PO¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Îľ¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£PO¥Õ¥¡ ¥¤¥ë¤ò°·¤¦¾ì¹ç¡¢¤³¤ì¤é2¤Ä¤ÎÂбþ¤Ë¤è¤Ã¤ÆÄ̾ïÌäÂê¤Ïµ¯¤­¤Þ¤»¤ó¡£¤·¤«¤·¤Ê¤¬¤é¡¢ PO¥Õ¥¡¥¤¥ë¤¬¶öÁ³Ê̤Υǥ£¥ì¥¯¥È¥ê¤ËÇÛÃÖ¤µ¤ì¤¿¤ê¡¢Ä̾ï¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ï°Û¤Ê ¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÇÊÔ½¸¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ËÝÌõ¼Ô¤ÏÀµ¤·¤¤ PO¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤É¤³¤Ë¸ºß¤¹¤ë¤Î¤«¤òPO¥â¡¼¥É¤ËÅÁ¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤Î ¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤¬¿ô¿¤¯»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤ì¤é¤Ï¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î¤¿¤á¤Î ¤¤¤ï¤æ¤ë¥µ¡¼¥Á¥Ñ¥¹¤ò¹½À®¤·¤Þ¤¹¡£¥³¥Þ¥ó¥É S(po-consider-source-path)¤Ï¡¢ÂÐÏÃŪ¤Ë¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò¥µ¡¼ ¥Á¥Ñ¥¹¤ÎÀèƬ¤Ë³ÊǼ¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥³¥Þ¥ó¥ÉM-S (po-ignore-source-path)¤Ï¡¢ËÝÌõ¼Ô¤¬¤â¤Ï¤äɬÍפȤ·¤Ê¤¯¤Ê¤Ã¤¿¥Ç¥£¥ì¥¯ ¥È¥ê¤ò¥µ¡¼¥Á¥Ñ¥¹¤«¤éÁªÂò¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹(Êä´°µ¡Ç½ÉÕ¤­¤Ç)¡£


4.3 ËÝÌõÍ×Ìóµ¡Ç½¤Î»ÈÍÑ

Í×Ìóµ¡Ç½¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

PO¥â¡¼¥É¤Î¾­Íè¤Î¼ÂÁõ¤Ç¤Ï¡¢ËÝÌõ¼Ô¤Ï´û¤ËËÝÌõ¤·¤¿¤â¤Î¤ÎÍ×Ìó¤òÊݼ餹¤ë¤³¤È¤Ë¤Ê ¤ê¤Þ¤¹¡£Í×Ìó¤È¤Ï¡¢Â¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÇÉÑÈˤËÍѤ¤¤é¤ì¤ëËÝÌõʸ»úÎ󷲤ò¤Þ ¤È¤á¤¿ÆÃÊ̤ÊPO¥Õ¥¡¥¤¥ë¤Î¤³¤È¤Ç¤¹¡£ËÝÌõ¼Ô¤Ï¼«Ê¬¤¬»ÈÍѤ¹¤ëÍ×Ìó¤Ë¿·¤·¤¤¥¨¥ó¥È ¥ê¤òÄɲ䷤Ƥª¤­¡¢¸å¤Ç̤ËÝÌõ¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë¤È¤­¡¢¤¢¤ë¤¤¤Ï´û¤ËËÝÌõ¤µ¤ì ¤¿¥¨¥ó¥È¥ê¤ò¹¹¿·¤¹¤ë¤È¤­¤Ë¡¢Í×Ì󤫤éËÝÌõʸ»úÎó¤ò°ú¤­½Ð¤¹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤· ¤«¤·¤³¤Îºî¶È¤Î¤¿¤á¤Ë¤Ï¡¢Í×Ìó¤ÏÀµµ¬²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ See section 2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½¡£


5. ´û¸¤ÎPO¥Õ¥¡¥¤¥ë¤Î¹¹¿·

5.1 msgmerge¥×¥í¥°¥é¥à¤Îµ¯Æ°  
5.2 ËÝÌõºÑ¤ß¥¨¥ó¥È¥ê  
5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê  
5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê  
5.5 Çѻߥ¨¥ó¥È¥ê  
5.6 ËÝÌõ¤Î½¤Àµ  
5.7 ¥³¥á¥ó¥È¤Î½¤Àµ  
5.8 Êä½õPO¥Õ¥¡¥¤¥ë¤ò»²¹Í¤Ë¤¹¤ë  


5.1 msgmerge¥×¥í¥°¥é¥à¤Îµ¯Æ°


5.2 ËÝÌõºÑ¤ß¥¨¥ó¥È¥ê

¤½¤ì¤¾¤ì¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ë¤Ä¤¤¤Æ¡¢msgstr¤ËËÝÌõ¤¬ÄêµÁ¤µ¤ì¡¢¤«¤Ä Û£Ëæ(see section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê)¤Ç¤¢¤ë¤È¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥¨¥ó¥È ¥ê¤ÏËÝÌõºÑ¥¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£ËÝÌõºÑ¥¨¥ó¥È¥ê¤Ï¸å¤«¤éGNU msgfmt¤Ë¤è¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¥×¥í¥°¥é¥àÃæ¤Ç»ÈÍѲÄǽ¤Ë¤µ¤ì¤ë¤À¤±¤Ç ¤¹¡£¤½¤Î¾¤Î¥¨¥ó¥È¥ê¥¿¥¤¥×¤ÏÄù¤á½Ð¤µ¤ì¤Þ¤¹¡£¤½¤ì¤é¤Ë¤Ä¤¤¤Æ¤ÏËÝÌõ¤¬ºîÀ®¤µ¤ì ¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¡£

´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¤è¤êÌ©ÀܤËËÝÌõºÑ¥¨¥ó¥È¥ê¤Î½èÍý¤È·ë¤ÓÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£

t
¼¡¤ÎËÝÌõºÑ¥¨¥ó¥È¥ê¤òõ¤·¤Þ¤¹¡£

M-t
Á°¤ÎËÝÌõºÑ¥¨¥ó¥È¥ê¤òõ¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥Ét(po-next-translated-entry)¤ÈM-t (po-previous-transted-entry)¤ÏÁ°¸å¤Ë°ÜÆ°¤·¡¢ËÝÌõºÑ¥¨¥ó¥È¥ê¤òõ¤·½Ð ¤·¤Þ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢PO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¹þ¤ó¤Ç¸¡º÷¤¬¹Ô¤ï¤ì¤Þ ¤¹¡£

ËÝÌõºÑ¥¨¥ó¥È¥ê¤ÏÄ̾ËÝÌõ¼Ô¤¬¥¨¥ó¥È¥ê¤òËÝÌõ¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹ 5.6 ËÝÌõ¤Î½¤Àµ¡£¤·¤«¤·¡¢¤â¤·ÊÑ¿ô po-auto-fuzzy-on-edit¤¬nil¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ºÇ½é¤Ë¿·¤·¤¤ËÝÌõ¤¬ ¤Ê¤µ¤ì¤¿¥¨¥ó¥È¥ê¤ÏÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£¤½¤Î¥¨¥ó¥È¥ê¤Ï¸å¤«¤é¡¢¸ø¼°¤«¤Ä ËÜʪ¤ÎËÝÌõºÑ¥¨¥ó¥È¥ê¤È¤Ê¤ëÁ°¤ËÛ£Ëæ¤Ç¤Ï¤Ê¤¯¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó See section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê¡£


5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê

¤½¤ì¤¾¤ì¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ï°À­¤ÎÁȤò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤é¤Ï̾Á°¤¬ ÉÕ¤±¤é¤ì¤¿ÉʼÁ¤Ç¤¢¤ê¡¢ÆÃÊ̤ʥ·¥¹¥Æ¥à¥³¥á¥ó¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¥¨¥ó¥È¥ê¤ÎËÝÌõ ¤ÈÌÀÇò¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î°À­¤Î¤¦¤Á¤Î°ì¤Ä¤ÏÛ£Ëæ¤È̾ÉÕ¤±¤é ¤ì¤Æ¤ª¤ê¡¢¤³¤Î°À­¤ò»ý¤Ä¥¨¥ó¥È¥ê¤ÏÛ£Ëæ¤ÊËÝÌõ¤ò»ý¤Ã¤Æ¤¤¤ë¤È¸À¤ï¤ì¤Þ¤¹¡£Ã±½ã ¤ËÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡£

Û£Ëæ¤Ê¥¨¥ó¥È¥ê¤Ï¡¢¤¿¤È¤¨Â¿¤¯¤Î¾¤ÎÌÜŪ¤Î¤¿¤á¤Ë¤½¤ì¤é¤¬ËÝÌõºÑ¥¨¥ó¥È¥ê¤È¤ß¤Ê ¤µ¤ì¤ë¤È¤·¤Æ¤â¡¢Ä̾ï¤ÏËÝÌõ¼Ô¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£´ö¤Ä¤«¤Î¿· ¤·¤¤msgid¤¬¸Å¤¤PO¥Õ¥¡¥¤¥ëÃæ¤Ë¤¢¤ëmsgid¤«¤é¤ï¤º¤«¤Ë½¤Àµ¤µ¤ì¤¿ ¤â¤Î¤Ç¤¢¤ê¡¢¤«¤Ä¤½¤Î¿·¤·¤¯½¤Àµ¤µ¤ì¤¿¥¨¥ó¥È¥ê¤ËÂбþ¤¹¤ë¡¢¸Å¤¤ËÝÌõ¤Ç¤¢¤ë¤È¹Í ¤¨¤é¤ì¤ë¤â¤Î¤È¤¬ÂФˤʤë¤Èmsgmerge¥×¥í¥°¥é¥à¤¬²¾Äꤷ¤¿¤È¤­¡¢ msgmerge¥×¥í¥°¥é¥à¤¬¿·¤·¤¤PO¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ë¤è¤Ã¤Æ¸Å¤¤ËÝÌõºÑ PO¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ËÜÍè¤Îʸ »úÎó(msgid¤Ë¤¢¤ëʸ»úÎó)¤ËÂФ¹¤ë¼ã´³¤ÎÊѹ¹¤Ï¤·¤Ð¤·¤ÐËÝÌõºÑʸ»úÎó¤Ë±Æ ¶Á¤·¡¢¤³¤ì¤ÏËÝÌõ¼Ô¤Ë¤è¤ë½¤Àµ¤òÍ׵ᤷ¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢msgmerge¤Ï¤¤¤¯ ¤Ä¤«¤Î¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ç¤¢¤ë¤È¤·¤Æ¥Þ¡¼¥¯ÉÕ¤±¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£

ËÝÌõ¼Ô¤Ï¤Þ¤¿¡¢¥¨¥ó¥È¥ê¤ËºÆ¤Ó¼ê¤òÆþ¤ì¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤òµ­²±¤·¤Æ¤­¤¿¤¤ ¤È¤­¤Ë¡¢¼«Ê¬¼«¿È¤ÎÍøÊؤΤ¿¤á¤Ë¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ç¤¢¤ë¤È¤·¤Æ¥Þ¡¼¥¯¤·¤Æ¤ª¤¯¤³¤È ¤¬½ÐÍè¤Þ¤¹¡£´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¤è¤êÌ©ÀܤËÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤Î½èÍý¤È·ë¤ÓÉÕ¤¤¤Æ¤¤ ¤Þ¤¹¡£

f
¼¡¤ÎÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤òõ¤·¤Þ¤¹¡£

M-f
Á°¤ÎÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤òõ¤·¤Þ¤¹¡£

TAB
¸½ºß¤Î¥¨¥ó¥È¥ê¤ÎÛ£Ëæ°À­¤ò³°¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥Éf(po-next-fuzzy) ¤ÈM-f (po-previous-fuzzy)¤ÏÁ°¸å¤Ë°ÜÆ°¤·¡¢Û£Ëæ¤Ê¥¨¥ó¥È¥ê¤òõ¤·½Ð¤·¤Þ¤¹¡£¸« ¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢PO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¹þ¤ó¤Ç¸¡º÷¤¬¹Ô¤ï¤ì¤Þ¤¹¡£

¥³¥Þ¥ó¥ÉTAB(po-unfuzzy)¤Ï¥¨¥ó¥È¥ê¤Ë·ë¤ÓÉÕ¤¤¤¿Û£Ëæ°À­¤ò³°¤·¡¢ Ä̾ï¤ÏËÝÌõºÑ¤Ë¤·¤Þ¤¹¡£¤µ¤é¤Ë¡¢¤â¤·ÊÑ¿ôpo-auto-select-on-unfuzzy¤¬ nil¤Ç¤Ê¤¤¾ì¹ç¡¢TAB¥³¥Þ¥ó¥É¤Ï¼«Æ°Åª¤Ë¾¤Ëºî¶È¤¹¤ëɬÍפ¬¤¢¤ë¥¨ ¥ó¥È¥ê¤òõ¤·½Ð¤·¤Þ¤¹¡£po-auto-select-on-unfuzzy¤Î½é´üÃÍ¤Ï nil¤Ç¤¹¡£

po-auto-fuzzy-on-edit¤Î½é´üÃͤÏnil¤Ç¤¹¡£¤·¤«¤·¡¢ÊÑ¿ô po-auto-select-on-unfuzzy¤¬t¤ËÀßÄꤵ¤ì¤¿¤Ê¤é¤Ð¡¢ RET¥³ ¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÊÔ½¸¤µ¤ì¤¿¥¨¥ó¥È¥ê¤Ë¤ÏÛ£Ëæ°À­¤¬ÉÕÍ¿¤µ¤ì¤Þ¤¹¡£¤½¤ì¤Ï¥À¥Ö¥ë¥¯ ¥ê¥Ã¥¯¤òÍѤ¤¤ë¤³¤È¤ÈƱ¤¸¤Ç¤¹¡£¤³¤Î¾ì¹ç¡¢(¾ï¤Ë¤Ç¤Ï¤Ê¤¤¤Ë¤»¤è)ËÝÌõ¼Ô¤¬½¤Àµ¤· ¤¿¤È¤­¤Ï¤¤¤Ä¤Ç¤â¡¢¥¨¥ó¥È¥ê¤ÏÛ£Ëæ¤Ë¤Ê¤ë¤È¤¤¤¦¤³¤È¤¬ÉáÄ̤ˤʤê¤Þ¤¹¡£¤â¤·Èà½÷ ¤¬ËÝÌõ¤ËËþ­¤·¤¿¾ì¹ç¡¢Èà½÷¤ÏÛ£Ëæ°À­¤ò¿á¤­Èô¤Ð¤·¡¢TAB¤ò»È¤Ã¤Æ¾¤Î¥¨ ¥ó¥È¥ê¤ËÂФ¹¤ëºî¶È¤Ë¤«¤«¤ë¤Ç¤·¤ç¤¦¡£¤â¤·Èà½÷¤¬¤Þ¤ÀËþ­¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤½ ¤Î¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ê¤Þ¤Þ¤Ë¤·¤¿¤Þ¤Þ¾¤Î¥¨¥ó¥È¥ê¤Ë°Ü¤ë¤¿¤á¤Ë¡¢¤¿¤ÀSPC¤ò »È¤¦¤À¤±¤Ç¤¹¡£

ËÝÌõ¼Ô¤Ï¤Þ¤¿¡¢¤¢¤ë¥¨¥ó¥È¥ê¤Ë¸å¤Çºî¶È¤¹¤ë¤¿¤á¤Ë´Êñ¤ËÌá¤ì¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È¹Í ¤¨¤¿¤Î¤Ê¤é¡¢ËÝÌõºÑ¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ë¤¹¤ë¤¿¤á¤ËDEL¥³¥Þ¥ó¥É (po-fade-out-entry)¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¤½¤·¤Æ¡¢q¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆPO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤Ç¤Îºî¶È¤¬´°Î»¤µ¤»¤¿¤È¤­ ¤ËÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤¬¤Þ¤À»Ä¤Ã¤Æ¤¤¤ì¤Ð¡¢PO¥â¡¼¥É¤ÏËÝÌõ¼Ô¤ËÂФ·¤Æºî¶È¤ò½ªÎ»¤¹¤ë ¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£


5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê

xgettext¤¬ºÇ½é¤ËPO¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤¿¤È¤­¡¢msgid¤Ï̤ËÝÌõʸ»ú Îó¤Ç½é´ü²½¤µ¤ì¡¢msgstr¤Ë¤Ï¶õʸ»úÎó¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£¶õ¤ÎËÝÌõʸ»úÎó¤ò »ý¤Ä¥¨¥ó¥È¥ê¤Ï̤ËÝÌõ¥¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¤½¤Î¸å¡¢¥×¥í¥°¥é¥Þ¤¬¥×¥í¥° ¥é¥àÃæ¤Ç°ìÉô¤Îʸ»úÎó¤ò¤Û¤ó¤Î¤Á¤ç¤Ã¤È¤À¤±½¤Àµ¤·¤¿¾ì¹ç¡¢½¤Àµ¤µ¤ì¤¿Ê¸»úÎó¤Ï̤ ËÝÌõʸ»úÎó¤È¤·¤Æ¡¢PO¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤¥¨¥ó¥È¥ê¤È¤·¤ÆÄɲ䵤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¥¨¥ó¥È¥ê´Ö¤ò°ÜÆ°¤¹¤ëÄ̾ï¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤Ã¤¿¥¨¥ó¥È¥ê¤ÈƱ¤¸¥ì¥Ù ¥ë¤Ë¤¢¤ë̤ËÝÌõ¥¨¥ó¥È¥ê¤ËÃí°Õ¤òʧ¤¤¤Þ¤¹¡£Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤Ï`msgstr ""'¤Ç½ªÎ»¤¹¤ë¤È¤¤¤¦»ö¼Â¤«¤é¡¢´Êñ¤Ëȯ¸«¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

ËÝÌõ¼Ô¤Îºî¶È¤È¤¤¤¦¤Î¤Ï¡¢Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤òõ¤·¤À¤·¤ÆËÝÌõ¤·¡¢¤½¤Îºî¶È¤ò̤ËÝÌõ ¥¨¥ó¥È¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¤È¤¤¤¦°ÕÌ£¤Ç¤Ï(ËÜÅö¤Ëñ½ã¤Ê)ºî¶È¤Ë»×¤¨¤ë¤«¤â ¤·¤ì¤Þ¤»¤ó¡£´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï̤ËÝÌõ¥¨¥ó¥È¥ê½èÍý¤ËÆò½¤·¤Æ¤¤¤Þ¤¹¡£

u
¼¡¤Î̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£

M-u
Á°¤Ë¤¢¤ë̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£

k
¸½ºß¤Î¥¨¥ó¥È¥ê¤ò̤ËÝÌõ¤Î¾õÂ֤ˤ·¤Þ¤¹¡£

u(po-next-untranslated-entry)¥³¥Þ¥ó¥É¤ÈM-u (po-previous-untransted-entry)¥³¥Þ¥ó¥É¤Ï¤½¤ì¤¾¤ì¡¢Á°Êý¤È¸åÊý¤Ë°ÜÆ° ¤·¤Æ̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤òõ¤·½Ð¤·¤Þ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¸¡º÷¤ÏPO¥Õ¥¡ ¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¤³¤ó¤Ç·Ñ³¤·¤Þ¤¹¡£

ËÝÌõʸ»úÎó¤òñ¤Ë¶õ¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¨¥ó¥È¥ê¤ò̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤Ø¤ÈÌ᤹¤³ ¤È¤¬½ÐÍè¤Þ¤¹¡£¤³¤ì¤Ë¤Ïk¥³¥Þ¥ó¥É(po-kill-msgstr)¤ò»È¤¤¤Þ¤¹¡£ See section 5.6 ËÝÌõ¤Î½¤Àµ.

q¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆPO¥Ð¥Ã¥Õ¥¡¤Ç¤Îºî¶È¤ò½ªÎ»¤¹¤ëºÝ¡¢¤â¤·Ì¤ËÝÌõ¤Îʸ»ú Î󤬻Ĥ俤ޤޤξì¹ç¤Ï¡¢PO¥â¡¼¥É¤ÏËÝÌõ¼Ô¤ËÂФ·¤Æºî¶È¤ò½ªÎ»¤¹¤ë¤«¤É¤¦¤«¤ò³Î ǧ¤·¤Þ¤¹¡£


5.5 Çѻߥ¨¥ó¥È¥ê

ÃÏ°è²½¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ª¤¤¤Æ¡¢¤³¤ì°Ê¾åËÝÌõ¤¹¤ëɬÍפ¬¤Ê¤¤¥¨¥ó¥È¥ê¤Ï msgmerge¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æȯ¸«¤µ¤ì¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Þ¤¹¡£¤³ ¤ì¤é¤Î¥¨¥ó¥È¥ê¤Ï¡¢Çѻߥ¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£

¥¨¥ó¥È¥ê´Ö¤ò°ÜÆ°¤¹¤ëÄ̾ï¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤Ã¤¿¥¨¥ó¥È¥ê¤ÈƱ¤¸¥ì¥Ù ¥ë¤Ë¤¢¤ëÇѻߥ¨¥ó¥È¥ê¤ËÃí°Õ¤òʧ¤¤¤Þ¤¹¡£Çѻߥ¨¥ó¥È¥ê¤ÏmsgidËô¤Ï msgstr¤ò´Þ¤àÁ´¤Æ¤Î¹Ô¤¬#¤Ç³«»Ï¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦»ö¼Â¤Ë¤è¤Ã¤Æ´Êñ ¤Ëȯ¸«¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¡¢¸µ¡¹¤Î̤ËÝÌõʸ»úÎó¤Ë¤è¤Ã¤ÆËÝÌõʸ»úÎó¤ò½é´ü²½¤·¤Þ¤¹¡£¥­ ¥ë¥ê¥ó¥°¤ò°·¤¦¥³¥Þ¥ó¥É¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢°ÊÁ°¤ËÊݸ¤µ¤ì¤¿¥Æ¥­¥¹¥È¤òËÝÌõ ʸ»úÎó¤È¤·¤Æ³ÊǼ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¥æ¡¼¥¶¤ÏËÝÌõ¤òÂÐÏÃŪ¤ËÊÔ½¸¤¹¤ë¤³¤È¤¬½Ð Íè¤Þ¤¹¡£¤³¤ì¤éÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤½¤Î·ë²Ì¤È¤·¤ÆÇѻߥ¨¥ó¥È¥ê¤òÇѻߥ¨¥ó¥È¥ê¤Î ¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¹¹¤Ë¡¢´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤ÏÇѻߥ¨¥ó¥È¥ê¤Î½èÍý¤ËÆò½¤·¤Æ¤¤¤Þ¤¹¡£

o
¼¡¤ÎÇѻߥ¨¥ó¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£

M-o
Á°¤Ë¤¢¤ëÇѻߥ¨¥ó¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹

DEL
¥¢¥¯¥Æ¥£¥Ö¤Ê¥¨¥ó¥È¥ê¤òÇѻߥ¨¥ó¥È¥ê¤Ë¤·¤Þ¤¹¡£Ëô¤Ï¡¢Çѻߥ¨¥ó¥È¥ê¤òºï½ü¤·¤Þ¤¹¡£

o(po-next-obsolete-entry)¥³¥Þ¥ó¥É¤ÈM-o (po-previous-obsolete-entry) ¥³¥Þ¥ó¥É¤Ï¤½¤ì¤¾¤ìÁ°Êý¤È¸åÊý¤Ë¸þ¤«¤Ã¤Æ Çѻߥ¨¥ó¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£¤â¤·¤½¤Î¤è¤¦¤Ê¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢¸¡º÷¤Ï PO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¤³¤ó¤Ç½èÍý¤ò·Ñ³¤·¤Þ¤¹¡£

PO¥â¡¼¥É¤Ï¡¢Çѻߥ¨¥ó¥È¥ê¤Î¥³¥á¥ó¥È¤ò¤Ï¤º¤·¤¿¤ê¡¢¥¨¥ó¥È¥ê¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤¹¤ë ¤è¤¦¤ÊÊýË¡¤òÄ󶡤·¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Ë¤¢¤ë¥Þ¡¼ ¥¯ÉÕ¤±¤µ¤ì¤¿Ê¸»úÎó¤Ç¤Ï¤Ê¤¤Ì¤ËÝÌõʸ»úÎ󤬺ƤÓƳÆþ¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ë¤«¤é ¤Ç¤¹¡£¤³¤ì¤Ï̵Â̤Êmsgid¤òƳÆþ¤·¤Ê¤¤¤È¤¤¤¦Å¯³Ø¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£

¤·¤«¤·¡¢¥¢¥¯¥Æ¥£¥Ö¤Ê¥¨¥ó¥È¥ê¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤¹¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ê¡¢¤³¤ì¤Ë¤è ¤ê¥¨¥ó¥È¥ê¤ÏÇѻߥ¨¥ó¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£GNU gettext¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¸åÄø¡¢ ̤ËÝÌõʸ»úÎó¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤ëËÝÌõ¤Î¾Ã¼º¤ËÂФ·¤ÆÈ¿±þ¤·¤Þ¤¹¡£DEL¥³ ¥Þ¥ó¥É(po-fade-out-entry) ¤Ï¥«¥ì¥ó¥È¤Î¥¨¥ó¥È¥ê¤ò¤Á¤ç¤Ã¤È¤À¤±¾ÃÌǤµ ¤»¤ëÊý¸þ¤Ø¤È¸þ¤«¤ï¤»¤Þ¤¹¡£¤â¤·¥¨¥ó¥È¥ê¤¬¥¢¥¯¥Æ¥£¥Ö(ËÝÌõÂоݥ¨¥ó¥È¥ê)¤Ê¤é¡¢ ¤½¤Î¥¨¥ó¥È¥ê¤Ï¤Þ¤ºÛ£Ëæ¤Ë¤µ¤ì¤Þ¤¹¡£¤â¤·´û¤ËÛ£Ëæ¤Ç¤¢¤ì¤Ð¡¢³Îǧ¸å¤Ë¤½¤Î¥¨¥ó¥È ¥ê¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Þ¤¹¡£¥¨¥ó¥È¥ê¤¬´û¤ËÇѻߥ¨¥ó¥È¥ê¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥¨ ¥ó¥È¥ê¤ÏPO¥Õ¥¡¥¤¥ë¤«¤é´°Á´¤Ëºï½ü¤µ¤ì¤Þ¤¹¡£ºï½ü¤·¤¿¤â¤Î¤òPO¥Õ¥¡¥¤¥ëÃæ¤Î¾¤Î (Ä̾ï¤Ï̤ËÝÌõ¤Î)¥¨¥ó¥È¥ê¤ËÃÖ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢ËÝÌõʸ»úÎó¤Ï´Êñ¤ËºÆÍøÍѽÐÍè¤Þ ¤¹¡£See section 5.6 ËÝÌõ¤Î½¤Àµ.

̲¤ì¤Ê¤¤Ìë¤Î¤¿¤á¤Ë¡¢¾­Íè¤ÎPO¥â¡¼¥É³«È¯¤Ë¤è¤Ã¤Æ²ò·è¤¹¤ë¶½Ì£¿¼¤¤ÌäÂê¤Ë¤Ä¤¤¤Æ ¤³¤³¤Ç¾Ò²ð¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£¤½¤Î¥¢¥¤¥Ç¥£¥¢¤È¤Ï¡¢PO¥â¡¼¥É¤¬¤è¤ê¸­¤¯¤Ê¤ë¤Ç¤¢¤í ¤¦¤â¤Î¤Ç¤¹¡£¿·¤·¤¯Äɲ䵤줿̤ËÝÌõ¤Îʸ»úÎó¤ËÂФ·¤Æ¡¢PO¥â¡¼¥É¤ÏÁ´¤Æ¤ÎÇѻߥ¨ ¥ó¥È¥ê¤ÎÃ椫¤é¤ª¤½¤é¤¯Å¬Åö¤Ç¤¢¤í¤¦¤È»×¤ï¤ì¤ë¤â¤Î¤òõ¤·¤À¤·¤Æ¤­¤ÆÅö¤Æ¤Ï¤á¤ë ¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥¢¥ë¥´¥ê¥º¥àŪ¤ËÆñ¤·¤¤ÌäÂ꤬¤¢¤ë¤Ç ¤·¤ç¤¦¡£Ê¸»úÎó¤ÎÎà»÷À­¤ò¸ú²ÌŪ¤Ë¬Äꤹ¤ë¤¿¤á¤ÎÊýË¡¤ò³«È¯¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤» ¤ó¡£PO¥â¡¼¥É¤¬Å¬ÀÚ¤ÊÇѻߥ¨¥ó¥È¥ê¤òȯ¸«¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤È¤­¡¢PO¥â¡¼¥É¤Ï´° Á´¤ËËÝÌõ¼Ô¤Ë·èÄê¤ò¤µ¤»¤Þ¤¹¡£ËÝÌõ¼Ô¤Î·èÄêºî¶È¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Î»È¤¤¤ä¤¹¤¤¥Ä¡¼ ¥ë¤Î½àÈ÷¤ò¤¹¤ë¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¡£


5.6 ËÝÌõ¤Î½¤Àµ

PO¥â¡¼¥É¤Ç¤Ï¡¢PO¥Õ¥¡¥¤¥ë¤òľÀÜÊÔ½¸¤·¤ÆEmacs¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤòÊѹ¹¤¹¤ë¤³¤È¤Ï ½ÐÍè¤Þ¤»¤ó¡£¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ËÝÌõ¼Ô¤¬¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥ÈÁ´ÂΤˤª¤±¤ë ½ñ¼°¤Î´Ö°ã¤¤¤òËɤ¤¤À¤ê¡¢Ê¸»úÎó¤òŬÀڤ˥¯¥©¡¼¥È¤·¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¤¹¡£ ¤½¤ì°Ê³°¤Î¥¨¥é¡¼¤¬¤Þ¤Àµ¯¤­¤ë²ÄǽÀ­¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤Î°ìÉô¤Ë´Ø¤·¤Æ¤Ï V¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¼Â¹Ô¤Ç¤­¤ë¥Ð¥Ã¥Á¸¡¾Ú¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¸¡ºº¤¹¤ë¤³¤È¤¬ ½ÐÍè¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¥¨¥é¡¼¤Ï¡¢ËÝÌõ¼Ô¼«¿È¤ÎȽÄê¡¢¤¢¤ë¤¤¤ÏËÝÌõ¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼ ¥¸¤Î(ËÝÌõ¼Ô¤ÈƱ¤¸Êì¹ñ¸ì¤ò»È¤¦)¥æ¡¼¥¶¤Ë¤è¤ë¥ì¥Ý¡¼¥È¤ËÍê¤é¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£

ËÝÌõʸ»úÎó¤òºîÀ®¤¹¤ë¤È¤­¡¢¤¢¤ë¤¤¤Ïµ¡³£Åª¤Ë¸¡ºº¤µ¤ì¤¿¤ê¥æ¡¼¥¶¤«¤éÊó¹ð¤µ¤ì¤¿ ¥¨¥é¡¼¤ò½¤Àµ¤¹¤ë¤È¤­¤Ë¤Ï¡¢ËÝÌõ¼Ô¤ÏËÝÌõʸ»úÎó¤ò½¤Àµ¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Ëµó¤²¤ë¥³ ¥Þ¥ó¥É¤ÎÎϤò¼Ú¤ê¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

RET
ËÝÌõ¤òÂÐÏÃŪ¤ËÊÔ½¸¤·¤Þ¤¹¡£

LFD
ËÝÌõʸ»úÎó¤ò¡¢¥ª¥ê¥¸¥Ê¥ë¤Î̤ËÝÌõʸ»úÎó¤ÇºÆ½é´ü²½¤·¤Þ¤¹¡£

k
ËÝÌõʸ»úÎó¤ò¥­¥ë¥ê¥ó¥°¤ËÊݸ¤·¡¢¤½¤ì¤«¤éºï½ü¤·¤Þ¤¹¡£

w
ËÝÌõʸ»úÎó¤ò¥­¥ë¥ê¥ó¥°¤ËÊݸ¤·¤Þ¤¹¤¬¡¢ºï½ü¤·¤Þ¤»¤ó¡£

y
ËÝÌõʸ»úÎó¤ò¥­¥ë¥ê¥ó¥°¤«¤é¼è¤ê½Ð¤·¤¿¤â¤Î¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£

RET(po-edit-msgstr)¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤«¤é¼è ¤ê½Ð¤·¤¿Ê¸»úÎó¤Î¥³¥Ô¡¼¤¬ÃÖ¤«¤ì¤¿¡¢¿·¤·¤¤Emacs¥¦¥£¥ó¥É¥¦¤ò³«¤­¤Þ¤¹¡£¤³¤Î¥¦¥£ ¥ó¥É¥¦¤Ïľ¤Á¤ËÊÔ½¸¤¹¤ë¤³¤È¤¬½ÐÍè¡¢GNU Emacs¤Î½¤Àµ¥³¥Þ¥ó¥É¤ÎÊä´°µ¡Ç½¤ò»È¤¤ ¤Ê¤¬¤é½¤Àµ¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£(¥¦¥£¥ó¥É¥¦¤Ë¤¢¤ë)ʸ»úÎó¤Ï¡¢ËÝÌõ¼Ô¤Î¤¿¤á¤Ë°ú ÍÑÉä¤Ï¤Ï¤®¤È¤é¤ì¤Æ¤¤¤Þ¤¹¤«¤é¡¢¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó¤ò¥¦¥£¥ó¥É¥¦Æâ¤Ç½¤ Àµ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ºî¶È¤¬´°Î»¤·¤¿¤Ê¤é¡¢Ä̾ï¤ÎEmacs¥³¥Þ¥ó¥ÉM-C-c (exit-recursive-edit)¤ò»È¤Ã¤Æ¸µ¤ÎPO¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸¤Ø¤ÈÌá¤ë¤³¤È¤¬¤Ç¤­ ¤Þ¤¹¡£¤³¤Î¤È¤­¡¢ËÝÌõʸ»úÎó¤Ï¿·¤·¤¤¤â¤Î¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£C-c C-c¤È¤¤¤¦¥­¡¼¤ÏM-C-c¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¤â¤·ËÝÌõ¼Ô¤¬¼«Ê¬¼«¿È¤ÎËÝÌõ¤ËËþ­¤Ç¤­¤Ê¤¯¤Ê¤ê¡¢RET¥³¥Þ¥ó¥É¤ÇÊÔ½¸¤¹¤ë Á°¤ÎËÝÌõ¤ò»Ä¤·¤¿¤Û¤¦¤¬¤è¤¤¤È´¶¤¸¤¿¾ì¹ç¡¢¤Þ¤À¸µ¤ÎËÝÌõ¤¬»Ä¤Ã¤Æ¤¤¤ë´Ö¤Ç¤¢¤ì¤Ð Emacs¤Îɸ½à¥³¥Þ¥ó¥ÉC-](abort-recursive-edit)¤ò»ÈÍѤ·¤Æ¡¢¸µ¤Î ËÝÌõ¤ËÌ᤹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£C-c C-k¤ÏC-]¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë ¤è¤¦¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¤Ï¡¢Ä̾ïÄ̤êC-c C-c¤Ç½ªÎ»¤·¤¿¤¢ ¤È¡¢U¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÊÔ½¸·ë²Ì¤ò¸µ¤ËÌ᤹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

po-subedit-mode-hook¤Ë´Ø¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢Ê¸»úÎó¤¬ÊÔ½¸¥Ð¥Ã¥Õ¥¡ ¤ËÁÞÆþ¤µ¤ì¤¿¸å¡¢¤«¤ÄºÆµ¢ÅªÊÔ½¸¤¬³«»Ï¤µ¤ì¤ëÁ°¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿´Ø¿ô¤¬¼Â¹Ô¤µ¤ì ¤Þ¤¹¡£

ËÝÌõʸ»úÎó¤òÊÔ½¸¤·¤Æ¤¤¤ë´Ö¤ËËÝÌõ¼Ô¤¬µ¤¤ò¤Ä¤±¤ë¤Ù¤­¤³¤È¤Ï¡¢Í¾·×¤Ê RET(²þ¹Ô)ʸ»ú¤òËÝÌõʸ»úÎó¤ËÆþ¤ì¤Æ¤·¤Þ¤Ã¤¿¤ê¡¢µÕ¤ËɬÍפʲþ¹Ô¤ò ¼è¤ê½ü¤¤¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤³¤È¤ò¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤³¤Îʸ»ú¤ÏÊÔ½¸ ¥Ð¥Ã¥Õ¥¡¾å¤Ç¤ÏÌܤ˸«¤¨¤Ê¤¤¤Î¤Ç¡¢´Ö°ã¤¤¤òÈȤ·¤ä¤¹¤¤¤Î¤Ç¤¹¡£¤³¤ì¤òËɤ°¤¿¤á¤Ë¡¢ RET¤Ï¼«Æ°Åª¤Ë<¤È¤¤¤¦Ê¸»ú¤òÊÔ½¸¤·¤Æ¤¤¤ëʸ»úÎó¤Î½ªÃ¼¤ËÉղà ¤·¤Þ¤¹¤¬¡¢¤³¤Î<¤Ïʸ»úÎó¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£C-c C-c¤ò»È¤Ã ¤ÆÊÔ½¸¥¦¥£¥ó¥É¥¦¤«¤éÈ´¤±¤ë¤È¤­¤Ë¡¢PO¥â¡¼¥É¤Ï¼«Æ°Åª¤Ë(ÀèÄøÉղä·¤¿) <¤ò¼è¤ê½ü¤­¤Þ¤¹¡£¤â¤·ËÝÌõ¼Ô¤¬Ê¸»úÎó¤ÎºÇ¸å¤Î<¤Î¸å¤í¤Ëʸ»ú¤òÄɲà ¤·¤¿¾ì¹ç¡¢<¤ËÈ÷¤ï¤Ã¤¿½ªÃ¼Â°À­¤Ï¼º¤ï¤ì¡¢<¤Ïʸ»úÎó¤Î°ìÉô¤È¤Ê¤Ã¤Æ ¤·¤Þ¤¤¤Þ¤¹¡£¤â¤·ËÝÌõ¼Ô¤¬<¤ò¼«Ê¬¤Ç¼è¤ê½ü¤¤¤Æ¤·¤Þ¤Ã¤¿¤Ê¤é¡¢ÊÔ½¸¤·¤¿Ê¸ »úÎó¤Ï¤¢¤ë¤¬¤Þ¤Þ¤Î¾õÂÖ¤ËÃÖ¤«¤ì¡¢Ìܤ˸«¤¨¤Ê¤¤²þ¹Ô¤¬Ê¸»úÎó¤Î¸å¤í¤Ë³ ¤¤¤Æ¤¤¤¿¤È¤·¤Æ¤â¤½¤ì¤Ï¼è¤ê½ü¤«¤ì¤Þ¤»¤ó¡£¤Þ¤¿¡¢ËÝÌõʸ»úÎó¤¬ËÜʪ¤Î<¤Ç ½ª¤ï¤ëʸ»úÎó¤À¤Ã¤¿¤Î¤Ê¤é¡¢<¤Ï¼è¤ê½ü¤«¤ì¤Þ¤»¤ó¡£Ê¸»úÎó¤ÏÊÔ½¸¥¦¥£¥ó¥É ¥¦¤ÎÃæ¤ËÆó¤Ä¤Î<¤¬ºÇ¸å¤ËÉÕ¤¤¤Æ¤¤¤ë¤è¤¦¤Ê¾õÂ֤Ǹ«¤¨¤ë¤³¤È¤Ç¤·¤ç¤¦¡£

ËÝÌõʸ»úÎó(¤â¤·¤¯¤Ï¥³¥á¥ó¥È)¤¬ÊÔ½¸¤µ¤ì¤Æ¤¤¤ë¤È¤­¡¢ËÝÌõ¼Ô¤Ï¥«¡¼¥½¥ë¤òPO¥Õ¥¡ ¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ËÌᤷ¤Æ¡¢¤µ¤é¤ËÊ̤Υ¨¥ó¥È¥ê¤Ë°Ü¤Ã¤Æį¤á¤ë¤è¤¦¤Ê¤³¤È¤ò¤¹¤ë¤«¤â ¤·¤ì¤Þ¤»¤ó¡£Æ±»þ¤Ë½¤Àµ²Äǽ¤Ê¥¨¥ó¥È¥ê¤Ï°ì¤Ä¤À¤±¤Ê¤Î¤Ç¡¢ÊÔ½¸¤µ¤ì¤¿¥¨¥ó¥È¥ê¤Ï ÊÔ½¸¤¬½ªÎ»¤¹¤ë¤È¤¹¤°¤Ë¸µÄ̤ê¤Ë¤Ê¤ê¤Þ¤¹¡£ÊÔ½¸¤·¤Æ¤¤¤ë¤â¤Î¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ ¤Þ¤ÇËÝÌõ¼Ô¤¬PO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò¤¦¤í¤Ä¤­¤Þ¤ï¤Ã¤¿¤È¤·¤¿¤é¡¢Èà½÷¤Ï¾¤Î¤É¤Î¥¨ ¥ó¥È¥ê¤â½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¤â¤·½¤Àµ¤·¤è¤¦¤È¤·¤¿¤Ê¤é¡¢PO¥â¡¼¥É¤Ï¸½ºß ¤ÎÊÔ½¸¤òÃæÃǤ¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢Â¾¤Î¥¨¥ó¥È¥ê¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¸½ºß¤ÎÊÔ½¸¤ò½ªÎ» ¤¹¤ë¤è¤¦¤Ë¥¢¥É¥Ð¥¤¥¹¤¹¤ë¤Ç¤·¤ç¤¦¡£

LFD(po-msgid-to-msgstr) ¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ï¡¢ËÝÌõ¸ì¤ò¸µ¡¹¤Îʸ»ú Îó¤Ç½é´ü²½¡¢¤â¤·¤¯¤ÏºÆ½é´ü²½¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¤½¤ì¤Þ¤Ç¤Îºî¶È¤ò̵»ë¤·¤Æ¡¢ ¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤ÇËÝÌõ¤òºÆÅÙ¸µ¤ËÌᤷ¤¿¤¤¤È¤¤¤¦¤È¤­¤Ë»È¤ï¤ì¤Þ¤¹¡£

̤ËÝÌõ¥¨¥ó¥È¥ê¤òÊÔ½¸¤¹¤ë¤È¤­¤Ï¤¤¤Ä¤Ç¤â¡¢LFD¥³¥Þ¥ó¥É¤¬¼«Æ°Åª¤Ë¼Â¹Ô¤µ ¤ì¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£po-auto-edit-with-msgid¤ò t¤ËÀßÄꤹ¤ì¤Ð¡¢¤â¤·¤Þ¤ÀËÝÌõ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤Ë¤è¤Ã ¤Æ½é´ü²½¤µ¤ì¤Þ¤¹¡£po-auto-edit-with-msgid¤Î½é´üÃͤÏnil¤Ç¤¹¡£

»ö¼Â¡¢¶õ¤Îʸ»úÎ󤫤éËÝÌõ¤ò³«»Ï¤¹¤ë¤Î¤È¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤Î¥³¥Ô¡¼¤È¶¦¤Ë³«»Ï ¤¹¤ë¤Î¤È¤Î¤É¤Á¤é¤¬¤è¤¤¤Î¤«¤Ï¡¢Ã±¤Ë¹¥¤ß¤ÎÌäÂê¤Ç¤¹¡£¤¢¤ë¤È¤­¤Ï¡¢¸µ¡¹¤Î¸À¸ì¤È ¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë¸À¸ì¤Ï¡¢Çò»æ¤«¤é½ñ¤­»Ï¤á¤¿¤Û¤¦¤¬¤è¤¤¤Û¤É°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤Þ ¤¿Ê̤ξì¹ç¡¢¸µ¡¹¤Î¸À¸ì¤È¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë¸À¸ì¤Ï¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤·¤ÆÀßÄꤵ ¤ì¤Æ¤¤¤ë¤â¤Î¤Î´ö¤Ä¤«¤Îñ¸ì¤òºÆÅÙÂǤÁľ¤¹¤À¤±¤Ç¤¹¤à¤«¤â¤·¤ì¤Þ¤»¤ó¡£ËÝÌõ¼Ô¤â ¤Þ¤¿¡¢Èà½÷¤ÎÌܤÎÁ°¤Ë¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎ󤬤¢¤ë¤Û¤¦¤ò¹¥¤à¤³¤È¤Ç¤·¤ç¤¦¡£Èà½÷¤Ï ¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤òËÝÌõ¤Ë¤è¤Ã¤Æ¾å½ñ¤­¤·¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£²¾¤Ë¥ª¥ê¥¸¥Ê ¥ë¤Îʸ»úÎó¤ò¾Ãµî¤¹¤ë¤¿¤á¤Ë;ʬ¤ÊÊÔ½¸ºî¶È¤¬É¬ÍפȤʤë¤Ë¤·¤Æ¤â¡£

¥³¥Þ¥ó¥Ék(po-kill-msgstr)¤Ï¡¢¥¨¥ó¥È¥ê¤ò̤ËÝÌõ¥¨¥ó¥È¥ê¤Ø¤ÈÌ᤹ ¤³¤È¤Ë¤è¤Ã¤Æ¡¢ËÝÌõʸ»úÎó¤ò¶õ¤Ë¤¹¤ë¤À¤±¤Î¤â¤Î¤Ç¤¹¡£¤·¤«¤·¤³¤Î´Ö¤Ë¡¢°ÊÁ°¤ÎËÝ Ìõʸ»úÎó¤Ï¥­¥ë¥ê¥ó¥°¤È¤·¤ÆÃΤé¤ì¤ëÊ̤ÎÆÃÊ̤ʾì½ê¤ËÃÖ¤«¤ì¤Þ¤¹¡£¥³¥Þ¥ó¥É w(po-kill-ring-save-msgstr)¤â¤Þ¤¿ËÝÌõ¤Î¥³¥Ô¡¼¤ò¥­¥ë¥ê¥ó¥°¤ËÃÖ ¤­¤Þ¤¹¤¬¡¢¤³¤Î¾ì¹ç¤ÏÊ̤ÎÊýË¡¤Ç¥¨¥ó¥È¥ê¤òÈ´¤±½Ð¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ËÝÌõ¤Ï¤½¤Î¥¨ ¥ó¥È¥ê¤«¤é¼è¤ê½ü¤«¤ì¤Ê¤¤¤Î¤Ç¤¹¡£Î¾Êý¤Î¥³¥Þ¥ó¥É¤ÏÀµ³Î¤Ë¥Ð¥Ã¥Õ¥¡´Ö¤Ç ¶¦Í­¤µ¤ì¤ë¥­¥ë¥ê¥ó¥°¤ò»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¤½¤ì¤ÏGNU Emacs¤ò°¦¤¹¤ë¿Í¤Ë¤È¤Ã¤Æ¤Ï ´û¤Ë¤è¤¯ÃΤé¤ì¤¿¤â¤Î¤Ç¤¹¡£

ËÝÌõ¼Ô¤Ï¥­¥ë¥ê¥ó¥°¤òÍÍ¡¹¤ÊËÝÌõ¤ÎÃÖ¤­¾ì¤È¤·¤Æ»È¤¦¤¿¤á¤Ë¡¢k¤Þ¤¿¤Ï w¤òÉÑÈˤ˻Ȥ¦¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¥­¥ë¥ê¥ó¥°¤«¤é¤Ï¡¢Ê¸»úÎó¤ò¸å¤«¤éÍÍ¡¹ ¤ÊEmacs¥Ð¥Ã¥Õ¥¡¤ËºÆÁÞÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£Æäˡ¢¥­¥ë¥ê¥ó¥°¤Ï°ì¤Ä¤ÎPO¥Õ¥¡ ¥¤¥ë¥Ð¥Ã¥Õ¥¡Ãæ¤Î°Û¤Ê¤ë¥¨¥ó¥È¥ê´Ö¤Ç¤ÎËÝÌõʸ»úÎó¤Î°ÜÆ°¡¢¤Þ¤¿¤â¤·Æ±»þ¤ËÊ£¿ô¤Î ¥Ð¥Ã¥Õ¥¡¤òÁàºî¤·¤Æ¤¤¤ë¤Ç¤¢¤ì¤Ð¡¢Ê£¿ô¤ÎPO¥Õ¥¡¥¤¥ë¤Î´Ö¤Ç¤ÎËÝÌõʸ»úÎó¤Î°ÜÆ°¤ò ¹Ô¤¦¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹

PO¥â¡¼¥É¤ò»ÈÍѤ·¤Æ¤¤¤Ê¤¤¥Ð¥Ã¥Õ¥¡¤È¤âÍưפ˥ǡ¼¥¿¸ò´¹¤¬¹Ô¤¨¤ë¤è¤¦¤Ë¡¢ k¥³¥Þ¥ó¥É¤ÏËÝÌõʸ»úÎó¤òÊݸÁ°¤Î¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǥ­¥ë¥ê¥ó¥° ¤ËÃÖ¤­¤Þ¤¹¡£³°Éô¥¯¥©¡¼¥È¤Ï½üµî¤µ¤ì¡¢Ê£¿ô¹Ô¤«¤é¤Ê¤ëʸ»úÎó¤ÏÏ¢·ë¤µ¤ì¡¢¥Ð¥Ã¥¯ ¥¹¥é¥Ã¥·¥å¤Ë¤è¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ÏÂбþ¤¹¤ë¥­¥ã¥é¥¯¥¿¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£ Çѻߥ¨¥ó¥È¥ê¤ËÂФ¹¤ë¾ì¹ç¤Ç¤â¡¢ËÝÌõ¤ÏÊݸÁ°¤Î¥³¥á¥ó¥È¤¬²ò½ü¤µ¤ì¤¿¾õÂÖ¤È¤Ê¤ê ¤Þ¤¹¡£

¥³¥Þ¥ó¥Éy(po-yank-msgstr)¤Ï¸½ºß¤Î¥¨¥ó¥È¥ê¤ò¥­¥ë¥ê¥ó¥°¤«¤é¼è¤ê ½Ð¤µ¤ì¤¿Ê¸»úÎó¤Ç´°Á´¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£GNU Emacs¤Ç¤ÎÍѸì¤Ë½¾¤¨¤Ð¡¢ÃÖ¤­´¹¤¨¤ë ʸ»úÎó¤ÏPO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤Ë¥ä¥ó¥¯¤µ¤ì¤¿¤È¸À¤¤¤Þ¤¹See section `Yanking' in The Emacs Editor¡£ºÇ½é¤Ëy¤¬»ÈÍѤµ¤ì¤¿¤È¤­¡¢ËÝÌõ¤Ï°ìÈֺǶá¤Ë ¥­¥ë¥ê¥ó¥°¤Ë²Ã¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£¤â¤· y¤¬ºÆÅÙ¥¿¥¤¥×¤µ ¤ì¤¿¤Ê¤é¡¢ÅÓÃæ¤Ë²¿¤é¤«¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤òɬÍפȤ¹¤ë¤³¤È¤Ê¤¯Ä¾¤Á¤Ë¡¢ÁÞÆþ¤µ¤ì ¤¿ËÝÌõ¤Ï¼è¤êµî¤é¤ì¤ÆÆóÈÖÌܤ˿·¤·¤¯¥­¥ë¥ê¥ó¥°¤Ë²Ã¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤ÇÃÖ¤­´¹¤¨¤é ¤ì¤Þ¤¹¡£¤¢¤ë¹ÔÃæ¤Ç·«¤êÊÖ¤·y¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢ËÝÌõ¼Ô¤¬ËÜÅö¤ËɬÍפȤ· ¤¿Ê¸»úÎó¤ò¸«¤Ä¤±½Ð¤¹¤Þ¤Ç¡¢ËÝÌõ¤Ï¥­¥ë¥ê¥ó¥°Ãæ¤ËÊݸ¤µ¤ì¤¿Ê¸»úÎó¤Ë¤è¤Ã¤Æ¼¡¡¹ ¤ÈÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£

PO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ëʸ»úÎ󤬥ä¥ó¥¯¤µ¤ì¤¿¤È¤­¡¢Ê¸»úÎó¤ÏPO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã ¥È¤Ë½¾¤¦¤è¤¦¡¢´°Á´¤Ë¤½¤·¤Æ¼«Æ°Åª¤ËºÆÅÙ¥¯¥©¡¼¥È¤µ¤ì¤Þ¤¹¡£¹¹¤Ë¡¢¤â¤·¥¨¥ó¥È¥ê ¤¬Çѻߥ¨¥ó¥È¥ê¤Ç¤¢¤ì¤Ð¡¢PO¥â¡¼¥É¤ÏÁÞÆþ¤µ¤ì¤¿Ê¸»úÎó¤òŬÀڤ˥³¥á¥ó¥È²½¤·¤Þ¤¹¡£ ¤â¤¦°ìÅÙ¡¢ËÝÌõ¼Ô¤Ï¤Ë¥¯¥©¡¼¥È¤Ë´Ø¤¹¤ëÇÛθ¡¢¤½¤ì¤Ë¤â¤Á¤í¤ó¡¢¥×¥í¥°¥é¥àÃæ¤Ç»È ¤ï¤ì¤ëËÝÌõʸ»úÎ󤽤줾¤ì¤ÎɬÍ×À­¤Ë´Ø¤¹¤ëÇÛθ¤ò¡¢ËÝÌõ¼Ô¼«¿È¤ËÉé¤ï¤»¤Æ¤Ï¤¤¤± ¤Þ¤»¤ó¡£

k¤Þ¤¿¤Ïw¤Ï¡¢Ê¸»úÎó¤ò¥­¥ë¥ê¥ó¥°¤Ë³ÊǼ¤¹¤ëÍ£°ì¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¤ ¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£ËÝÌõʸ»úÎó(¤Þ¤¿¤ÏËÝÌõ¼Ô¥³¥á¥ó¥È)¤òÃÖ¤­´¹¤¨¤ë¤Û¤È ¤ó¤É¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤Ï¡¢¼«Æ°Åª¤Ë¸Å¤¤Ê¸»úÎó¤ò¥­¥ë¥ê¥ó¥°¤Ë³ÊǼ¤·¤Þ¤¹¡£¤³¤Î ¥ë¡¼¥ë¤Î¼ç¤ÊÎã³°¤Ï¡¢¥ä¥ó¥¯¤¹¤ë¥³¥Þ¥ó¥É·²¼«¿È¤Ç¤¹¡£

¥­¥ë¤È¥ä¥ó¥¯¤ÎÁàºî¤òÌÀ³Î¤Ë¤¹¤ë¤¿¤á¤Ë¡¢°ìÈÌŪ¤Ê¾õ¶·¤ò¼è¤ê¾å¤²¤Æ¼ÂºÝ¤ÎÎã¤ò¼¨ ¤·¤Þ¤·¤ç¤¦¡£¥×¥í¥°¥é¥Þ¤¬¥×¥í¥°¥é¥à¤Ë¹ç¤¦¤è¤¦¤Ëʸ»úÎó¤ò¤Á¤ç¤Ã¤È¤À¤±½¤Àµ¤·¤¿ ¤È¤¹¤ë¤È¡¢¤½¤ÎÊѹ¹¤Ï¸åÄø¡¢½¤Àµ¤µ¤ì¤¿Ê¸»úÎóÍѤ˿·¤·¤¤Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤È¤·¤Æ PO¥Õ¥¡¥¤¥ë¤ËÈ¿±Ç¤µ¤ì¡¢°ÊÁ°¤ÎËÝÌõ¥¨¥ó¥È¥ê¤ÏÇѻߥ¨¥ó¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£Â¿¤¯¤Î¾ì ¹ç¡¢ËÝÌõ¼Ô¤Ï¼«Ê¬¤Îºî¶È¤¬³Ú¤Ë¤Ê¤ë¤è¤¦¤ËÇѻߥ¨¥ó¥È¥ê¤«¤éËÝÌõʸ»úÎó¤òÌᤷ¤Þ¤¹ ¤Î¤Ç¡¢Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤Îmsgstr¥Õ¥£¡¼¥ë¥É¤Ï°ÊÁ°¤ÎËÝÌõ¤Ç½é´ü²½¤µ¤ì¤Þ¤¹¡£ °ìÅÙ¤³¤Îºî¶È¤ò¹Ô¤¨¤ÐÇѻߥ¨¥ó¥È¥ê¤ÏÉÔÍפȤʤꡢ°ÂÁ´¤Ëºï½ü½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç ¤·¤ç¤¦¡£

ËÝÌõ¼Ô¤¬Ì¤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤òȯ¸«¤·¡¢ËÝÌõ¤Ë¿¾¯¤Î°ã¤¤¤¬Â¸ºß¤¹¤ë¤È´¶¤¸¤¿¤Ê¤é¡¢ Èà½÷¤Ï¸½ºß¤Î¥¨¥ó¥È¥ê¤Î°ÌÃÖ¤ò¥Þ¡¼¥¯¤¹¤ë¤¿¤á¤Ëľ¤Á¤Ëm¤ò»ÈÍѤ·¡¢Ì¤ËÝÌõ ¤Îʸ»úÎó¤ËÂбþ¤¹¤ëËÝÌõ¤¬¸«¤Ä¤«¤ë¤³¤È¤ò´üÂÔ¤·¤Ê¤¬¤éo¤òÍѤ¤¤ÆÇѻߥ¨¥ó ¥È¥ê¤òõ¤·½Ð¤·¤Þ¤¹¡£¸«¤Ä¤«¤Ã¤¿¤Ê¤é¡¢Èà½÷¤ÏËÝÌõ¤ò¾Ãµî¤¹¤ëDEL¥³ ¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÇѻߤµ¤ì¤¿¥¨¥ó¥È¥ê¤òºï½ü¤·¡¢ËÝÌõ¤ò¥­¥ë¥ê¥ó¥°¤ËÃÖ¤­¤Þ¤¹¡£¤½ ¤·¤Æ¡¢r¤Ë¤è¤Ã¤Æ¸µ¡¹¤Î̤ËÝÌõ¥¨¥ó¥È¥ê¤Î°ÌÃ֤ؤÈÌá¤ê¡¢y¤ò»È¤Ã¤ÆÊÝ Â¸¤·¤¿ËÝÌõ¤òmsgstr¥Õ¥£¡¼¥ë¥É¤Ø¤È¥ä¥ó¥¯¤·¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï RET¤ò»È¤Ã¤ÆËÝÌõ¤ÎÆâÍƤò¤è¤êÎɤ¯½¤Àµ¤·¡¢¸åÄøu¡¢¤½¤·¤Æ m¤òºÆÅÙ»ÈÍѤ·¤Æ¼¡¤Î̤ËÝÌõʸ»úÎó¤Ø¤È°ÜÆ°¤·¤Þ¤¹¡£

¥­¡¼¤Îή¤ì¤ò·«¤êÊÖ¤·¥¿¥¤¥×¤·¤Æ¤¤¤ë¤È¡¢¤³¤ì¤é¤Î¥·¡¼¥±¥ó¥¹¤ò³Ø½¬¤·Í×µá»þ¤Ë¤½ ¤Î¥·¡¼¥±¥ó¥¹¤òºÆÅټ¹Ԥ¹¤ë¤È¤¤¤¦Emacs¤ÎǽÎϤ˽¬½Ï¤¹¤ì¤ÐÊØÍø¤Ë¤Ê¤ë¤È¤¤¤¦¤³ ¤È¤ËËÝÌõ¼Ô¤Ïµ¤¤¬ÉÕ¤¯¤Ç¤·¤ç¤¦See section `Keyboard Macros' in The Emacs Editor¡£


5.7 ¥³¥á¥ó¥È¤Î½¤Àµ

¿¿·õ¤Ë¹Ô¤ï¤ì¤¿¤¢¤é¤æ¤ëËÝÌõºî¶È¤Ï¡¢·èÄꤵ¤ì¤ë¤Ù¤­¤³¤È¡¢¤½¤·¤Æ¹¹¤Ê¤ëʸ½ñ²½¤Î ÁªÂò¤Ë¤Ä¤¤¤Æ¡¢Â¿¤¯¤Î¸À¸ìŪº¤Æñ¤òÁýÂ礵¤»¤Þ¤¹¡£¤³¤ì¤é¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢ËÝÌõ ¼Ô¤¬¼«Í³¤ËºîÀ®¤·¡¢ºï½ü¤·¡¢½¤Àµ¤¹¤ë¤³¤È¤¬½ÐÍè¤ëËÝÌõ¼Ô¥³¥á¥ó¥È¤Î·Á¤ÇPO¥Õ¥¡¥¤ ¥ëÃæ¤ËÊݸ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¥³¥á¥ó¥È¤Ï¡¢ËÝÌõ¼Ô¤¬¸å¤«¤é¤³¤ÎPO¥Õ¥¡¥¤¥ë¤Çºî¶È ¤¹¤ë¤È¤­¤ËÊØÍø¤Ê¤â¤Î¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£

ºÇ½é¤Î`#'¤Îľ¸å¤Ë¶õÇò¤òȼ¤ï¤Ê¤¤¥³¥á¥ó¥È¡¢Î㤨¤Ð`#.'¤ä`#:'¤Ï ËÝÌõ¼Ô¥³¥á¥ó¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤Ï¤â¤Ã¤Ñ¤é¾¤Îgettext¥Ä¡¼ ¥ë¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£°Ê²¼¤Ë½Ò¤Ù¤ë¥³¥Þ¥ó¥É¤Ï¥³¥á¥ó¥È¤òÄɲ乤ëºÝ¤ËÀè¤Î·è ¤Þ¤ê¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¯¡¢ËÝÌõ¼Ô¤Ë½¤Àµ¤µ¤»¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£See section 2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡£

°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤½¤ì¤é¤¬Å¬±þ¤µ¤ì¤ë°ìÈÌŪ¤Ê·¹¸þ¤«¤é¡¢ËÝÌõ¤ò½¤Àµ¤¹¤ë¥³¥Þ¥ó ¥É¤Ë´öʬ»÷¤Æ¤¤¤Þ¤¹¡£See section 5.6 ËÝÌõ¤Î½¤Àµ

#
ËÝÌõ¼Ô¥³¥á¥ó¥È¤òÂÐÏÃŪ¤ËÊÔ½¸¤·¤Þ¤¹¡£

K
ËÝÌõ¼Ô¥³¥á¥ó¥È¤ò¥­¥ë¥ê¥ó¥°¤ËÊݸ¤·¤Æ¡¢ºï½ü¤·¤Þ¤¹¡£

W
¸æÌõ¼Ô¥³¥á¥ó¥È¤ò¥­¥ë¥ê¥ó¥°¤ËÊݸ¤·¤Þ¤¹¤¬¡¢ºï½ü¤·¤Þ¤»¤ó¡£

Y
ËÝÌõ¼Ô¥³¥á¥ó¥È¤ò¥­¥ë¥ê¥ó¥°¤«¤é¼è¤ê½Ð¤·¤¿¤â¤Î¤ÇÃÖ´¹¤·¤Þ¤¹¡£

¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ÏËÝÌõʸ»úÎó¤ò½¤Àµ¤¹¤ë¤¿¤á¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤Ë»÷¤Æ¤ª¤ê¡¢Æ± ¤¸¤è¤¦¤ÊÊýË¡¤ÇÆ°ºî¤·¤Þ¤¹¤¬¡¢ËÝÌõʸ»úÎó¤Ç¤Ï¤Ê¤¯ËÝÌõ¼Ô¤¬»È¤¦¤¿¤á¤ÎPO¥Õ¥¡¥¤¥ë ¤Î¥³¥á¥ó¥È¤ò°·¤¦¤È¤¤¤¦ÅÀ¤Ç°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤Ç¤¹¤Î¤Ç¡¢°Ê²¼¤Ë½Ò¤Ù¤ëÀâÌÀ¤Ï¤´¤¯ ´Ê·é¤ËÍÞ¤¨¤Æ¤¢¤ê¤Þ¤¹¡£¾ÜºÙ¤Ï´û¤Ë½Ò¤Ù¤Æ¤¤¤ë¤Î¤Ç¤¹¤«¤é¡£See section 5.6 ËÝÌõ¤Î½¤Àµ

#(po-edit-comment)¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ë¤¢¤ë ËÝÌõ¼Ô¥³¥á¥ó¥È¤Î¥³¥Ô¡¼¤È¶¦¤Ë¿·¤¿¤ÊEmacs¤Î¥¦¥£¥ó¥É¥¦¤ò³«¤­¤Þ¤¹¡£³ºÅö¤¹¤ë¥³ ¥á¥ó¥È¤¬¤Ê¤±¤ì¤Ð¡¢PO¥â¡¼¥É¤ÏËÝÌõ¼Ô¤¬¤½¤Î¥¨¥ó¥È¥ê¤ËÂФ·¤Æ¥³¥á¥ó¥È¤òÉղä·¤è ¤¦¤È¤·¤Æ¤¤¤ë¤ÈȽÃǤ·¤Æ¡¢¶õ¤Î¥¦¥£¥ó¥É¥¦¤ò³«¤­¤Þ¤¹¡£¥³¥á¥ó¥Èµ­¹æ(#)¤È ¤½¤ì¤Ë³¤¯¥¹¥Ú¡¼¥¹¤ÏÊÔ½¸Á°¤Ë¼«Æ°Åª¤Ë¼è¤ê½ü¤«¤ì¡¢ÊÔ½¸¸å¤ËºÆÅÙÁÞÆþ¤µ¤ì¤Þ¤¹¡£ Çѻߥ¨¥ó¥È¥ê¤Ë¤¢¤ëËÝÌõ¼Ô¥³¥á¥ó¥È¤ËÂФ·¤Æ¤Ï¡¢¥³¥á¥ó¥È³°¤·(uncommenting)¤ÈºÆ ¥³¥á¥ó¥È²½(recommenting)¤¬¹Ô¤ï¤ì¤Þ¤¹¡£¥¦¥£¥ó¥É¥¦¤ò°ìÅÙÊÔ½¸¤·¤¿¤Ê¤é¡¢ËÝÌõ¼Ô ¤ÏC-c C-c¤Ë¤è¤Ã¤Æ¥³¥á¥ó¥È¤ÎÊÔ½¸¤ò½ª¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

po-subedit-mode-hook¤ËÄêµÁ¤µ¤ì¤¿´Ø¿ô·²¤¬¤â¤·¤¢¤ì¤Ð¡¢¤½¤ì¤é¤Ïʸ»úÎó ¤¬ÊÔ½¸¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤µ¤ì¤¿¸å¡¢¤«¤ÄºÆµ¢Åª¤ÊÊÔ½¸¤ËÆþ¤ëÁ°¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

K(po-kill-comment)¥³¥Þ¥ó¥É¤ÏÁ´¤Æ¤ÎËÝÌõ¼Ô¥³¥á¥ó¥È¤òÀÚ¤ê¼è¤ê¡¢ ¤½¤ì¤ò¥­¥ë¥ê¥ó¥°¤ËÊݸ¤·¤Þ¤¹¡£W(po-kill-ring-save-comment)¤Ï ËÝÌõ¼Ô¥³¥á¥ó¥È¤Î¥³¥Ô¡¼¤ò¼èÆÀ¤·¤½¤ì¤ò¥­¥ë¥ê¥ó¥°¤ËÃÖ¤­¤Þ¤¹¤¬¡¢¸½ºß¤Î¥¨¥ó¥È¥ê ¤Ï¤½¤Î¤Þ¤Þ¤Î¾õÂ֤ˤ·¤Þ¤¹¡£M-Y(po-yank-comment)¥³¥Þ¥ó¥É¤Ï¡¢¥­ ¥ë¥ê¥ó¥°¤ÎÀèƬ¤«¤é¼è¤ê½Ð¤·¤¿Ê¸»úÎó¤ÇËÝÌõ¼Ô¥³¥á¥ó¥È¤ò´°Á´¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£¤³ ¤Î¥³¥Þ¥ó¥É¤¬¤¹¤°¤Ë·«¤êÊÖ¤µ¤ì¤¿¾ì¹ç¡¢ÁÞÆþ¤µ¤ì¤¿¥³¥á¥ó¥È¤Ï²ó¼ý¤µ¤ì¡¢¥­¥ë¥ê¥ó ¥°¤«¤é¼è¤ê½Ð¤·¤¿Ê̤Îʸ»úÎó¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¥­¥ë¥ê¥ó¥°¤Ë¤ª¤¤¤Æ¤Ï¡¢Á´¤Æ¤Îʸ»úÎó¤Ï¼«Á³¤Ë¿¶¤ëÉñ¤¤¤Þ¤¹¡£ËÝÌõ¤È ËÝÌõ¼Ô¥³¥á¥ó¥È¤Î´Ö¤Ë¶èÊ̤Ϥ¢¤ê¤Þ¤»¤ó¡£Î㤨¤Ð¡¢ËÝÌõ¼Ô¤¬¤¢¤ëËÝÌõ¤ò¤¿¤Ã ¤¿º£´°Î»¤·¤¿¤¬¡¢¤½¤ÎËÝÌõ¤¬¤¢¤Þ¤ê¤è¤¤¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢ÌäÂêÅÀ¤òµ­Ï¿¤·¤Æ¤ª¤³¤¦¤È ¹Í¤¨¤Æ¿·¤·¤¤ËÝÌõ¼Ô¥³¥á¥ó¥È¤òºîÀ®¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤È²¾Äꤷ¤Æ¤ß¤Þ¤¹¡£Èà½÷¤Ïľ Á°¤ÎËÝÌõ¤òËÝÌõ¼Ô¥³¥á¥ó¥ÈÃæ¤Ë°úÍѤ·¤¿¤¤¤³¤È¤Ç¤·¤ç¤¦¡£¤½¤Î¤¿¤á¤Ë¡¢Èà½÷¤ÏËÝÌõ ¼Ô¥³¥á¥ó¥È¤ò¡¢¤Þ¤À¥­¥ë¥ê¥ó¥°¤ÎÀèƬ¤ËÃÖ¤«¤ì¤Æ¤¤¤ëľÁ°¤ÎËÝÌõ¤Ë¤è¤Ã¤Æ½é´ü²½¤· ¤Þ¤¹¡£ÊÔ½¸¤Ë¤è¤Ã¤ÆľÁ°¤ÎËÝÌõ¤Ï´û¤Ë¥­¥ë¥ê¥ó¥°¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢Èà½÷¤¬¤¿¤À ñ¤Ë#¤ÎÁ°¤ËM-w¤ò¥¿¥¤¥×¤¹¤ì¤ÐľÁ°¤ÎËÝÌõ¤Ï¤½¤³¤ËÃÖ¤«¤ì¡¢ÀâÌÀʸ¤ò µ­½Ò¤¹¤ë½àÈ÷¤ÏÀ°¤¤¤Þ¤¹¡£

°ìÊý¡¢´û¤Ë²¿¤é¤«¤ÎËÝÌõ¼Ô¥³¥á¥ó¥È¤¬Â¸ºß¤·¡¢ËÝÌõ¼Ô¤¬¤½¤ì¤é¤Î¥³¥á¥ó¥È¤ò´°Á´¤Ë Ê̤Τâ¤Î¤ÇÃÖ¤­´¹¤¨¤¿¤¤¤È¤·¤Þ¤¹¡£¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢Èà½÷¤Ï#¤ò»È¤Ã¤Æ¥³¥á ¥ó¥È¤òÊÔ½¸¤·¤Þ¤¹¡£ÊÔ½¸¥¦¥£¥ó¥É¥¦¤Ë°Ü¤Ã¤¿¤Ê¤é¤Ð¡¢Èà½÷¤ÏÄ̾ï¤ÎGNU Emacs¤Î¥³ ¥Þ¥ó¥É¤Ç¤¢¤ëC-y(yank)¡¢¤¢¤ë¤¤¤Ï°ÊÁ°¤ÎËÝÌõ¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë M-y(yank-pop)¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


5.8 Êä½õPO¥Õ¥¡¥¤¥ë¤ò»²¹Í¤Ë¤¹¤ë

PO¥â¡¼¥É¤Ï¿¤¯¤Î¸À¸ì¤ËÄ̤¸¤¿Ãμ±¤Î¤¢¤ëËÝÌõ¼Ô¤Î½õ¤±¤È¤Ê¤ê¤Þ¤¹¡£´û¤Ëºî¶È¤ò´° λ¤·¤¿ËÝÌõ¤ÎÀ®²Ì¤ò¡¢¤¿¤Þ¤¿¤ÞÈà½÷¤¬ÃΤäƤ¤¤ëÊ̤θÀ¸ì¤ËÂФ·¤ÆÍѤ¤¤ë¤³¤È¤¬½Ð Íè¤Þ¤¹¡£PO¥â¡¼¥É¤Ï¤³¤ì¤é¾¤Î¸À¸ì¤Ø¤ÎËÝÌõ¤ò¡¢ËÝÌõ¼Ô¤Î»Å»ö¤Ø¤ÎÄɲäΥ³¥ó¥Æ¥­ ¥¹¥È¤È¤·¤Æ½àÈ÷¤·¤Þ¤¹¡£¤µ¤é¤Ë¡¢¤³¤Î¤è¤¦¤ÊÊýË¡¤Çºî¶È¤¹¤ë¤³¤È¤ò¹¥¤àËÝÌõ¼Ô¤ËÂÐ ¤·¤Æ¤Ï¡¢°ìÅ٤˿¤¯¤Î¸À¸ì¤Ø¤ÎËÝÌõ¤ò¹Ô¤¦¤³¤È¤ò´Êñ¤Ë¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£

Êä½õPO¥Õ¥¡¥¤¥ë¤È¤Ï¡¢ËÝÌõ¼Ô¤¬ºî¶È¤ÎÂоݤȤ·¤Æ¤¤¤ë°ì¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Ë ¸ºß¤¹¤ë¡¢°Û¤Ê¤Ã¤¿Êì¹ñ¸ì¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ëPO¥Õ¥¡¥¤¥ë¤Ç¤¹¡£Êä½õPO¥Õ¥¡¥¤¥ë¤ò Àë¸À¤·¡¢Áàºî¤¹¤ë¤¿¤á¤Î¡¢¤½¤·¤Æºî¶ÈÃæ¤Î¥¨¥ó¥È¥ê¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò¼¨¤¹¤¿¤á¤Î¥³ ¥Þ¥ó¥É·²¤¬Â¸ºß¤·¤Þ¤¹¡£

PO¥â¡¼¥ÉÃæ¤Ç»ÈÍѲÄǽ¤ÊÊä½õ¥Õ¥¡¥¤¥ëÍѤΥ³¥Þ¥ó¥É¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ ¤¹¡£

a
Ʊ¤¸¥¨¥ó¥È¥ê¤ËÂФ¹¤ëÊ̤ÎËÝÌõ¤Ø¤ÎÊä½õ¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·¤Þ¤¹¡£

M-a
ÆÃÄê¤ÎÊä½õPO¥Õ¥¡¥¤¥ë¤Ø¤ÈÀÚ¤êÂؤ¨¤Þ¤¹¡£

A
PO¥Õ¥¡¥¤¥ë¤òÊä½õ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÀë¸À¤·¤Þ¤¹¡£

M-A
ºî¶ÈÃæ¤ÎPO¥Õ¥¡¥¤¥ë¤òÊä½õ¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥ÉA(po-consider-as-auxiliary)¤Ï¡¢¥³¥Þ¥ó¥É M-A(po-ignore-as-auxiliary¤Ë¤è¤Ã¤Æºï½ü¤µ¤ì¤ë¤Þ¤Ç¡¢¸½ºß¤ÎPO¥Õ¥¡ ¥¤¥ë¤òÊä½õ¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Ø¤ÈÄɲä·¤Þ¤¹¡£

¥³¥Þ¥ó¥Éa(po-cycle-auxiliary)¤Ï¡¢¸½ºß¤Î¥¨¥ó¥È¥ê¤ÈƱ¤¸ msgid¥Õ¥£¡¼¥ë¥É¤ò»ý¤ÄÊ̤θÀ¸ì¤ÎËÝÌõ¥¨¥ó¥È¥ê¤ò¡¢Á´¤Æ¤ÎÊä½õPO¥Õ¥¡¥¤¥ë Ã椫¤é¸¡º÷¤·¤Þ¤¹¡£¸¡º÷¤µ¤ì¤¿PO¥Õ¥¡¥¤¥ë¤¬¤â¤·¤¢¤ì¤Ð¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤Î PO¥Õ¥¡¥¤¥ë¤È¤·¤Æ(¥¦¥£¥ó¥É¥¦¤Î¾åÉô¤Ë)ɽ¼¨¤µ¤ì¤Þ¤¹¡£¤â¤·¤Þ¤À¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤³¤Î½èÍý¤ò¹Ô¤¦Á°¤Ë¸½ºß¤ÎPO¥Õ¥¡¥¤¥ë¤â¤Þ¤¿Êä½õ¥Õ¥¡¥¤¥ë¤Ë¤·¤Þ¤¹¡£¤³¤Î¿·¤·¤¯É½ ¼¨¤µ¤ì¤¿PO¥Õ¥¡¥¤¥ë¤Ça¤¬¼Â¹Ô¤µ¤ì¤ì¤Ð¡¢Ê̤ΤÎPO¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤³¤È ¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£·ë¶É¤Î¤È¤³¤í¡¢a¤Ï¥ª¥ê¥¸¥Ê¥ë¤ÎPO¥Õ¥¡¥¤¥ë¤Ø¤Èyield back¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¥³¥Þ¥ó¥ÉM-a(po-select-auxiliary)¤ÏËÝÌõ¼Ô¤ËÁªÂò¤·¤¿Êä½õ¥Õ¥¡¥¤ ¥ë̾¤òÊä´°µ¡Ç½ÉÕ¤­¤Ç¿Ò¤Í¡¢ÁªÂò¤µ¤ì¤¿PO¥Õ¥¡¥¤¥ë¤Ø¤ÈÀÚ¤êÂؤ¨¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó ¥É¤ÏÁªÂò¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¸½ºß¤Î¥¨¥ó¥È¥ê¤È¹çÃפ¹¤ëmsgid¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã ¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢¤â¤·»ý¤Ã¤Æ¤¤¤ì¤Ð¤³¤Î¥¨¥ó¥È¥ê¤ò¥«¥ì¥ó¥È¤Ë¤·¤Þ¤¹¡£¤Ç¤Ê ¤±¤ì¤Ð¡¢ÁªÂò¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥«¡¼¥½¥ë¤Ï¤½¤Î¤Þ¤Þ¤Ç¤¹¡£

Á´¤Æ¤¬´°Á´¤ËÆ°ºî¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Êä½õPO¥Õ¥¡¥¤¥ë¤ÏÀµµ¬²½¡¢¤Ä¤Þ¤ê¡¢ msgid¤Ï¸·Ì©¤ËƱ¤¸¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Æ±¤¸Ê¸ »úÎó¤òɽ¸½¤¹¤ëmsgid¥Õ¥£¡¼¥ë¥É¤ÏÍÍ¡¹¤ÊÊýË¡¤Çµ­½Ò¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ ¤¹¤¬¡¢°Û¤Ê¤Ã¤¿µ­½Ò¤ÏPO¥â¡¼¥É¤ÎÊä½õ¥Õ¥¡¥¤¥ë¤ò°·¤¦¥³¥Þ¥ó¥É¤Î¸µ¡¹¤ÎÆ°ºî¤ò˸³² ¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£´û¸¤Î¿¤¯¤ÎPO¥Õ¥¡¥¤¥ë¤ÏƱ¤¸GNU gettext¥Ä¡¼¥ë·²¤Ë ¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿msgid¥¨¥ó¥È¥ê¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¤³¤ì¤¬ÌäÂê¤È ¤Ï¤Ê¤ë¤³¤È¤Ï¹Í¤¨¤Ë¤¯¤¤¤Ç¤¹¡£

¤·¤«¤·¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Îʸ»úÎó¤ò¥Þ¡¼¥­¥ó¥°¤·¤Ê¤¬¤éºÇ½é¤ËPO¥â¡¼¥É¤Ë¤è¤Ã¤Æ ºî¤é¤ì¤¿PO¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤Ã¤¿·Á¤ÇÀµµ¬²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤é¤Ï`M-x normalize'¥³¥Þ¥ó¥É¤Î·ë²Ìºî¤é¤ì¤¿PO¥Õ¥¡¥¤¥ë¤Ç¤¹¡£PO¥â¡¼¥É¤È¤½¤Î¾¤ÎGNU gettext¥Ä¡¼¥ë·²¤Î´Ö¤Ë¤¢¤ë¤³¤ì¤é¤ÎÌ·½â¤¬´°Á´¤Ë²ò·è¤µ¤ì¤ë¤Þ¤Ç¤Ë¡¢ËÝÌõ ¼Ô¤ÏÀµµ¬²½¤ÎÌäÂêÅÀ¤Ëµ¤¤¬ÉÕ¤¤¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£


6. MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®

6.1 msgfmt¥×¥í¥°¥é¥à¤Îµ¯Æ°  
6.2 GNU MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È  


6.1 msgfmt¥×¥í¥°¥é¥à¤Îµ¯Æ°

 
Usage: msgfmt [option] filename.po ...

`-a number'
`--alignment=number'
ʸ»úÎó¤Î¥¢¥é¥¤¥á¥ó¥È¤ònumber¥Ð¥¤¥È(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï1)¤Ë¤·¤Þ¤¹¡£

`-h'
`--help'
¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£

`-I list'
`--input-path=list'
ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£

`--no-hash'
¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò´Þ¤Þ¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£

`-o file'
`--output-file=file'
½ÐÎϤ¹¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤òfile¤Ë¤·¤Þ¤¹¡£

`--strict'
Uniforum/Sun¤Î¼ÂÁõ¤Ë¸·Ì©¤Ë½¾¤¦¤è¤¦¡¢¥×¥í¥°¥é¥à¤Ë»Ø¼¨¤·¤Þ¤¹¡£¸½¾õ¡¢¤³¤ì¤Ï½Ð ÎÏ¥Õ¥¡¥¤¥ë¤Î̿̾¤Ë¤Ë¤ß±Æ¶Á¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢ ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î̾¾Î¤Ï¥É¥á¥¤¥ó̾¾Î¤ÈƱ¤¸¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£¤â¤·¡Ö¸·Ì©¤Ê Uniforum¥â¡¼¥É¡×¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢´û¤Ë¸ºß¤¹¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë̾ ¤ÎËöÈø¤Ë`.mo'¤¬ÉÕÍ¿¤µ¤ì¤Þ¤¹¡£

²æ¡¹¤ÏSun¤Î¼ÂÁõ¤Ë¤ª¤±¤ë¤³¤ÎÆ°ºî¤Ï¤É¤Á¤é¤«¤È¸À¤¨¤Ð¤¢¤Þ¤ê¥¹¥Þ¡¼¥È¤Ç ¤Ê¤¤¤È¹Í¤¨¤Þ¤¹¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¥â¡¼¥É¤ÏÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

`-v'
`--verbose'
ËÝÌõ¥¨¥é¡¼¤È¤Ê¤ë¤è¤¦¤ÊÆþÎÏ¥Õ¥¡¥¤¥ë¤Î°Û¾ï¤ò¸¡ºº¤·¤Æ¸«¤Ä¤±½Ð¤·¤Þ¤¹¡£ msgid¤Èmsgstr¤Îʸ»úÎó¤ÏÄ´ºº¡¢Èæ³Ó¤µ¤ì¤Þ¤¹¡£°ìÊý¤Îʸ»úÎ󤬲þ ¹Ô¤Ç»Ï¤Þ¤Ã¤¿¤ê¡¢¤¢¤ë¤¤¤Ï²þ¹Ô¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë¤Ë¤â´Ø¤ï¤é¤º¡¢¤â¤¦°ìÊý¤¬¤½¤¦¤Ç¤Ê ¤¤¤Î¤ÏÀµ¾ï¤Ç¤Ê¤¤¤ÈȽÃǤµ¤ì¤Þ¤¹¡£

ƱÍͤˡ¢Ê¸»úÎó¤¬printf·Ï´Ø¿ô¤Ç»È¤ï¤ì¤ë¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æ½Ð¸½ ¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢Î¾Êý¤Îʸ»úÎó¤ÏƱ¤¸¿ô¡¢¤½¤·¤ÆƱ¤¸¼ïÎà¤Î¤Î`%'½ñ¼°»ØÄê»Ò ¤ò»ý¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£¥Õ¥é¥°c-format¤Þ¤¿¤Ï possible-c-format¤¬ÆÃÊ̤ʥ³¥á¥ó¥È#,¤È¤·¤Æ¤³¤Î¥¨¥ó¥È¥ê¤Ë½Ð¸½¤· ¤Æ¤¤¤ë¤Ê¤é¡¢¥Á¥§¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¤³¤Î¥Á¥§¥Ã¥¯¤Ï`%.*s'¤ËÂÐ ¤¹¤ë`%s'¤ä¡¢`%d'¤ËÂФ¹¤ë`%s'¡¢`%d'¤ËÂФ¹¤ë `%x'¤Ê ¤É¤ò¸¡ºº¤·¤Þ¤¹¡£¤³¤ì¤Ï°ÌÃ֥ѥé¥á¡¼¥¿(positional parameter)¤ËÂФ·¤Æ¤â¹Ô¤ï¤ì ¤Þ¤¹¡£

Ä̾xgettext¥×¥í¥°¥é¥à¤Ïʸ»úÎ󤬥ե©¡¼¥Þ¥Ã¥Èʸ»úÎ󤫤½¤¦¤Ç¤Ê¤¤¤« ¤ò¼«Æ°Åª¤Ë·èÄꤷ¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ï´°Á´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ printf·Ï´Ø¿ô¤Ç»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÊ¸»úÎó¤ò¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó ¤È¸«¤Ê¤¹¤³¤È¤¬¤¢¤ê¡¢¤½¤Î¤è¤¦¤Ê¾ì¹çmsgfmt¤Ï¥¨¥é¡¼¤òÊó¹ð¤¹¤ë¤³¤È¤Ç¤·¤ç ¤¦¡£µÕ¤Î»öÎã¡¢¤¹¤Ê¤ï¤Áʸ»úÎó¤¬printf·Ï´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¤Î¤Ë¡¢ ¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æǧ¼±¤µ¤ì¤Ê¤¤¤È¤¤¤Ã¤¿¤³¤È¤â¤¢¤ê¤Þ¤¹¡£

¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¡¢¥×¥í¥°¥é¥Þ¤Ïxgettext¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤É¤Á ¤é¤Ç¤¢¤ë¤«¤ò»Ø¼¨¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹ (see section 3.4 ³¤¯Ê¸»úÎó¤Ë´Ø¤·¤Æ²¿¤«¤òÅÁ¤¨¤ë¤³¤È)¡£ËÝÌõ¼Ô¤Ï#,¹Ô ¤«¤é¤³¤Î¥Õ¥é¥°¤òºï½ü¤¹¤ë¤È¤¤¤¦¤³¤È¤ò¹Í¤¨¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤³¤Î¡Ö½¤Àµ¡×¤Ï¡¢¼¡ ²ómsgmerge¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤Ë®¤ä¤«¤Ë¸µ¤ËÌᤵ¤ì¤Þ¤¹¡£

`-V'
`--version'
¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Æ½ªÎ»¤·¤Þ¤¹¡£

ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬`-'¤Î¾ì¹ç¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤ß¤¬¹Ô¤ï¤ì¤Þ¤¹¡£½ÐÎϤ¬ `-'¤Ç¤¢¤ì¤Ð¡¢½ÐÎϤÏɸ½à½ÐÎϤ˽ñ¤­½Ð¤µ¤ì¤Þ¤¹¡£


6.2 GNU MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È

À¸À®¤µ¤ì¤¿MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢¸å¤ÇÎ㼨¤¹¤ë¿Þ¤Ë¤è¤Ã¤Æ¤â¤Ã¤È¤â¤ï¤«¤ê ¤ä¤¹¤¯µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ºÇ½é¤Î2¥ï¡¼¥É¤Ï¥Õ¥¡¥¤¥ë¤Î¼±Ê̤ËÍѤ¤¤é¤ì¤Þ¤¹¡£¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÏGNU MO¥Õ¥¡ ¥¤¥ë¤Ç¤¢¤ë¤³¤È¤ò¾ï¤Ë¼¨¤·¤Þ¤¹¡£¤³¤Î¥Ê¥ó¥Ð¡¼¤ÏMO¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤¿·×»»µ¡¤Î¥Ð ¥¤¥È¥ª¡¼¥À¡¼¤Ç³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤Ï¼ÂºÝ¤Ë¤Ï 0x950412de¤È0xde120495¤ÎÆó¼ïÎब¤¢¤ê¤Þ¤¹¡£ÆóÈÖÌܤΥ¥É¤Ï¡¢ ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¸½ºß¤Î¥ê¥Ó¥¸¥ç¥ó¤òɽ¤ï¤·¤Æ¤¤¤Þ¤¹¡£¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î ¥ê¥Ó¥¸¥ç¥ó¤Ï0¤Ç¤¹¡£¤³¤ì¤Ï¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÊѤï¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢MO¥Õ¥¡¥¤ ¥ë¤òÆɤ߽Ф¹¥×¥í¥°¥é¥à¤¬¿·¤·¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤È¸Å¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¶èÊ̤Ǥ­¤ë¤³ ¤È¤òÊݾڤ·¤Þ¤¹¡£¤½¤ì¤Ë¤è¤Ã¤Æ¤É¤Á¤é¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤âÀµ¤·¤¯°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó¤Ï¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤È¤ÏʬΥ¤µ¤ì¤Æ¤ª¤ê¡¢°Û¤Ê¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¤¿¤á¤Ë °Û¤Ê¤ë¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤¬»È¤ï¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¼ç¤Ë¡¢ `/etc/magic'¤¬¤½¤ìÄøÉÑÈˤˤϥ¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤Ê¤¤¤¿¤á¤Ç¤¹¡£ÆâÉô¥Õ¥©¡¼ ¥Þ¥Ã¥È¥Ð¡¼¥¸¥ç¥ó¼±Ê̻Ҥȥޥ¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤òʬΥ¤·¤Æ¤ª¤¯¤Î¤ÏÎɤ¤¤³¤È¤Ç¤·¤ç¤¦¡£

³¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë¸åÊý¤Ë¤¢¤ë¥Æ¡¼¥Ö¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î¿ô¤¬¤¢¤ê¡¢MO¥Õ¥¡¥¤¥ë¤òÆÉ¤ß ¹þ¤à¥×¥í¥°¥é¥à¤ò¥ê¥³¥ó¥Ñ¥¤¥ë¤³¤È¤Ê¤¯¤ËMO¥Õ¥¡¥¤¥ë¤ÎÁ°ÊýÉôʬ¤Î³ÈÄ¥¤¬¤Ç¤­¤ë¤è ¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£´ö¤Ä¤«¤Î¥Õ¥é¥°¥Ó¥Ã¥È¡¢»ÈÍѤ·¤Æ¤¤¤ë¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¤Î»ØÄê¡¢ ¿·¤·¤¤¥Æ¡¼¥Ö¥ë¤Ê¤É¤ò¸å¤«¤éÁÞÆþ¤¹¤ë¤È¤­¤ËÊØÍø¤Ç¤·¤ç¤¦¡£

¤µ¤é¤Ë³¤¤¤Æ¡¢¿ÞÃæ¤Ç¤Ï¥ª¥Õ¥»¥Ã¥ÈO¤È¥ª¥Õ¥»¥Ã¥ÈT¤È¤·¤Æ¼¨¤µ¤ì¤ë¡¢ ʸ»úÎó¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥Æ¡¼¥Ö¥ë¤ÏξÊý¤È¤â¡¢Æó ¤Ä¤Î32¥Ó¥Ã¥ÈÀ°¿ô¤ò»È¤Ã¤¿Ê¸»úÎó¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ê¡¢°ì¤Ä¤Ïʸ»úÎó¤ÎŤµ¡¢¤â ¤¦°ì¤Ä¤ÏMO¥Õ¥¡¥¤¥ëÃæ¤Îʸ»úÎó¤ËÂФ¹¤ë¡¢¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤òµ¯ÅÀ¤È¤·¤Æ¥Ð¥¤¥È¤Ç¿ô ¤¨¤¿¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤òɽ¤ï¤·¤Æ¤¤¤Þ¤¹¡£ºÇ½é¤Î¥Æ¡¼¥Ö¥ë¤Ë¤Ï¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¤ËÂÐ ¤¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÃÖ¤«¤ì¤Æ¤ª¤ê¡¢¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎó¤Ï¾º½ç¤Î¼­½ñ¼°½ç½ø¤ÇÊ ¤Ù¤é¤ì¤Æ¤¤¤Þ¤¹¡£ÆóÈÖÌܤΥơ¼¥Ö¥ë¤Ë¤ÏËÝÌõʸ»úÎó¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÃÖ¤«¤ì¤Æ¤¤ ¤Þ¤¹¡£¤³¤ì¤ÏºÇ½é¤Î¥Æ¡¼¥Ö¥ë¤ÈÁê»÷¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢Å¬ÀÚ¤ÊËÝÌõʸ»úÎó¤ò¸«¤Ä¤±¤ë ¤Ë¤Ï¡¢¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¤Î¤¢¤Ã¤¿¤Î¤ÈƱ¤¸¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¡¢ÆóÈÖÌܤÎÇÛÎó¤ÎÇÛÎó¥¹ ¥í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¤Ï¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢MO¥Õ¥¡¥¤¥ë¤¬¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò»ý¤Ã ¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢MO¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤Î¤¬¸½¼ÂŪ¤Ç¤Ê¤¤¤È¤­ ¤Ë¤Ïñ½ã¤ÊÆóʬ¸¡º÷¤ò¹Ô¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤Ë¤ÏÊ̤ÎÍøÅÀ¤â¤¢¤ê¤Þ¤¹¡£¤¹¤Ê¤ï ¤Á¡¢GNU gettext¤ÎPO¥Õ¥¡¥¤¥ëÃæ¤Ë¤¢¤ë¶õʸ»úÎó¤ÏÄ̾ÆÃÄê¤ÎMO¥Õ¥¡¥¤¥ë ¤ËźÉÕ¤µ¤ì¤ë´ö¤Ä¤«¤Î¥·¥¹¥Æ¥à¾ðÊó¤Ø¤ÈËÝÌõ¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¤³¤Î¶õʸ»ú Îó¤Ï¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¤Î¥Æ¡¼¥Ö¥ë¤ÎÀèƬ¤Ë¡¢Âбþ¤¹¤ëËÝÌõ¤âËÝÌõʸ»úÎó¤Î¥Æ¡¼¥Ö¥ë ¤ÎÀèƬ¤ËÃÖ¤«¤ì¤ë¤Î¤Ç¡¢¥·¥¹¥Æ¥à¾ðÊó¤òÈó¾ï¤Ë´Êñ¤Ë¸«¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤Î¤Ç ¤¹¡£

¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥ºS¤Ï0¤Ç¤¢¤Ã¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£¤½¤Î¾ì¹ç¡¢¥Ï¥Ã¥·¥å ¥Æ¡¼¥Ö¥ë¤Ï¤½¤ÎMO¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¿Í¤Ë¤è¤Ã¤Æ¤Ï¡¢»ö Á°¤Ë»»½Ð¤µ¤ì¤¿¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤ò¿©¤¤¡¢¥¹¥Ô¡¼¥É¤â¤½¤ì¤Û¤É ¸þ¾å¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¤³¤È¤ò¹¥¤à¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÏMO¥Õ¥¡¥¤¥ë¤Ë¤¢¤ëʸ»úÎó¤Î¥½¡¼¥ÈºÑ¤ßÇÛÎó¤Ëº÷°ú¤òÀßÄꤹ ¤ë¤â¤Î¤Ç¤¹¡£¾×Æͤβò·è¤Ï¥À¥Ö¥ë¥Ï¥Ã¥·¥ó¥°(double hasing)¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£ »ÈÍѤµ¤ì¤Æ¤¤¤ëÀµ³Î¤Ê¥Ï¥Ã¥·¥ó¥°¥¢¥ë¥´¥ê¥º¥à¤ÏGNU gettext¤Î¥³¡¼¥É¤Ë°Í ¸¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Þ¤»¤ó¡£

¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ë³¤¤¤Æ¡¢Ê¸»úÎ󤽤Τâ¤Î¤¬ÃÖ¤«¤ì¤Þ¤¹¡£³Æʸ»úÎó¤Ï NUL¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ÎNUL¤Ïʸ»úÎó¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤¢¤Ã¤¿ ʸ»úÎó¤ÎŤµ¤È¤·¤Æ¤Ï¿ô¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£msgfmt¥×¥í¥°¥é¥à¤ÏMO¥Õ¥¡¥¤ ¥ëʸ»úÎó¤Î¥¢¥é¥¤¥á¥ó¥È¤òÁªÂò¤¹¤ë¥ª¥×¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò »È¤¦¤³¤È¤Ç¡¢³Æʸ»úÎó¤Ï»ØÄꤵ¤ì¤¿¥¢¥é¥¤¥á¥ó¥È¤Ç»Ï¤Þ¤ë¤è¤¦¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£°ì Éô¤ÎRISC¥Þ¥·¥ó¤Ç¤ÏÀµ¤·¤¤¥¢¥é¥¤¥á¥ó¥È¤ËÃÖ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¥¹¥Ô¡¼¥É¤¬¸þ¾å¤·¤Þ¤¹¡£

MO¥Õ¥¡¥¤¥ë¤ÏNUL¤¬Ëä¤á¤³¤Þ¤ì¤Æ¤¤¤ëʸ»úÎó¤ò»ý¤Ä¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤·¤«¤·¡¢ ¥×¥í¥°¥é¥à¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¸½ºß¤¹¤Ç¤Ëʸ»úÎó¤¬NUL¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë ¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢NUL¤òËä¤á¤³¤à¤È¤¤¤¦¤³¤È¤Ï¾¯¡¹°ÕÌ£¤¬¤Ê¤¤¤³ ¤È¤Ç¤¹¡£¤·¤«¤·¡¢MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¸å¤«¤é¾¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò°·¤¨ ¤ë¤Û¤ÉÈÆÍÑŪ¤Ç¤¹¡£¤¿¤È¤¨¤Ð¡¢MO¥Õ¥¡¥¤¥ëÃæ¤Ë(NUL¤¬»×¤¤¤¬¤±¤ºÆþ¤Ã¤Æ¤·¤Þ ¤¦¤è¤¦¤Ê)¥ï¥¤¥Éʸ»ú¤òÀµ¤·¤¯¥¤¥ó¥×¥ê¥á¥ó¥È¤·¤¿¤¤¤È¹Í¤¨¤¿¤È¤·¤Æ¤âÌäÂꤢ¤ê¤Þ ¤»¤ó¡£

¤³¤ÎÆÈÆäηë²Ì¤Ï¡¢GNU gettext³«È¯¥Õ¥©¡¼¥é¥à¤Ë¤ª¤¤¤ÆÈó¾ï¤Ë·ã¤·¤¯Æ¤ÏÀ ¤µ¤ì¡¢MO¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï²¿ÅÙ¤âȯŸ¤·¡¢ÊѲ½¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤µ¤ì ¤Þ¤·¤¿¡£¸å¤«¤éƱ»þ¤ËÊ£¿ô¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤µ¤¨²Äǽ¤È¤¹¤ë¤â¤Î ¤Ê¤Î¤Ç¤¹¡£¤·¤«¤·³Î¼Â¤Ë¡¢²æ¡¹¤Ï¥¹¥¿¡¼¥ÈÃÏÅÀ¤È¤Ê¤ë¤â¤Î¤òÆÀ¤Þ¤·¤¿¡£¤³¤³¤ÇÀâÌÀ ¤·¤¿MO¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤è¤¤½ÐȯÅÀ¤Ç¤¹¡£¥³¥ó¥¯¥ê¡¼¥È¤Ç¸Ç¤á¤é¤ì¤¿¤è¤¦¤Ê ¤â¤Î¤Ï²¿¤â¤Ê¤¯¡¢¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¸åÆü´Êñ¤Ë¿Ê²½¤Ç¤­¤ë¤â¤Î¤Ç¤¢¤ê¡¢²æ¡¹¤Ï¸½ºß¤Î ¥¢¥×¥í¡¼¥Á¤ò²÷Ŭ¤Ê¤â¤Î¤À¤È´¶¤¸¤Æ¤¤¤Þ¤¹¡£

 
        ¥Ð¥¤¥È
             +------------------------------------------+
          0  | ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼ = 0x950412de            |
             |                                          |
          4  | ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥ê¥Ó¥¸¥ç¥ó = 0     |
             |                                          |
          8  | ʸ»úÎóÎΰè¤ÎŤµ                         |  == N
             |                                          |
         12  | ¥ª¥ê¥¸¥Ê¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ø¤Î¥ª¥Õ¥»¥Ã¥È   |  == O
             |                                          |
         16  | ËÝÌõʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ø¤Î¥ª¥Õ¥»¥Ã¥È         |  == T
             |                                          |
         20  | ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º                 |  == S
             |                                          |
         24  | ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥ª¥Õ¥»¥Ã¥È             |  == H
             |                                          |
             .                                          .
             .  (¹¹¤Ë¥¨¥ó¥È¥ê¤¬Äɲ䵤ì¤ë²ÄǽÀ­¤¬¤¢¤ë)  .
             .                                          .
             .                                          .
             |                                          |
          O  | 0ÈÖ¤á¤Îʸ»úÎó¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È   ----------.
      O + 8  | 1ÈÖ¤á¤Îʸ»úÎó¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È   ------------.
              ...                                    ...   | |
O + ((N-1)*8)| (N-1)ÈÖ¤á¤Îʸ»úÎó¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È      |  | |
             |                                          |  | |
          T  | 0ÈÖÌܤÎËÝÌõ¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È  -----------------.
      T + 8  | 1ÈÖÌܤÎËÝÌõ¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È    -----------------.
              ...                                    ...   | | | |
T + ((N-1)*8)| (N-1)1ÈÖÌܤÎËÝÌõ¤ÎŤµ¤È¥ª¥Õ¥»¥Ã¥È       |  | | | |
             |                                          |  | | | |
          H  | ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÀèƬ                   |  | | | |
              ...                                    ...   | | | |
  H + S * 4  | ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î½ª¤ï¤ê                 |  | | | |
             |                                          |  | | | |
             | NUL¤Ç½ªÃ¼¤µ¤ì¤¿0ÈÖ¤á¤Îʸ»úÎó  <-------------' | | |
             |                                          |    | | |
             | NUL¤Ç½ªÃ¼¤µ¤ì¤¿1ÈÖ¤á¤Îʸ»úÎó  <---------------' | |
             |                                          |      | |
              ...                                    ...       | |
             |                                          |      | |
             | NUL¤Ç½ªÃ¼¤µ¤ì¤¿0ÈÖ¤á¤ÎÌõ¸ì      <---------------' |
             |                                          |        |
             | NUL¤Ç½ªÃ¼¤µ¤ì¤¿1ÈÖ¤á¤ÎÌõ¸ì      <-----------------'
             |                                          |
              ...                                    ...
             |                                          |
             +------------------------------------------+


7. ¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ

GNU gettext¤¬¿¿¤Ë¤½¤Î¥´¡¼¥ë¤Ë¤¿¤É¤êÃ夤¤¿¤È¤­¡¢Ê¿¶ÑŪ¤Ê¥æ¡¼¥¶¤Ï¤¢¤ë ¼ï¤Î¶Ã¤­¤Î´î¤Ó¤ò´¶¤¸¤ë¤Ç¤·¤ç¤¦¡£¥¹¥¯¥ê¡¼¥ó¤Î¤É¤³¤Ë¤Ç¤âÈà¤é¼«¿È¤Î¥Í¥¤¥Æ¥£¥Ö ¥é¥ó¥²¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤È¤¤¤¦¡¢´ñ̯¤ÊËâË¡¤Î¸ú²Ì¤¬¸½¤ì¤ë¤«¤é¤Ç¤¹¡£¶òľ¤Ê¥æ¡¼ ¥¶¤Ï¤½¤ì¤Ë¤Ä¤¤¤ÆÁ´¤¯¶Ã¤¯¤³¤È¤Ê¤¯¡¢¤¿¤Àñ¤ËÈà¤é¤Î¸À¸ì¤¬Ç§¤á¤é¤ì¤¿¤È Ï䷹礦¤À¤±¤Ç¡¢¤É¤Á¤é¤«¤È¸À¤¨¤Ð¾¤ÎÅÀ¤ÇÉÔ¹¬¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¤½¤ì¤Ç¤Ï¡¢¥æ¡¼¥¶¤Î»ëÅÀ¤¬¤Ê¤ë¤Ù¤¯Ã±½ã¤Ë¤Ê¤ë¤è¤¦¤Ë¡¢Á´¤Æ¤ÎÊýË¡¤ÎÃæ¤Ç¿Í¤¬ GNU gettext¤ò¸«¤ë¤è¤¦¤Ë¡¢¤½¤ÎËâË¡¤Ë¤Ä¤¤¤Æ¤³¤³¤ÇÀâÌÀ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤ç ¤¦¡£Á´¤Æ¤Î¾¤Î¥½¥Õ¥È¥¦¥§¥¢¥¨¥ó¥¸¥Ë¥¢¡¢¤¹¤Ê¤ï¤Á¥×¥í¥°¥é¥Þ¡¢ËÝÌõ¼Ô¡¢ÊݼéôÅö ¼Ô¤Ï¤³¤ÎËâË¡¤¬¼Â¸½¤¹¤ë¤è¤¦¤Ë¤¤¤Ã¤·¤ç¤Ë¤Ê¤Ã¤ÆƯ¤­¤Þ¤¹¡£¤³¤ì¤ÏŤ¯¤½¤·¤Æ³×¿· Ū¤Ê»Å»ö¤Ç¡¢¿ÊĽ¾õ¶·¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ÏËÝÌõ¥×¥í¥¸¥§¥¯¥È¤«¤éÆþ¼ê²Äǽ¤Ç¤¹¡£

¥Ñ¥Ã¥±¡¼¥¸¤¬ÇÛÉÛ¤µ¤ì¤¿¤È¤­¡¢¤½¤³¤Ë¤ÏÆó¼ïÎà¤Î¥æ¡¼¥¶¤¬Â¸ºß¤·¤Þ¤¹¡£¤½¤ì¤Ï¡¢ ¼«Ê¬¤ä¾¤Î¿Í¤¬»È¤¦¤¿¤á¤ËÇÛÉÛʪ¤ò¼õ¤±¤È¤Ã¤ÆŸ³«¤·¡¢¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤· ¤Æ¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¥¤¥ó¥¹¥È¡¼¥é¤È¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿ ¥Ñ¥Ã¥±¡¼¥¸¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¥¨¥ó¥É¥æ¡¼¥¶¤Ç¤¹¡£GNU gettext¤Ï ¥¤¥ó¥¹¥È¡¼¥é¤È¥¨¥ó¥É¥æ¡¼¥¶¤ÎξÊý¤ËËâË¡¤Î¸ú²Ì¤òÄ󶡤·¤Þ¤¹¡£

7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ  
7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡  
7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡  


7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ

GNU gettext¤ò»ÈÍѤ·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ª¤¤¤Æ¡¢Á´¤Æ¤Î¸À¸ì¤¬Åù¤· ¤¯¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¢¤ëGNU¥Ñ¥Ã¥±¡¼¥¸¤¬GNU gettext¤ò»È¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï¡¢ÇÛÉÛʪÃæ¤Ë`NLS'¾ðÊó¥Õ¥¡¥¤¥ë¤¬¤¢ ¤ë¤«¤É¤¦¤«¡¢`ll.po'¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤É¤¦¤«¡¢`intl/'¥Ç¥£¥ì¥¯ ¥È¥ê¤¬¤¢¤ë¤«¤É¤¦¤«¤È¤¤¤¦¤³¤È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤Ç³Îǧ¤Ç¤­¤Þ¤¹¡£¹ñºÝ²½Âбþ¤µ ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢Ä̾¦¯¤Î`ll.po'¥Õ¥¡¥¤¥ë¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤³ ¤Çµó¤²¤¿ll¤Ï¸À¸ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡¤Ç¤Ïll¥Õ¥©¡¼¥Þ¥Ã ¥È¤Ë¤Ä¤¤¤Æ´°Á´¤Ê²òÀâ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£

¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢¥Þ¥È¥ê¥Ã¥¯¥¹¤ÏËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Î¤½¤Î»þÅÀ¤Ç¤Î¾õÂÖ¤òÌÀ¤é¤« ¤Ë¤·¡¢Â¿¸À¸ì¥á¥Ã¥»¡¼¥¸(multilingual messages)¤Î¤¿¤á¤Ë½àÈ÷¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼ ¥¸¤Î¥ê¥¹¥È¥¢¥Ã¥×¤ä¡¢³Æ¥Ñ¥Ã¥±¡¼¥¸¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¸À¸ì¤Î¥ê¥¹¥È¥¢¥Ã¥×¤ò¹Ô¤Ã ¤Æ¤¤¤Þ¤¹¡£¤³¤Î¾ðÊó¤ÏÉÑÈˤËÊѹ¹¤µ¤ì¤ë¤Î¤Ç¡¢¤³¤Î¥Þ¥È¥ê¥Ã¥¯¥¹¤ÏGNU gettext¥Þ¥Ë¥å¥¢¥ë¤ÎÃæ¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¾ðÊó¤ÏGNU¤ÎÇÛÉۥѥà ¥±¡¼¥¸¤ÎÃæ¤Î`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤Ç³Îǧ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢¤·¤«¤·¤³ ¤Î¾ðÊó¤ÏÇÛÉۥѥ屡¼¥¸¤½¤Î¤â¤Î¤ÈƱ¤¸¤¯¤é¤¤¸Å¤¤¤â¤Î¤Ç¤¹¡£¤³¤Î `ABOUT-NLS'¥Õ¥¡¥¤¥ë¤Î¡¢¹¹¿·¤µ¤ì¤¿¾ðÊó¤ò´Þ¤àºÇ¿·¤Î¥³¥Ô¡¼¤ÏËÝÌõ¥×¥í¥¸¥§ ¥¯¥È¤Î¥µ¥¤¥È¡¢¤½¤·¤Æ¤Û¤È¤ó¤É¤ÎGNU¥¢¡¼¥«¥¤¥Ö¥µ¥¤¥È¤Ç¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ ¤¹¡£


7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡

GNU gettext¤òÆâÉô¤ÇÁ´ÌÌŪ¤Ë»ÈÍѤ·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï ËÝÌõ¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬»ÈÍѲÄǽ¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£¥³¥ó¥Õ¥£ ¥°¥ì¡¼¥·¥ç¥ó»þ¤Ë¡¢¤½¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï´ðÁäȤʤë¥Û¥¹¥È¥·¥¹¥Æ¥à¤¬Ä󶡤·»ÈÍÑ ²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤ëcatgets¤ägettext¤È¤¤¤Ã¤¿´Ø¿ô¤ò¸¡½Ð¤·¤Þ¤¹¡£¤³ ¤ì¤é¤Î¤É¤Á¤é¤«¤¬»ÈÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢GNU gettext¥é¥¤¥Ö¥é¥ê¤Ï¼«Æ°Åª¤Ë½à È÷¤µ¤ì¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¥¤¥ó¥¹¥È¡¼¥é¤Ë¤Ï¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó»þ¤ËÆà Ê̤ʥª¥×¥·¥ç¥ó¤òÍ¿¤¨¤ë¤³¤È¤¬½ÐÍè¡¢¤½¤ì¤Ë¤è¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥é¤ÎÆ°ºî¤òÊѤ¨¤ë¤³ ¤È¤¬¤Ç¤­¤Þ¤¹¡£`./configure --with-included-gettext'¥³¥Þ¥ó¥É¤Ï¥·¥¹¥Æ¥à ¤Îcatgets¤ägettext¤ò¥Ð¥¤¥Ñ¥¹¤·¤Æ¡¢Âå¤ï¤ê¤ËGNU gettext¤ò»ÈÍѤ·¤Þ¤¹¡£`./configure --disable-nls'¤È¤¹¤ë¤È¡¢ËÝÌõ ¥á¥Ã¥»¡¼¥¸¤òÁ´ÌÌŪ¤Ë»ÈÍѤ·¤Ê¤¤¥×¥í¥°¥é¥à¤òÀ¸À®¤·¤Þ¤¹¡£

¹ñºÝ²½Âбþ¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÏÄ̾¿¤¯¤Î`ll.po'¥Õ¥¡¥¤¥ë¤ò»ý¤Ã¤Æ ¤¤¤Þ¤¹¡£ËÝÌõ¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¥Ñ¥Ã¥±¡¼¥¸¤È¤¤¤Ã ¤·¤ç¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£¤·¤«¤·´Ä¶­ÊÑ¿ôLINGUAS¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì ¹ç¤Ï¡¢¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤ËÍ¥À褷¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Õ¥¡¥¤¥ë¤òÀ©¸Â¤·¤Þ¤¹¡£ LINGUAS¤ËÀßÄꤹ¤ëÆâÍƤϡ¢»ÈÍѤ¹¤ë¸À¸ì¤ò¼¨¤¹¤¿¤á¤Î¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì ¤¿2ʸ»ú¤Î¥³¡¼¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£


7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡

¤³¤³¤Ç¡¢GNU gettext¤òÆâÉôŪ¤Ë»È¤Ã¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¡¢¤½¤·¤Æ¥¤¥ó¥¹¥È¡¼ ¥é¤¬configure»þ¤ËËÝÌõ¤ò̵¸ú¤Ë¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¥æ¡¼¥¶¤¬¤¹¤ë¤Ù¤­¤³¤È¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î¥×¥í¥°¥é¥à¤ò»È¤¦Á°¤Ë´Ä¶­ÊÑ¿ô LANG¤ËŬÀÚ¤Ê`ll'¤òÀßÄꤹ¤ë¤À¤±¤Ç¤¹See section 7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ¡£¤¿¤È¤¨ ¤Ð¡¢¥É¥¤¥Ä¤Î¥µ¥¤¥È¤Î¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥æ¡¼¥¶¤Ï¥·¥§¥ë¥×¥í¥ó¥×¥È¤Ç `setenv LANG de'(csh¤Î¾ì¹ç)¡¢¤Þ¤¿¤Ï`export LANG; LANG=de'(sh¤Î¾ì¹ç)¤È¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹¡£¥æ¡¼¥¶¡¼¤Ï¤³¤ì¤òÈà¤é¤Î `.login'¤ä`.profile'¤ÎÃæ¤Ç¹Ô¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£


8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ

GNU gettext¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¸½ºß¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¼ÂÁõ¤Ë¤ª¤±¤ë °ì¤Ä¤ÎÁÀ¤¤¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¿Í´Ö¤¬Ë¾¤à¤Ê¤é¤Ð¥·¥¹¥Æ¥à¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥° ¤Î¼è¤ê°·¤¤¤Ë»È¤¨¤ë¤È¤¤¤¦¤³¤È¤Ç¤·¤¿¡£¤½¤Î¤¿¤á¡¢¤ª¤½¤é¤¯²æ¡¹¤Ï´û¤ËÃΤäƤ¤¤ë ²ò·èÊýË¡¤Ë¤Ä¤¤¤Æ¸¡Æ¤¤¹¤Ù¤­¤Ç¤·¤¿¡£POSIX¥³¥ß¥å¥Ë¥Æ¥£¤Î¿Í¡¹¤Ï¡¢°Ê²¼¤Ë½Ò¤Ù¤ë ½à¸ø¼°É¸½à¤Ë¤Ä¤¤¤Æ¤Ï°Õ¸«¤ò¹ç¤ï¤»¤è¤¦¤È¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£»ö¼ÂÈà¤é¤ÏÁ´¤Æ¤Î¤â¤Î ¤È°Õ¸«¤ò¹ç¤ï¤»¤è¤¦¤È¤»¤º¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÎã¤ò´Þ¤à¤â¤Î¤µ¤¨·èÄꤷ¤Þ¤»¤ó¤Ç ¤·¤¿¡£¼çÍפÊUNIX¥Ù¥ó¥À¤ÏÆó¤Ä¤Î½ÅÍפʻÅÍͤΤɤÁ¤é¤òºÎÍѤ·¤Æ¤¤¤ë¤«¤Çʬ¤±¤é¤ì ¤Þ¤¹¡£X/Opens¤Îcatgets¤È¡¢Uniforum¤Îgettext¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£¤³¤³¤Ç¤Ï ξÊý¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤¿¸å¡¢¤³¤Î¥¸¥ì¥ó¥Þ¤Ë´Ø¤·¤Æ²æ¡¹¤Î¼è¤Ã¤¿²ò·èÊýË¡¤Ë¤Ä¤¤¤ÆÀâ ÌÀ¤·¤Þ¤¹¡£

8.1 catgets¤Ë¤Ä¤¤¤Æ  
8.2 gettext¤Ë¤Ä¤¤¤Æ  
8.3 Æó¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÈæ³Ó  
8.4 Æȼ«¤Î¥×¥í¥°¥é¥à¤Çlibintl.a¤ò»È¤¦  
8.5 Being a gettext grok  
8.6 ¥×¥í¥°¥é¥Þ¤Î¾Ï¤Ë¤Ä¤¤¤Æ¤Î°ì»þŪ¤Ê¥á¥â  


8.1 catgets¤Ë¤Ä¤¤¤Æ

catgets¤Î¼ÂÁõ¤ÏX/Open¤ÎX/Open Protability Guide, Volume 3, XSI Supplementary Definitions, Chapter 5. ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¡£¤·¤«¤·¡¢¤³ ¤Îɸ½à¤òºîÀ®¤¹¤ë¥×¥í¥»¥¹¤Ï°ìÉô¤ÎUNIX¥Ù¥ó¥À¤Ë¤ÏÃÙ¤¹¤®¡¢¤½¤Î¤¿¤á°ìÉô¤Î¥Ù¥ó¥À ¤Ïɸ½à¤Î²¾¥Ð¡¼¥¸¥ç¥ó¤ÎÃʳ¬¤Ç¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤â¤Á¤í¤ó¤³¤ì¤Ï¡¢¤¿¤È ¤¨catgets¤Î»È¤¤Êý¤ÈƱ°ì¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÊݾڤ·¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥× ¥é¥Ã¥È¥Û¡¼¥à¤Ë°Í¸¤·¤Ê¤¤¥×¥í¥°¥é¥à¤ÎºîÀ®¤Ë¤ÏÌäÂê¤È¤Ê¤ê¤Þ¤¹¡£

¤â¤¦°ì¤Ä¡¢¤¿¤À°Ñ°÷²ñ¥á¥ó¥Ð¤Î°ì¥°¥ë¡¼¥×¤À¤±¤Ë¤è¤Ã¤Æ¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ºî À®¤µ¤ì¤¿¤È¤¤¤¦¤³¤È¤Ë¤Ä¤¤¤Æ¡¢¸Ä¿ÍŪ¤Ë¸À¤¤¤¿¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Èà¤é¤Ï·è¤·¤Æ¼Â ºÝ¤Ë¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤·¤è¤¦¤È¤Ï¤·¤Æ¤Ï¤¤¤Þ¤»¤ó¡£¤³¤Î¥¤ ¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¹â®¤«¤Ä¥á¥â¥ê¤òÀáÌ󤹤ë¼ÂÁõ¤Ç¡¢¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤¦ ¤È¤¤¤¦¤³¤È¤Ï¥æ¡¼¥¶¤Ë¤È¤Ã¤Æ¤Ï¹¬¤»¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢¥×¥í¥°¥é¥Þ¤Ï¤³¤Î¥¤¥ó¥¿¡¼ ¥Õ¥§¡¼¥¹¤ò·ù¤Ã¤Æ¤¤¤Þ¤¹(¾¯¤Ê¤¯¤È¤â»ä¤È¡¢¤½¤Î¾¿ô¿Í¤Ï¤½¤¦¤Ç¤¹...)¡£

¤·¤«¤·²æ¡¹¤Ï¡¢UNIX(tm)¤Ë´Ø¤¹¤ë¸¢Íø¤Î°Ñ¾ù¤Ë´Ø¤¹¤ëÁ´¤Æ¤Î¥È¥é¥Ö¥ë¤Î¸å¤Ç¡¢ºÇ½ª Ū¤ËX/Open¤Ø¤È»ê¤é¤·¤á¤¿¤Î¤Ï¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òȯ¹Ô¤·¤¿¿Í´Ö¤ÈƱ¤¸¿Í´Ö¤À ¤È¤¤¤¦°ìÅÀ¤ò˺¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï»ä¤Ë¡¢¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¾­Íè¤Î UNIXɸ½à(¤¿¤È¤¨¤ÐSpec1170)¤È¤Ê¤ê¡¢¤·¤¿¤¬¤Ã¤ÆÁ´¤Æ¤ÎUNIX¤Î¼ÂÁõ(¤³¤Î̾Á°¤òÍ­ ¤¹¤ë¤³¤È¤òµö¤µ¤ì¤Æ¤¤¤ë¼ÂÁõ)¤Î°ìÉô¤È¤Ê¤ë¤ÈͽÁÛ¤·¤Æ¤¤¤Þ¤¹¡£

8.1.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹  catgets¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
8.1.2 catgets¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!  


8.1.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹

catgets¤ËÂФ¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¼ÂÁõ¤Ï¡¢¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤È¤·¤Æ»ÈÍÑ ¤µ¤ì¤ë»°¤Ä¤Î´Ø¿ô¤«¤é¤Ê¤ê¤Þ¤¹¡£°ì¤Ä¤Ï»ÈÍѤ¹¤ë¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤¹¤ë catopen¡¢Æó¤Ä¤á¤Ï¥á¥Ã¥»¡¼¥¸¥Æ¡¼¥Ö¥ë¤Î¥¢¥¯¥»¥¹¤ò¹Ô¤¦catgets¡¢ »°¤Ä¤á¤Ïºî¶È¤¬½ªÎ»¤·¤¿¸å¤Ç¥¯¥í¡¼¥º¤¹¤ë¤¿¤á¤Îcatclose¤Ç¤¹¡£¤³¤ì¤é¤Î ´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤È(´¬¿ô¤¬É¬ÍפȤ¹¤ë)ÄêµÁ¤Ï<nl_types.h>¤È¤¤¤¦¥Ø¥Ã ¥À¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤¹¡£

catopen¤Ï¼¡¤Î¤è¤¦¤Ë»ÈÍѤ·¤Þ¤¹¡£

 
nl_catd catd = catopen ("catalog_name", 0);

¤³¤Î´Ø¿ô¤Ï°ú¿ô¤È¤·¤Æ¥«¥¿¥í¥°¤Î̾Á°¤ò¤È¤ê¤Þ¤¹¡£¤³¤ì¤ÏÄ̾¥×¥í¥°¥é¥à¤Þ¤¿¤Ï ¥Ñ¥Ã¥±¡¼¥¸¤Î̾Á°¤ò»²¾È¤·¤Þ¤¹¡£ÆóÈÖÌܤΰú¿ô¤Ïɸ½à¤Ç¤Ï»ØÄꤷ¤Þ¤»¤ó¡£ÍÍ¡¹¤Ê¥· ¥¹¥Æ¥à¤ËÂФ·¤Æ¼ÂÁõ¤µ¤ì¤ë¤¿¤á¤Ê¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢»ä¤ÏÀµ³Î¤Ê¤È¤³¤í¤ÏÃΤê¤Þ ¤»¤ó¡£¤½¤Î¤¿¤á°ìÈÌŪ¤Ê½õ¸À¤È¤·¤Æ¤Ï¡Ö¤³¤ÎÃͤȤ·¤Æ0¤ò»È¤¤¤Ê¤µ¤¤¡×¤È¤¤ ¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î´Ø¿ô¤ÎÌá¤êÃͤϥá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥Ï¥ó¥É¥ë¤Ç¤¢¤ê¡¢ open¤¬ÊÖ¤¹¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ÈƱÍͤʰÕÌ£¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¥Ï¥ó¥É¥ë¤Ï¤â¤Á¤í¤ó¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Æcatgets¤Î°ú¿ô¤È¤·¤Æ»È¤¦¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£

 
char *translation = catgets (catd, set_no, msg_id, "original string");

¤³¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎºÇ½é¤Î°ú¿ô¤Ï¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¹¡£2ÈÖÌܤΰú¿ô¤Ï¤³ ¤Î¥«¥¿¥í¥°Ãæ¤Î¥á¥Ã¥»¡¼¥¸¤òÆÃÄꤹ¤ë¤â¤Î¤Ç¡¢msg_id¤Ç»ØÄꤵ¤ì¤ë¥á¥Ã¥»¡¼ ¥¸¤¬¼èÆÀ¤µ¤ì¤Þ¤¹¡£catgets¤Ï½¾¤Ã¤Æ¡¢3ÃÊ¥¢¥É¥ì¥Ã¥·¥ó¥°(three-stage adressing)¤ò»ÈÍѤ·¤Þ¤¹¡£

 
¥«¥¿¥í¥°Ì¾ => ÈÖ¹æ¤Î¥»¥Ã¥È => ¥á¥Ã¥»¡¼¥¸ID => ËÝÌõ

»ÍÈÖÌܤΰú¿ô¤ÏËÝÌõʸ»úÎó¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¡£¤³¤Î°ú¿ô¤ÏËÝÌõʸ»ú Îó¤ÎÆÃÄ꤬¼ºÇÔ¤·¤¿¤È¤­¤Ë»ÈÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥ÈÃͤȤ·¤ÆÍ¿¤¨¤é¤ì¤Þ¤¹¡£Ëº¤ì¤Æ¤Ï ¤¤¤±¤Ê¤¤½ÅÍפʤ³¤È¤Ï¡¢catgets¤ÎÌá¤êÃͤη¿¤¬char *¤Ç¤¢¤ë¤Ë¤â´Ø¤é¤º¡¢ ÊÖ¤µ¤ì¤¿Ê¸»úÎó¤òÊѹ¹¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤Ï const char *¤È¤·¤¿¤Û¤¦¤¬Îɤ¤¤Î¤Ç¤¹¤¬¡¢¤³¤Îɸ½à¤ÏANSI C¤Î°ìǯÁ°¡¢ 1988ǯ¤Ë½ÐÈǤµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£

¤³¤ì¤é¤Î´Ø¿ô¤ÎºÇ¸å¤Î¤â¤Î¤Ï´üÂÔÄ̤ê¤Ë»È¤ï¤ì¡¢Æ°ºî¤·¤Þ¤¹¡£

 
catclose (catd);

¤³¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿¸å¡¢¤³¤Îµ­½Ò»Ò¤ò»È¤Ã¤Æcatgets¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¡¢ ¤â¤Ï¤ä¹çË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£


8.1.2 catgets¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!

¤³¤³¤Ç¡¢²æ¡¹¤¬¤ªÏ乤ëÌäÂ꤬¤É¤³¤Ë¤¢¤ë¤Î¤«¤òÌÀ³Î¤Ë¤·¤Þ¤·¤ç¤¦¡£»ö¼Â¡¢¤³¤Î¥¤ ¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¸½¼ÂŪ¤ÊÊýË¡¤Ç»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤¬¡¢¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¹½ Ãۤ϶ìÄˤǤ¹¡£¤³¤ÎÍýͳ¤Ïcatgests¤ÎÂè»°°ú¿ô¡¢¤Ä¤Þ¤ê°ì°Õ¤Ê¥á¥Ã¥»¡¼¥¸ ID¤Ë¤¢¤ê¤Þ¤¹¡£¤¢¤ëñ°ì¤Î¥»¥Ã¥ÈÃæ¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤Ï¿ôÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤» ¤ó¡£¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤òÊѹ¹¤·¤Æ¤¤¤ë´Ö¡¢¤º¤Ã¤È¤³¤Î¤è¤¦¤Ê¥ê¥¹¥È ¤òÊÝ»ý¤·Â³¤±¤ë¤È¤¤¤¦ÌäÂê¤Ë¤Ä¤¤¤ÆÍý²ò½ÐÍè¤ë¤Ç¤·¤ç¤¦¡£¤³¤Ã¤Á¤Ç¿·¤·¤¤¥á¥Ã¥»¡¼ ¥¸¤òÄɲ䷤ơ¢¤¢¤Ã¤Á¤Ç°ì¤Äºï½ü¤·¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢¤³¤Îº®Íð¤ò¼ý½¦¤¹¤ë¤Î¤ò½õ¤± ¤ë¤¿¤á¤Î¿¤¯¤Î¥Ä¡¼¥ë¤¬³«È¯¤µ¤ì¤Æ¤Ï¤¤¤Þ¤¹¤¬¡¢¤¢¤ë¶ÉÌ̤ǻȤ¨¤ë¤â¤Î¤Ï¾¤Î¶ÉÌÌ ¤Ç¤Ï»È¤¨¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¤¹¡£²æ¡¹¤Ï¡¢Ê̤Υ¢¥×¥í¡¼¥Á¤Ë¤ÏÁ´¤¯ÌäÂ꤬¤Ê¤¤¤Î¤Ë¡¢ ¤½¤ì¤é¤Ï¤º¤Ã¤È°·¤¤¤ä¤¹¤¤¤È¤Ï¸À¤¤¤¿¤¯¤¢¤ê¤Þ¤»¤ó¡£


8.2 gettext¤Ë¤Ä¤¤¤Æ

gettext¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÄêµÁ¤ÏUniform¤ÎÄó°Æ¤«¤éÍè¤Æ¤¤¤Æ¡¢¤Þ¤¿¡¢ ¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Î¼çÍפÊUNIX¥Ù¥ó¥À(Sun)¤Ë¤è¤ëºÇ¿·¤Î¼ÂÁõ¤Ë½¾¤Ã¤Æ¤¤¤Þ¤¹¡£¤· ¤«¤·¡¢¤³¤ì¤Ï²¿¤é¤«¤ÎÀµ¼°¤Êɸ½à(official standard)¤Ë¤è¤Ã¤Æµ¬Äꤵ¤ì¤Æ¤¤¤ëµ¬ ³Ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¤³¤Î¥½¥ê¥å¡¼¥·¥ç¥ó¤Ë¤ª¤±¤ëÂ礭¤ÊÆÃħ¤Ï¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ëÁàºî(¥ª¡¼¥×¥ó - »ÈÍÑ - ¥¯¥í¡¼¥º)¤ÎÊýË¡¤Ë½¾¤ï¤º¡¢¥×¥í¥°¥é¥Þ¤Ë¤½¤ìÄø¿¤¯¤Î¡¢Æä˥æ¥Ë¡¼¥¯¤Ê¥­¡¼¤Î °·¤¤¤Ë´Ø¤·¤Æ¡¢Éé²Ù¤òÍ¿¤¨¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢¤³¤ÎÊýË¡¤Ç¤â¥æ¥Ë¡¼¥¯ ¤Ê¥­¡¼¤ÏɬÍפȤʤê¤Þ¤¹¤¬¡¢¥­¡¼¤È¤·¤Æ¥á¥Ã¥»¡¼¥¸¤½¤ì¼«¿È(¤É¤ì¤Û¤ÉŤ«¤í¤¦¤È û¤«¤í¤¦¤È)¤È¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤éÆó¤Ä¤Î¼êË¡¤ÎÈæ³Ó¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï See section 8.3 Æó¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÈæ³Ó¡£

¼¡¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ï¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¾ÜºÙ¤ÊÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥¤¥ó¥¿¡¼ ¥Õ¥§¡¼¥¹¤ÏGNU gettext¥é¥¤¥Ö¥é¥ê¤Î¤¿¤á¤ËÁª¤Ð¤ì¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ê¤Î ¤Ç¡¢¾Ü¤·¤¯ÀâÌÀ¤·¤Þ¤¹¡£¤³¤Î¥é¥¤¥Ö¥é¥ê¤Î»ÈÍÑË¡¤Ë¶½Ì£¤ò»ý¤Ã¤¿¥×¥í¥°¥é¥Þ¤Ï¡¢¤³ ¤³¤Ç¤ÎÀâÌÀ¤Ë¤â¶½Ì£¤ò»ý¤Ä¤Ç¤·¤ç¤¦¡£

8.2.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹  
8.2.2 Û£Ë椵¤Î²ò·è  
8.2.3 ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤Î½êºß  
8.2.4 gettext´Ø¿ô·²¤ÎºÇŬ²½  


8.2.1 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹

¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏºÇÄã¸Â¤Îµ¡Ç½¤È¤·¤Æ¡¢a) ʸ»úÎó¤ò»ý¤Ã¤Æ¤¯¤ë¥É¥á¥¤¥ó (domain)¤ÎÁªÂò(ñ°ì¥É¥á¥¤¥ó¤òÁ´¤Æ¤Î¥×¥í¥°¥é¥à¤Ë¡¢¤È¤¤¤¦¤Î¤Ï¹½ÃÛ¤ÈÊݼ餬Æñ ¤·¤¯¤Ê¤ê¡¢¤Þ¤¿¶²¤é¤¯¤ÏÉÔ²Äǽ¤Ç¤¹¤Î¤Ç¡¢¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¡¢b) ÁªÂò¤·¤¿¥É ¥á¥¤¥ó¤Îʸ»úÎó¤Ø¤Î¥¢¥¯¥»¥¹¡¢¤òÈ÷¤¨¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

¤³¤ì¤Ï¼ç¤È¤·¤Ægettext¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÀâÌÀ¤Ç¤¹¡£¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼ ¥¹¤Ï¥°¥í¡¼¥Ð¥ë¥É¥á¥¤¥ó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤â¤Á¤í¤ó¤³¤Î¥É¥á¥¤¥ó¤Ï¥æ¡¼¥¶¤Ë¤è¤êÁª Âò²Äǽ¤Ç¤¹¡£

 
char *textdomain (const char *domain_name);

¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆLC_MESSAGE¥«¥Æ¥´¥ê¤Î¸½ºß¤Î¥°¥í¡¼¥Ð¥ë¥É¥á¥¤¥ó¤Î¥¹¥Æ¡¼ ¥¿¥¹¤òÊѹ¹¤·¤¿¤ê¡¢Ì䤤¹ç¤ï¤»¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°ú¿ô¤ÏNULʸ»ú¤Ç½ªÃ¼¤µ ¤ì¤¿Ê¸»úÎó¤Ç¡¢¤½¤Îʸ»úÎó¤Ï¥Õ¥¡¥¤¥ë̾¤Ë»È¤¦¤³¤È¤Î¤Ç¤­¤ë¤â¤Î¤Ç¤¢¤ëɬÍפ¬¤¢¤ê ¤Þ¤¹¡£°ú¿ôdomain_name¤¬NULL¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¸½ºß¤ÎÀßÄê ÃͤòÊÖ¤·¤Þ¤¹¡£¤â¤·»öÁ°¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¥É¥á¥¤¥ó¤Î̾ Á°¤È¤·¤Æmessages¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¤³¤³¤Ç¡¢textdomain¤ÎÌá¤êÃͤη¿ ¤¬char *¤Ç¤¢¤ë¤Ë¤â´Ø¤é¤º¡¢½ñ¤­´¹¤¨¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ²¼ ¤µ¤¤¡£Æ±Íͤˡ¢Í­¸úÀ­¤Î¥Á¥§¥Ã¥¯¤¬¤Ê¤µ¤ì¤Ê¤¤¤È¤¤¤¦¤³¤È¤â½ÅÍפǤ¹¡£Ì¾Á°¤¬Í­¸ú ¤Ç¤Ê¤¤¾ì¹ç¡¢Âбþ¤¹¤ëËÝÌõʸ»úÎó¤¬Ê֤äƤ³¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤½¤ì¤¬Ç§¼±¤Ç¤­¤ë¤Ç ¤·¤ç¤¦¡£

textdomain´Ø¿ô¤ò»È¤Ã¤ÆÀßÄꤷ¤¿¥É¥á¥¤¥ó¤ò»È¤¦¤Ë¤Ï

 
char *gettext (const char *msgid);

¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£¤³¤ì¤ÏÁÛÁü¤Ç¤­¤ëºÇ¤âñ½ã¤Ç¸½¼ÂŪ¤Ê·Á¼°¤Ç¤¹¡£¤â¤·¸½ºß¤Î¥É¥á ¥¤¥ó¤Ç¼èÆÀ²Äǽ¤Ê¤é¤Ð¡¢msgid¤òËÝÌõ¤·¤¿Ê¸»úÎó¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¤â¤·¼èÆÀ¤Ç ¤­¤Ê¤±¤ì¤Ð¡¢°ú¿ô¤¬¤½¤Î¤Þ¤ÞÊÖ¤µ¤ì¤Þ¤¹¡£°ú¿ô¤¬NULL¤Ç¤¢¤Ã¤¿¤È¤­¤Î·ë²Ì ¤Ï̤ÄêµÁ¤Ç¤¹¡£

»ÈÍѤ·¤Æ¤¤¤ë¥É¥á¥¤¥ó¤ÏÛ£Ëæ¤Ê¤â¤Î¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¤¤¤Æ²¼¤µ¤¤¡£ LC_MESSAGES¥í¥«¡¼¥ë¤ËÂФ¹¤ë¸½ºß¤Î¥É¥á¥¤¥ó¤ÎÃͤ¬»ÈÍѤµ¤ì¤Þ¤¹¡£¥×¥í¥° ¥é¥àÃæ¤Çgettext¤ò¸Æ¤Ó½Ð¤¹´Ö¤ËLC_MESSAGES¥í¥«¡¼¥ë¤ÎÊѹ¹¤ò¹Ô¤Ã ¤¿¤Ê¤é¡¢¤½¤ì¤¾¤ì¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï(¾Êý¤È)°Û¤Ê¤Ã¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬»²¾È¤µ¤ì ¤Þ¤¹¡£

¹ñºÝ²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤¬Ä̾ï»ÈÍѤ¹¤ë¤â¤Ã¤È¤âñ½ã¤Ê¥±¡¼¥¹¤Ç¤Ï¡¢ textdomain¤Î¸Æ¤Ó½Ð¤·¤¬ºÇ½é¤Ë°ìÅÙ¤À¤±¹Ô¤ï¤ì¡¢¤³¤³¤Ç¥É¥á¥¤¥ó¤Ë¥æ¥Ë¡¼ ¥¯¤Ê̾Á°¡¢Ä̾ï¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£¤½¤ì°Ê¹ß¤Î¥³¡¼¥É¤Ç¤Ï¡¢ËÝÌõ¤µ ¤ì¤ë¤Ù¤­Á´¤Æ¤Îʸ»úÎó¤Ïgettext´Ø¿ô¤òÄ̤¸¤ÆËÝÌõ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥Ñ¥Ã ¥±¡¼¥¸¤Ï¤¢¤Ê¤¿¤Î»È¤¦¸À¸ì¤ò¤·¤ã¤Ù¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


8.2.2 Û£Ë椵¤Î²ò·è

°ì¤Ä¤Î¥É¥á¥¤¥ó¤À¤±¤ò»È¤¦¤È¤¤¤¦¼êË¡¤ÏËؤó¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍ­¸ú¤ËƯ¤­¤Þ ¤¹¤¬¡¢Æó¤Ä°Ê¾å¤Î¥É¥á¥¤¥ó¤«¤éËÝÌõʸ»úÎó¤ò¼è¤ê½Ð¤¹É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤â¤Á¤í¤ótextdomain¤ò¸Æ¤Ó½Ð¤·¤Æ°Û¤Ê¤ë¥É¥á¥¤¥ó¤ËÀÚ¤êÂؤ¨¤ë¤³¤È¤â½ÐÍè ¤Þ¤¹¤¬¡¢¤³¤ì¤ÏÊØÍø¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤·¡¢¹â®¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£¤³¤Î¥É¥­¥å¥á¥ó¥È¤ò µ­½Ò¤·¤Æ¤¤¤ë´Ö¤ËµÄÏÀ¤µ¤ì¤¿¥±¡¼¥¹¤Ï¤³¤ÎÎã¤ËÅö¤Æ¤Ï¤Þ¤ë¤Ç¤·¤ç¤¦¡£¡Ö°ìÈÌŪ¤Ë»È ÍѤµ¤ì¤ë´Ø¿ô¤Ë´Ø¤¹¤ëÁ´¤Æ¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¡¢Ê¬³ä¤µ¤ì¤¿error¤È¤¤¤¦ ¥É¥á¥¤¥ó¤Ë³ÊǼ¤¹¤ë¤Î¤¬Îɤ¤¡×¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£¤³¤ì¤Ë¤è¤ê²æ¡¹¤Ï¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼ ¥¸¤ò°ìÅÙ¤À¤±ËÝÌõ¤¹¤ì¤ÐÎɤ¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£

¤³¤Î¤¿¤á¡¢¤µ¤é¤ËÆó¤Ä¤Î´Ø¿ô¤Îʸ»úÎó¼èÆÀÍÑ´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£

 
char *dgettext (const char *domain_name, const char *msgid);
char *dcgettext (const char *domain_name, const char *msgid,
                 int category);

¤³¤ì¤é¤Î´Ø¿ô¤ÏξÊý¤È¤âÀèƬ¤ËÄɲäΰú¿ô¤ò¼è¤ê¤Þ¤¹¡£¤³¤Î°ú¿ô¤Ï textdomain¤Î°ú¿ô¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¹¡£dcgettext¤ÎÂè»°°ú¿ô¤Ï¡¢ LC_MESSAGES°Ê³°¤ÎÊÌ¤Î¥í¥«¡¼¥ë¤ò»È¤¦¤³¤È¤òµö²Ä¤·¤Þ¤¹¡£¤·¤«¤·»ä¤Ë¤Ï¡¢ ¤³¤ì¤¬ÊØÍø¤Ê¤Î¤«¤É¤¦¤«¤Ï¤ï¤«¤ê¤Þ¤»¤ó¡£domain_name¤¬NULL¤Ç¤¢¤Ã ¤¿¤ê¡¢category¤¬Ì¤ÃΤÎÃͤǤ¢¤Ã¤¿¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¹¡£Æ±Íͤˡ¢ ¤³¤Î´Ø¿ô¤Ï¤³¤Î´Ø¿ô¥Õ¥¡¥ß¥ê¤ÎÆóÈÖÌܤËÃΤé¤ì¤¿¼ÂÁõ(Solaris¤Ç¤Î¼ÂÁõ¤Ç¤¹)¤Î°ì Éô¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ËÃí°Õ¤¹¤ë¤Ù¤­¤Ç¤¹¡£

Æó¤Ä¤á¤ÎÛ£Ë椵¤Ï¡¢¤ª¤½¤é¤¯¤Ï°ì¤Ä°Ê¾å¤Î¥É¥á¥¤¥ó¤¬Æ±¤¸Ì¾Á°¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤¤¤¦ ¤³¤È¤Ç¤¹¡£¤³¤ì¤ÏɬÍפʥá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì½ê¤ò»ØÄꤹ¤ë¤³¤È¤Ë ¤è¤Ã¤Æ²ò·è¤Ç¤­¤Þ¤¹¡£

 
char *bindtextdomain (const char *domain_name,
                      const char *dir_name);

¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê¡¢Í¿¤¨¤é¤ì¤¿¥É¥á¥¤¥ó¤ò»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë ·ë¤ÓÉÕ¤±¤Þ¤¹(¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤ò·ë¤ÓÉÕ¤±¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò)¡£¥·¥¹¥Æ¥à¤Î¥Ç ¥Õ¥©¥ë¥È¤Î°ÌÃ֤ˤ¢¤ë¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì°Ê¾å»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó (ñ¤Ëtextdomain¤ò»È¤Ã¤¿¾ì¹ç¤ÈÁ´¤¯Æ±¤¸¤Ç¤¹)¡£dir_name¤ò NULL¤Ë¤·¤¿¾ì¹ç¤Ï¡¢domain_name¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òÊÖ ¤·¤Þ¤¹¡£domain_name¤½¤Î¤â¤Î¤¬NULL¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï²¿¤âµ¯¤³¤é¤º¡¢ NULL¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£Â¾¤ÎÁ´¤Æ¤Î´Ø¿ô¤ÈƱ¤¸¤è¤¦¤Ë¡¢Ìá¤êÃͤÏÊѹ¹ ¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó!

dir_name¥Ñ¥é¥á¡¼¥¿¤ËÍ¿¤¨¤é¤ì¤ë¥Ñ¥¹Ì¾¤ÏÌäÂê¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ ¤³¤Î¤³¤È¤ò¤·¤Ã¤«¤ê³Ð¤¨¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£¥Ñ¥¹¤Ï¾ï¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Î ÁêÂаÌÃ֤Ȥ·¤Æµá¤á¤é¤ì¤ë¤¿¤á¡¢¥×¥í¥°¥é¥à¤¬chdir¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤È ¤­¤Ï°Û¤Ê¤Ã¤¿·ë²Ì¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¥Ñ¥¹¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¾ï¤Ë°Í¸À­¤ÈÉԳμÂÀ­¤ò²ó Èò¤»¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£


8.2.3 ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤Î½êºß

¿¤¯¤Î°Û¤Ê¤Ã¤¿¸À¸ì¤ò¿¤¯¤Î°Û¤Ê¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ë³ÊǼ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢ ²¿¤é¤«¤ÎÊýË¡¤Ç¸À¸ì¤ä¥Ñ¥Ã¥±¡¼¥¸¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ËÄÉ ²Ã¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£UNIX´Ä¶­¤ÇÄ̾ï»È¤ï¤ì¤Æ¤¤¤ëÊýË¡¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤Ë¥¨¥ó¥³¡¼ ¥Ç¥£¥ó¥°¤ò´Þ¤á¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£¤³¤³¤Ç¤âƱÍͤˤ·¤Æ¤¤¤Þ¤¹¡£ bindtextdomain¤ÎÂèÆó°ú¿ô(¤¢¤ë¤¤¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥£¥ì¥¯¥È¥ê)¤ÇÍ¿¤¨¤é ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê̾¤Ë¤Ï¡¢°Ê²¼¤Ëµ­½Ò¤¹¤ë¤è¤¦¤Ë¥í¥«¡¼¥ë¤ä¥É¥á¥¤¥ó̾¤ÎÃͤä̾Á° ¤¬¸å¤í¤Ë³¤¤¤Æ¤¤¤Þ¤¹¡£

 
dir_name/locale/LC_category/domain_name.mo

dir_name¤Î´ûÄêÃͤϥ·¥¹¥Æ¥à¤Ë°Í¸¤·¤Þ¤¹¡£GNU¥é¥¤¥Ö¥é¥ê¡¢¤½¤·¤ÆGNU¤ÎÊý ¿Ë¤ò´è¤Ê¤Ë¿®Êô¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Î´ûÄêÃͤÏ

 
/usr/local/share/locale

¤Ç¤¹¡£

locale¤Ï¡¢LC_category¤ò¤¤¤¦Ì¾Á°¤ò»ý¤Ä¥í¥«¡¼¥ë¤ÎÃͤǤ¹¡£ gettext¤Èdgettext¤Ë¤È¤Ã¤Æ¡¢¤³¤Î¥í¥«¡¼¥ë¤Ï¾ï¤Ë LC_MESSAGES¤Ç¤¹¡£dcgettext¤Ï»°ÈÖÌܤΰú¿ô¤Ë¤è¤Ã¤Æ¥í¥«¡¼¥ë¤ò»Ø Äꤷ¤Þ¤¹(2)¡£ (3)


8.2.4 gettext´Ø¿ô·²¤ÎºÇŬ²½

¤³¤ÎÊÕ¤ê¤Ç¡¢GNU gettext¤Î¼ÂÁõ¤Ë¤ª¤±¤ë¥¢¥É¥Ð¥ó¥Æ¡¼¥¸¤Ë¤Ä¤¤¤ÆÏä¹É¬Í× ¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£°ìÉô¤ÎÆɼԤϡ¢ÆâÉô¥ë¡¼¥×Ãæ¤Ç´ö¤Ä¤«¤Îʸ»úÎó¤òËÝÌõ¤·¤Ê¤±¤ì¤Ð ¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¹ñºÝ²½¥×¥í¥°¥é¥à¤Ï¡¢Éϼå¤Ê¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤·¤«¤¢¤²¤é¤ì¤Ê¤¤¤³¤È ¤ò»ØŦ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤½¤Îʸ»úÎ󤬰ì²ó¤Î¥ë¡¼¥×¤Î¼Â¹ÔÃæ¤ËÊѹ¹¤µ¤ì¤ë¤Ê¤é ¤Ð»ÅÊý¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥ë¡¼¥×Ãæ¤Çʸ»úÎ󤬾ï¤ËƱ¤¸Ãͤò¼è¤ë¤Ê¤é¤Ð»þ´Ö¤ÎϲÈñ¤Ç¤· ¤«¤¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤ÎÎã¤ò¸«¤Æ²¼¤µ¤¤¡£

 
{
  while (...)
    {
      puts (gettext ("Hello world"));
    }
}

¥í¥«¡¼¥ë¤¬Æó²ó¤Î¼Â¹Ô¤Î´Ö¤ÇÊѹ¹¤µ¤ì¤Ê¤¤¤È¤­¡¢Ê¸»úÎó¤Ï¾ï¤ËƱ¤¸Ãͤò¼è¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¼è¤ë¤³¤È¤¬½ÐÍè¤ëÊýË¡¤È¤·¤Æ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£

 
{
  str = gettext ("Hello world");
  while (...)
    {
      puts (str);
    }
}

¤·¤«¤·¤³¤Î²ò·èË¡¤Ï¤¢¤é¤æ¤ë¶ÉÌ̤ǻȤ¨¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤·(Î㤨¤Ð¡¢¥í¥«¡¼ ¥ë¤¬Êѹ¹¤µ¤ì¤ë¤è¤¦¤Ê¾ì¹ç)¡¢Æɤߤ䤹¤¤¤ï¤±¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£

GNU C¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó2.7¤«¤½¤ì°Ê¾å¤Ç¤Ï¡¢¤³¤ì¤ËÂФ·¤ÆÊ̤βò·èÊýË¡¤ò½à È÷¤·¤Æ¤¤¤Þ¤¹¡£¤³¤³¤Ëµó¤²¤ë¿ô¹Ô¤ò intl/libgettext.h ¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤¹¤ë¤È¤¤ ¤¦¤â¤Î¤Ç¤¹¡£¼°¤Î¥³¥Þ¥ó¥É¥Ö¥í¥Ã¥¯(expression command block)¤Ë´Ø¤¹¤ëÀâÌÀ¤Ë¤Ä ¤¤¤Æ¤Ï¡¢section `Statements and Declarations in Expressions' in The GNU CC Manual¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

 
#  if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
extern int _nl_msg_cat_cntr;
#   define	dcgettext(domainname, msgid, category)           \
  (__extension__                                                 \
   ({                                                            \
     char *result;                                               \
     if (__builtin_constant_p (msgid))                           \
       {                                                         \
         extern int _nl_msg_cat_cntr;                            \
         static char *__translation__;                           \
         static int __catalog_counter__;                         \
         if (! __translation__                                   \
             || __catalog_counter__ != _nl_msg_cat_cntr)         \
           {                                                     \
             __translation__ =                                   \
               dcgettext__ ((domainname), (msgid), (category));  \
             __catalog_counter__ = _nl_msg_cat_cntr;             \
           }                                                     \
         result = __translation__;                               \
       }                                                         \
     else                                                        \
       result = dcgettext__ ((domainname), (msgid), (category)); \
     result;                                                     \
    }))
#  endif

¤³¤³¤Ç¶½Ì£¿¼¤¤¤Î¤Ï__builtin_constant_p¤Ç¤¹¡£¤³¤ì¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ëɾ ²Á¤µ¤ì¡¢Ä¾¤Á¤ËºÇŬ²½¤µ¤ì¤Þ¤¹¡£¤³¤³¤ÇÆó¤Ä¤Î¥±¡¼¥¹¤Ëʬ´ô¤·¤Þ¤¹¡£ gettext¤Î°ú¿ô¤¬Äê¿ô¤Ç¤Ê¤¤¾ì¹ç¤Ïñ½ã¤Ëdcgettext__¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢ dcgettext´Ø¿ô¤Î¼ÂºÝ¤Î¼ÂÁõ¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£

ʸ»úÎó°ú¿ô¤¬Äê¿ô¤Î¾ì¹ç¡¢¥í¥«¡¼¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð´û¤Ë¼èÆÀ¤µ¤ì ¤Æ¤¤¤ëËÝÌõ¤òºÆÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤³¤ì¤ÏÀµ³Î¤Ë¤³¤Î¾ì¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£ _nl_msg_cat_cntrÊÑ¿ô¤Ï¡¢`libintl.a'Ãæ¤ÇÍøÍѲÄǽ¤Ê `loadmsgcat.c'¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ÎÊÑ¿ô¤Ï¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬ ¥í¡¼¥É¤µ¤ì¤¿»þÅÀ¤ÇÊѹ¹¤µ¤ì¤Þ¤¹¡£


8.3 Æó¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÈæ³Ó

°Ê²¼¤Ëµó¤²¤ëµÄÏÀ¤Ï¤ª¤½¤é¤¯À÷¤á¤é¤ì¤¿¾®¤µ¤Ê¥Ó¥Ã¥È(a little bit colored)¤Ç¤¹¡£ ´û¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢²æ¡¹¤ÏGNU gettext¤òUniforum¤ÎÄó°Æ¤Ë½¾¤Ã¤Æ¼ÂÁõ¤·¤Þ ¤·¤¿¤·¡¢¤³¤ì¤Ë¤Ï¤½¤¦¤¹¤ë¤À¤±¤ÎÍýͳ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢²æ¡¹¤¬¤É¤Î¤è¤¦¤Ë¤³¤Î ·èÄê¤Ë¤¤¤¿¤Ã¤¿¤Î¤«¤òÀâÌÀ¤·¤¿¤Û¤¦¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£

Âè°ì¤Ë¡¢²æ¡¹¤Ï³«È¯¥×¥í¥»¥¹¤ËÃíÌܤ·¤Þ¤·¤¿¡£gettext¤Ë¤è¤êÄ󶡤µ¤ì¤ë NLS¤òÍѤ¤¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò³«È¯¤¹¤ë¤È¤­¡¢²æ¡¹¤Ï¤¤¤Ä¤âÄ̤ê¤Ëºî¶È¤·¤Þ¤¹¡£ ¥æ¡¼¥¶¤¬¸«¤ë¤³¤È¤Ë¤Ê¤ê¡¢ËÝÌõ¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤Ç¤¢¤í¤¦Ê¸»úÎó¤ò°·¤¦¤È¤­¤Ë¤À¤±¡¢ "..."¤ÎÂå¤ï¤ê¤Ëgettext("...")¤òÃÖ¤­¤Þ¤¹¡£³Æ¥½¡¼¥¹¥Õ¥¡ ¥¤¥ë(¤â¤·¤¯¤ÏÃ濴Ū¤Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë)¤ÎÀèƬ¤Ç¼¡¤Î¤è¤¦¤ÊÄêµÁ¤ò¹Ô¤¤¤Þ¤¹¡£

 
#define gettext(String) (String)

¤³¤ÎÄêµÁ¤Ë¤è¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¼«¿È¤ÎC¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤Ægettext¤¬¥µ¥Ý¡¼ ¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢¤½¤ì¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤ ¥ë¤·¤Æ¤â¡¢¤½¤Î·ë²Ì¤ÏNLS¥³¡¼¥É¤ò»È¤ï¤Ê¤¤¾ì¹ç¤ÈƱ¤¸¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£GNU gettext¤Î¥³¡¼¥É¤ËÃíÌܤ·¤¿¤Ê¤é¡¢²æ¡¹¤¬gettext("...")¤Ç¤Ï ¤Ê¤¯_("...")¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤Ëµ¤¤¬¤Ä¤¯¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ë¤è¤ê¡¢ËÝ Ìõ²Äǽʸ»úÎó°ì¤ÄÅö¤¿¤ê¤ÇÁý²Ã¤¹¤ëʸ»ú¿ô¤ò»°¤Ä¤Ë²¡¤¨¤é¤ì¤Þ¤¹¡£

¥×¥í¥°¥é¥à¤ÎÀ½ÉʥС¼¥¸¥ç¥ó¤Ç¤ÏÄêµÁ¤ò

 
#define _(String) (String)

¤«¤é

 
#include <libintl.h>
#define _(String) gettext (String)

¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£¹¹¤ËËÝÌõ²Äǽʸ»úÎó¤ò´Þ¤à¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ `xgettext'¤ò¼Â¹Ô¤·¤Þ¤¹¡£ËÝÌõ¤¬²Äǽ¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ë¤Ï°Í¸¤·¤Þ¤»¤ó¤¬¡¢ ËÝÌõ¤¬»ÈÍѲÄǽ¤Ç¤¢¤ì¤ÐËÝÌõ¤ò»ÈÍѤǤ­¤ë¼Â¹Ô¥×¥í¥°¥é¥à¤¬½ÐÍè¾å¤¬¤ê¤Þ¤¹¡£

gettext_noop¤ËÂФ·¤Æ¤âƱ¤¸¼ê³¤­¤¬¼è¤é¤ì¤Þ¤¹(see section 3.5 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó)¡£ºÇ½é¤Ë¡¢gettext_noop¤òno-op¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤·¡¢¸å¤«¤é `libintl.h'¤Ç¤ÎÄêµÁ¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î̾Á°¤ÏSun¤Ë¤è¤ë `libintl.h'¤Î¼ÂÁõ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤¢¤Ê¤¿¤Î¥×¥í¥¸¥§¥¯¥È¤ËÂФ·¤Æ °Ê²¼¤Î¥³¡¼¥É¤ò¹Íθ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£

 
#ifdef gettext_noop
# define N_(String) gettext_noop (String)
#else
# define N_(String) (String)
#endif

N_¤Ï_¤ÈƱÍͤÎû¤¤·Á¼°¤Ç¤¹¡£GNU gettext¤Î`po/'¥Ç¥£¥ì¥¯¥È ¥êÃæ¤Î`Makefile'¤ÏÀè¤Ë½Ò¤Ù¤é¤ì¤¿Î¾Êý¤Îû¤¤·Á¼°¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÍý²ò¤·¤Þ ¤¹¡£¤½¤Î¤¿¤á¤¢¤Ê¤¿¤Ï¡¢¼«Ê¬¼«¿È¤¬³Ú¤Ë¤Ê¤ë¤¿¤á¤Ë¤³¤ÎÄó°Æ¤òÍý²ò¤¹¤ëɬÍפ¬¤¢¤ê ¤Þ¤¹¡£

¸½ºß¤Îcatgets¤Ë¤ª¤±¤ëºÇ¤âÂ礭¤ÊÌäÂê¤Ï¥×¥í¥°¥é¥Þ¤¬¹Ô¤¦ºî¶È¤Ç¤¹¡£ËÝÌõ ʸ»úÎó¤ò°·¤¦¤¿¤Ó¡¢¥×¥í¥°¥é¥Þ¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ËÂФ·¤Æ¤âÂбþ¤¹¤ë¿ôÃÍ(¤â ¤·¤¯¤Ï¥·¥ó¥Ü¥ëŪÄê¿ô: symbolic constant)¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£½ÅÊ£¤· ¤¿¥¨¥ó¥È¥ê¡¢¥á¥Ã¥»¡¼¥¸ID¤Ê¤É¤Ë¤âÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£GNU gettext¥×¥í¥°¥é¥à¤¬Ä󶡤¹¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ÈƱÄøÅ٤Υ¯¥ª¥ê¥Æ¥£¤Î ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤òɬÍפȤ¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢Èà¤ÏÁ´¥½¡¼¥¹¥³¡¼¥É¥Õ¥¡¥¤¥ëÃæ¤Îʸ »úÎó¤È¤½¤Î½Ð¸½°ÌÃÖ¤ËÂФ¹¤ëµ­½ÒŪ¤Ê¥³¥á¥ó¥È¤ò¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ËÆþ¤ì¤ëɬÍ× ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡Ö¥ß¥Ã¥·¥ç¥ó: ¥¤¥ó¥Ý¥Ã¥·¥Ö¥ë¡×¤Ë¶á¤¤ÏäǤ¹¡£

¤·¤«¤·¡¢catgets¤Ë¤ÏĹ½ê¤È¸Æ¤Ù¤ë¤«¤â¤·¤ì¤Ê¤¤´ö¤Ä¤«¤Î¥Ý¥¤¥ó¥È¤¬¤¢¤ê¤Þ ¤¹¡£¤¢¤Ê¤¿¤¬¤¢¤ëʸ»úÎóÃæ¤Ë°ì¤Ä¤Îñ¸ì¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¤³¤Îʸ»úÎ󤬰ۤʤ륳¥ó¥Æ ¥­¥¹¥È¤Ç»È¤ï¤ì¤ë¤È¤·¤Þ¤·¤ç¤¦¡£¸À¸ì¤Ë¤è¤Ã¤Æ¤Ï¤³¤Îñ¸ì¤ËÂФ·¤Æ°Û¤Ê¤ëÌõ¸ì¤¬³ä ¤êÅö¤Æ¤é¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

 
printf ("%s: %d", gettext ("number"), number_of_errors)

printf ("you should see %d %s", number_count,
        number_count == 1 ? gettext ("number") : gettext ("numbers"))

¤³¤ÎÎã¤Ç¤Ï¡¢²æ¡¹¤Ï"number"¤È¤¤¤¦Ê¸»úÎó¤òÆóÅÙËÝÌõ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤» ¤ó¡£¤¢¤Ê¤¿¤¬±Ñ¸ì¤Ë»÷¤¿¸À¸ì¤òÏ䵤ʤ¤¤È¤·¤Æ¤â¡¢Æó¤Ä¤Î¸ì¤¬°Û¤Ê¤ë°ÕÌ£¤ò»ý¤Ã¤Æ ¤¤¤ë¤³¤È¤Ïǧ¼±¤Ç¤­¤ë¤Ç¤·¤ç¤¦¡£¥É¥¤¥Ä¸ì¤Ç¤ÏºÇ½é¤Îʸ»úÎó¤Ï"Anzahl"¤Ë¡¢ ÆóÈÖÌܤÎʸ»úÎó¤Ï"Zahl"¤ËËÝÌõ¤µ¤ì¤Þ¤¹¡£

¤³¤³¤Ç¤¢¤Ê¤¿¤Ï¤³¤ÎÎ㤬¼Â¤ËÆñ²ò(esoteric)¤Ç¤¢¤ë¤È¸À¤¦¤Ç¤·¤ç¤¦¡£¤½¤ì¤ÏÀµ¤·¤¤ ¤³¤È¤Ç¤¹! Àµ¤Ë¤³¤ÎÌäÂê¤ËÂФ·¤Æ¡¢²æ¡¹¤Ï¤µ¤Û¤É½ÅÍפǤϤʤ¤¤È¤¤¤¦·ëÏÀ¤òÆÀ¤Þ¤· ¤¿¡£¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Î¤ÏÈó¾ï¤Ë´Êñ¤Ç¤¹¡£

 
printf ("%s %d", gettext ("number:"), number_of_errors)

printf (number_count == 1 ? gettext ("you should see %d number")
                          : gettext ("you should see %d numbers"),
        number_count)

²æ¡¹¤Ï¤³¤ÎÊýË¡¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î¾×Æͤò²ò·è¤Ç¤­¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£¤â¤·¤³¤ì¤¬º¤Æñ ¤Ç¤¢¤ì¤Ð¡¢¾×Æͤ·¤Æ¤¤¤ëʸ»úÎó¤ò¤Û¤ó¤Î¾¯¤·ÊѤ¨¤ë¤È¤¤¤¦¤³¤È¤â½ÐÍè¤Þ¤¹¡£¤·¤«¤·¡¢ ¤³¤ÎÌäÂê¤ò¹îÉþ¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

ËÝÌõ¼Ô¥Î¡¼¥È: ñ°ì¤Î's'¤òÉղ乤뤳¤È¤Ë¤è¤Ã¤Æ̾»ì¤ÎÊ£¿ô·Á¼°¤òºî¤ë¤³¤È¤¬½Ð Íè¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò±Ñ¸ì¤òÏä¹¥×¥í¥°¥é¥Þ¤ËÅÁ¤¨¤ë¤³¤È¤Ï¡¢¶²¤é¤¯½ÅÍפʤ³¤È¤Ç¤¹¡£ ¾¤Î¤Û¤È¤ó¤É¤Î¸À¸ì¤Ç¤Ï°Û¤Ê¤ë¼êË¡¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£Rafal Maszkowski <[email protected]>¤Î¥ì¥Ý¡¼¥È¤Ë¤è¤ë¤È¡¢Á´¤Æ¤Î¸À¸ì¤ËÂФ·¤ÆÂн褹¤ë¤Ë¤Ï¡¢ ¾åµ­¤Î¥Õ¥©¡¼¥à¤Ç¤âÉÔ½½Ê¬¤Ç¤¹¡£

¥Ý¡¼¥é¥ó¥É¸ì¤Ç¤Ï²æ¡¹¤Ï¡¢Î㤨¤Ðplik(¥Õ¥¡¥¤¥ë)¤ò¤³¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¡£
 
1 plik
2,3,4 pliki
5-21 pliko'w
22-24 pliki
25-31 pliko'w
(o'¤Ï8859-2 oachte¤ò°ÕÌ£¤·¡¢¤³¤ì¤Ï¤É¤Á¤é¤«¤È¸À¤¨¤Ðaogonek¤Ë»÷¤¿okreska¤Ç¤¹)

²Äǽ¤Ê¥¢¥×¥í¡¼¥Á¤Ï¡¢¤ª¤½¤é¤¯POSIX.2ɸ½àÃæ¤Ë¤¢¤ëLC_TIME¤Ç»ÈÍѤµ¤ì¤Æ ¤¤¤ë¤è¤¦¤ÊÊýË¡¤ò¹Íθ¤ËÆþ¤ì¤ë¤³¤È¤Ç¤·¤ç¤¦¡£alt_digits¤ÎÃͤÏ1¤«¤é 100¤òɽ¸½¤¹¤ë100°Ê¾å¤Îʸ»úÎó¤È¤Ê¤êÆÀ¤Þ¤¹¡£É½¸½¤µ¤ì¤ë¿ô¤Ë¤è¤Ã¤Æ½ç½øÉÕ¤±¤µ¤ì ¤¿ËÝÌõʸ»úÎó¤ÎÇÛÎó¤òÍѤ¤¤ì¤Ð¡¢¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥àÃæ¤Ç¤³¤ÎÊýË¡¤ò»ÈÍѤ¹¤ë ¤³¤È¤¬½ÐÍè¤Þ¤¹¡£Ã±½ã¤ÊÎã¤ò¼¨¤·¤Þ¤¹¡£

 
void
print_month_info (int month)
{
  const char *month_pos[12] =
  { N_("first"), N_("second"), N_("third"),    N_("fourth"),
    N_("fifth"), N_("sixth"),  N_("seventh"),  N_("eighth"),
    N_("ninth"), N_("tenth"),  N_("eleventh"), N_("twelfth") };
  printf (_("%s is the %s month\n"), nl_langinfo (MON_1 + month),
          _(month_pos[month]));
}

¤³¤ÎÊýË¡¤Ï¡¢¿ôÃͤÎÈϰϤ¬¶¹¤¤¤È¤­¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤ÏÌÀ¤é¤«¤Ç¤·¤ç¤¦¡£


8.4 Æȼ«¤Î¥×¥í¥°¥é¥à¤Çlibintl.a¤ò»È¤¦

¥Ð¡¼¥¸¥ç¥ó0.9.4°Ê¹ß¡¢libintl.h¤Ï¼«¸ÊÊñ³ç(self-contained)¤Ç¤Ê¤±¤ì¤Ð ¤Ê¤é¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢Äɲäδؿô¤òÍÑ°Õ¤¹¤ë¤³¤È¤Ê¤¯¤³¤ì¤ò¤¢¤Ê¤¿¼« ¿È¤Î¥×¥í¥°¥é¥à¤Ç»ÈÍѤǤ­¤Þ¤¹¡£`Makefile'¤Ï¥Ø¥Ã¥À¤È¥é¥¤¥Ö¥é¥ê¤ò¡¢ $(prefix)¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤·¤Þ¤¹¡£

HP-UX¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¾åµ­¤Ë´Ø¤¹¤ëÍ£°ì¤ÎÎã³°¤¬È¯À¸¤·¤Þ¤¹¡£C¥é¥¤¥Ö¥é¥ê¤¬ alloca´Ø¿ô¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¤¹(¤½¤·¤ÆHP¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤ò¥¤¥ó¥é¥¤ ¥ó¤È¤·¤ÆŸ³«¤·¤Þ¤»¤ó)¡£¤·¤«¤·¤½¤ì¤Ï¤³¤Î¥Ð¥«¤Ê¥·¥¹¥Æ¥à¤Î¤¿¤á¤À¤±¤Ë¥é¥¤¥Ö¥é ¥êÁ´ÂΤò½ñ¤­Ä¾¤¹¤È¤¤¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë¡¢libintl.a¤ò»È ÍѤ¹¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬alloca´Ø¿ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£


8.5 Being a gettext grok

¥½¡¼¥¹¥³¡¼¥É¤òÆɤळ¤È¤Ï¡¢GNU gettext¤Îµ¡Ç½¤ò´°Á´¤Ë³èÍѤ¹¤ë¤¿¤á¤Î½õ ¤±¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢(»þ¤È¤·¤Æ¹þ¤ßÆþ¤Ã¤¿ÆâÍƤÎ)¥³¡¼¥É¤òÆɤि¤á¤Ë»þ´Ö ¤òÈñ¤ä¤¹¤³¤È¤ò˾¤Þ¤Ê¤¤¿Í¡¹¤Î¤¿¤á¤Ë¡¢´ö¤Ä¤«¤Î¥³¥á¥ó¥È¤òµó¤²¤Æ¤ª¤­¤Þ¤¹¡£


8.6 ¥×¥í¥°¥é¥Þ¤Î¾Ï¤Ë¤Ä¤¤¤Æ¤Î°ì»þŪ¤Ê¥á¥â

8.6.1 °ì»þŪ¤Ê¾ðÊó - Æó¤Ä¤Î¼ÂÁõ  
8.6.2 °ì»þŪ¤Ê¾ðÊó - catgets¤Ë¤Ä¤¤¤Æ  
8.6.3 °ì»þŪ¤Ê¾ðÊó - ¤Ê¤¼°ì¤Ä¤Î¼ÂÁõ¤Ê¤Î¤«  
8.6.4 °ì»þŪ¤Ê¾ðÊó - ¥Î¡¼¥È  


8.6.1 °ì»þŪ¤Ê¾ðÊó - Æó¤Ä¤Î¼ÂÁõ

¸À¸ì¤Ë°Í¸¤»¤º¤Ë¥á¥Ã¥»¡¼¥¸¤ò°·¤¦Æó¤Ä¤Î¼êË¡¤¬¤¢¤ê¤Þ¤¹¡£°ì¤Ä¤ÏX/Open¤Î catgets¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤â¤¦°ì¤Ä¤ÏUniforum¤Îgettext¤Ë¤è¤ë¤â ¤Î¤Ç¤¹¡£catgets¤Ë¤è¤ëÊýË¡¤Ç¤Ï¡¢À°¿ô¤Ë¤è¤Ã¤Æ¥á¥Ã¥»¡¼¥¸¤ò»ØÄꤷ¤Þ¤¹¡£ gettext¤Ë¤è¤ëÊýË¡¤Ç¤Ï¡¢±Ñ¸ì¤Î¥á¥Ã¥»¡¼¥¸¤Ë¤è¤Ã¤Æ»ØÄꤷ¤Þ¤¹¡£¡£ catgets¤Ë¤è¤ëÊýË¡¤ÏŤ¯»È¤ï¤ì¡¢Â¿¤¯¤Î¥Ù¥ó¥À¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ gettext¤Ë¤è¤ëÊýË¡¤Ï¤ÏSun¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Æ¡¢COSE¥Þ¥ë¥Á¥Ù¥ó¥À¥¤¥Ë ¥·¥¢¥Æ¥£¥Ö(COSE multivendor initiative)¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ç¤¹¡£¤É¤Á¤é¤â POSIXɸ½à¤È¤Ï¤Ê¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£POSIX.1 °Ñ°÷²ñ¤Ç¤Ï¡¢¤³¤Î·ï¤Ë´Ø¤·¤ÆÍÍ¡¹¤Ê¸« ²ò¤ÎÁê°ã¤¬¤¢¤ê¤Þ¤·¤¿¡£

Æó¤Ä¤Î¼êË¡¤Î¤¤¤º¤ì¤âPOSIXɸ½à¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£gettext¤È catgets(XPG)¥ë¡¼¥Á¥ó¤Î¤¤¤º¤ì¤òɸ½à¤È¤·¤ÆºÎÍѤ¹¤ë¤«¤Ë¤Ä¤¤¤Æ¡¢ POSIX.1 °Ñ°÷²ñ¤Ç¤Ï¤ÏÍÍ¡¹¤ÊµÄÏÀ¤¬¤Ê¤µ¤ì¤Þ¤·¤¿¡£°Ñ°÷²ñ¤Î½ªÈפ˻ê¤Ã¤Æ¤â²¿¤é¤Î ¹ç°Õ¤ÏÆÀ¤é¤ì¤º¡¢·ë¶É¥á¥Ã¥»¡¼¥¸¥ó¥°¥·¥¹¥Æ¥à¤Ïɸ½àµ¬³Ê¤Ë¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ »ä¤ÏXPG3¥á¥Ã¥»¡¼¥¸¥ó¥°¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤¹¤ëÄɵ­¤òɸ½à¤ËÉÕÍ¿¤¹¤ë¤Î¤ÏÍ­±× ¤Ç¤¢¤ë¤È¿®¤¸¤Æ¤¤¤Þ¤¹¤·"...¥á¥Ã¥»¡¼¥¸¥ó¥°¥·¥¹¥Æ¥à¤Î¼ÂÎã¤Ï´û¤Ë¼ÂÁõ¤µ¤ì ¤Æ¤¤¤ë¤Î¤Ç¤¹..."

°Ñ°÷²ñ¤Ï¡¢¤¢¤ë°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¼ÂÁõ¤ò»È¤¦¤Î¤¬Îɤ¤¤È¤¤¤¦¤³¤È¤ò¤É¤Î¾ì ½ê¤Ç¤â¸À¤ï¤Ê¤¤¤è¤¦¤ËÈó¾ï¤ËÃí°Õ¤·¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ÎÏÃÂê¤Ë´Ø¤¹¤ë¤³¤ì°Ê¾å¤Î¾ðÊó ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¹ñºÝ²½¥×¥í¥°¥é¥ß¥ó¥°FAQ(Programming for Internationalization FAQ)¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£


8.6.2 °ì»þŪ¤Ê¾ðÊó - catgets¤Ë¤Ä¤¤¤Æ

catgets¤ò´ðÈפȤ·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ë´Ø¤¹¤ëƤµÄ¤ÎËö´ü¤Ë¤Ï¡¢´ö¤Ä¤«¤ÎµÄÏÀ ¤¬¤¢¤ê¤Þ¤·¤¿¡£¤½¤ÎµÄÏÀ¤ÎòÄ󼨤¹¤ë¤³¤È¤ÏÂçÀÚ¤À¤È»×¤¤¤Þ¤¹¤·¡¢¤³¤ì¤«¤é¡¢ »ä¤Ï¤Á¤ç¤Ã¤È¤·¤¿¤³¤È¤ËÂФ·¤Æ¡Ö°­Ëâ¤ÎÊÛ¸î»Î¡×¤È¤Ê¤Ã¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£

catgets¤Ï¤â¤Ã¤ÈÎɤ¯¥Ç¥¶¥¤¥ó½ÐÍ褿¤Ç¤À¤í¤¦¤È¤¤¤¦¤³¤È¤ÏÈÝÄꤷ¤Þ¤»¤ó¡£ ¤½¤Î¼ÂÁõ¤Ë¤Ï´û¤Ë»ØŦ¤·¤¿¤è¤¦¤ÊÀ©¸Â¤¬¾¯¤Ê¤«¤é¤º¤¢¤ê¤Þ¤¹¡£

¤·¤«¤·¤Ê¤¬¤é¡¢¤½¤Î°ì´ÓÀ­¤Èɸ½à²½¤ÎÅٹ礤¤Ë¤Ä¤¤¤Æ¤Ï ¿½¤·Ê¬¤¢¤ê¤Þ¤»¤ó¡£ UNIX¥½¥Õ¥È¥¦¥§¥¢¤ò½ñ¤¯¤È¤­¤Ë·«¤êÊÖ¤·È¯À¸¤¹¤ë ÌäÂê¤È¤Ï¡¢UNIX¥×¥é¥Ã¥È¥Õ¥©¡¼¥à´Ö¤Ç¤Î°Ü¿¢À­¤Ë´Ø¤¹¤ëÌäÂê¤Ç¤¹¡£¤½¤ì¤ÏÁ´¤Æ¤Î UNIX¥Ù¥ó¥À¤¬¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¾å¤òÄ´¤Ù¤Æ²þÎɤ¹¤ëÉôʬ¤ò¸«¤Ä¤±¤¿¤è¤¦¤Ê ¤â¤Î¤Ç¤¹¡£µ¿¤¤¤â¤Ê¤¯¡¢¤³¤ì¤é¤Î½¤Àµ¤Ï³×¿·Åª¤Ê¤â¤Î¤Ç¤¢¤ê¡¢¸½¼Â¤ÎÌäÂê¤ò²ò·è¤¹ ¤ë¤â¤Î¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¥½¥Õ¥È¥¦¥§¥¢¥Ù¥ó¥À¤¬¤³¤ì¤é¤ÎÊѹ¹¤ò¿¤¯¤Î¥×¥é¥Ã¥È ¥Õ¥©¡¼¥à¤Ç¹Ô¤¤¤Ä¤Å¤±¤ë¤Ë¤Ï¡¢Â¿¤¯¤ÎÏ«ÎϤ¬É¬ÍפǤ¹¡£

¤½¤·¤Æ¤³¤ì¤Ï³ÆUNIX¥Ù¥ó¥À¤¬¼«¼Ò¤Î¥·¥¹¥Æ¥à¤òɸ½à²½¤¹¤ë¤³¤È¤òÂ¥¿Ê¤·¤Þ¤¹¡£ Spec1170¤Ë½àµò¤¹¤ë¤¿¤á¤Ë¤Ç¤¹¡£¡¢³Æ¼çÍ×UNIX¥Ù¥ó¥À¤Ï¤³¤Îɸ½à²½¤Î¤¿¤á¤Ë°Ñ°÷²ñ ¤òÀߤ±¤Þ¤·¤¿¡£¤½¤·¤ÆÁ´¤Æ¤ÎUNIX¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤Ï¤³¤Îɸ½à¤Ë½¾¤Ã¤Æ¥½¥Õ¥È¥¦¥§ ¥¢¤òºîÀ®¤·¡¢°Û¤Ê¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ø¥½¥Õ¥È¥¦¥§¥¢¤òƳÆþ¤¹¤ëºÝ¤Ë¤Ï (autoconf¤ò»È¤¦¤³¤È¤Ê¤¯)¥ê¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤À¤±¤ÇºÑ¤à¤è¤¦¤Ë¤Ê¤ëÆü¤ò¿´ÂÔ¤Á¤Ë¤· ¤Æ¤¤¤ë¤Î¤Ç¤¹¡£

»ä¤ÎÍý²ò¤·¤Æ¤¤¤ë¤È¤³¤í¤Ç¤Ï¡¢Spec1170¤ÏX/Open Portability Guidelines¤Î¥Ð¡¼ ¥¸¥ç¥ó4(XPG4)¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ç¤¹¡£catgets¤È¤½¤ÎâÇ°¤¬XPG4¤ÇÄêµÁ¤µ¤ì ¤Æ¤¤¤ë¤Î¤Ç¡¢»ä¤Ïcatgets¤¬Spec1170¤Î°ìÉô¤Ç¤¢¤ê¡¢¤½¤ì¤¬¤¹¤Ù¤Æ¤ÎUNIX¥· ¥¹¥Æ¥à¤Îɸ½àŪ¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ê¤ë¤³¤È¤ò¿®¤¸¤Æ¤¤¤Þ¤¹¡£


8.6.3 °ì»þŪ¤Ê¾ðÊó - ¤Ê¤¼°ì¤Ä¤Î¼ÂÁõ¤Ê¤Î¤«

¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÆó¤Ä¤Î°Û¤Ê¤ë¥·¥¹¥Æ¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹ ¤ë¤³¤È¤ÏÉԷкѤʤ³¤È¤Î¤è¤¦¤Ë»×¤¨¤Þ¤¹¡£²æ¡¹¤¬catgets¤ÎÉÔ­¤·¤Æ¤¤¤ë¤â ¤Î¤ò²þÁ±¤·¤¿¤¤¤È»×¤Ã¤¿¤Î¤Ê¤é¡¢¤Ê¤¼¿·¤·¤¤¥·¥¹¥Æ¥à¤ò¼ÂÁõ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ catgets¤ò(¸ß´¹À­¤òÊݤÁ¤Ê¤¬¤é)³ÈÄ¥¤·¤è¤¦¤È¤·¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«? ¤¤¤º¤ì ¤Ë¤»¤è²æ¡¹¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥·¥¹¥Æ¥à¤ò¥ª¥Ú¥ì¡¼¥Æ¥£ ¥ó¥°¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÆó¤Ä¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£°ì¤Ä¤ÏGNU¥½¥Õ ¥È¥¦¥§¥¢¤Î¤¿¤á¥ë¡¼¥Á¥ó·²¤Ç¤¢¤ê¡¢¤â¤¦°ì¤Ä¤Ï¤½¤Î¾Á´¤Æ¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤¿¤á¤Î ¥ë¡¼¥Á¥ó·²(catgets)¤Ç¤¹¡£ÐþËý¤Ç¤·¤ç¤¦¤«?

¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ëÊ̤Υ·¥¹¥Æ¥à¤¬¼ÂÁõ¤µ¤ì¤¿¤È²¾Äꤷ¤Æ¤ß¤Þ¤·¤ç¤¦¡£²æ¡¹¤¬ ¤ª¾©¤á¤¹¤ë¤Î¤Ï¤É¤Á¤é¤Ç¤·¤ç¤¦¤«? ¾¯¤Ê¤¯¤È¤âLinux¥·¥¹¥Æ¥à¤ËÂФ·¤Æ¤Ï¡¢²æ¡¹¤Ï ²Äǽ¤Ê¸Â¤ê¿¤¯¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤ò¸Æ¤Ó¹þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢²æ¡¹ ¤Ï¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤¬Èà¤é¤Î¥½¥Õ¥È¥¦¥§¥¢¤ò°Ü¿¢¤·¤ä¤¹¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê ¤Þ¤¹¡£¤½¤·¤Æ¤½¤ì¤Ïcatgets¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£²æ¡¹¤Ï glocale¥³¡¼¥É¤òGNU libcÃæ¤Ë¼ÂÁõ¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢GNU libc¤Ë¤ÏÊ̤Υá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ËÂФ¹¤ë¥¢¥¯¥»¥¹ÊýË¡¤òƱ¤¸¤è¤¦¤Ë¼è¤ê ¹þ¤Þ¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¤·¤ç¤¦¤«? ¤½¤·¤Æ¡¢glocale¤ÈÈó catgets¥ë¡¼¥Á¥ó¤òÁȤ߹ç¤ï¤»¤Æ»È¤ª¤¦¤È¤¹¤ë¿Íã¤Ë´Ø¤·¤Æ¤Ï¤É¤¦¤Ç¤·¤ç¤¦ ¤«? ¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤¬Èà¤é¤Î¥½¥Õ¥È¥¦¥§¥¢¤ò¾¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë°Ü¿¢¤¹¤ë ºÝ¡¢Èà¤é¤Ï¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ëñ¤Ëglocale¤ò´Þ¤á¤ë¤À¤±¤Ç¤Ê¤¯¡¢¥Õ¥í¥ó¥È ¥¨¥ó¥É(glocale)¥³¡¼¥É¤È¡¢¥Ð¥Ã¥¯¥¨¥ó¥É(Èócatgets¥¢¥¯¥»¥¹¥ë¡¼ ¥Á¥ó)¥³¡¼¥É¤òÉÕ¤±²Ã¤¨¤è¤¦¤È¤¹¤ë¤Ç¤·¤ç¤¦¡£

¤·¤«¤·¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥µ¥Ý¡¼¥È¤Ïɹ»³¤Î°ì³Ñ¤Ë²á¤®¤Þ¤»¤ó¡£Â¾¤Î¥í¥«¡¼¥ë¥« ¥Æ¥´¥ê¤Î¥Ç¡¼¥¿¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£¤½¤ì¤é¤â¤Þ¤¿¡¢Â¿¤¯¤ÎÁê°ãÅÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ²æ¡¹¤Ï¤½¤ì¤ËÂн褹¤ë¤³¤È¤òÄü¤á¤Æ¡¢½ÅÊ£¤·¤¿¥ë¡¼¥Á¥ó·²¤òÊÌ¡¹¤Ë³«È¯¤»¤Í¤Ð¤Ê¤é ¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«(glocale¤ò¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥µ¥Ý¡¼¥È°Ê¾å¤Î¤â¤Î¤Ë¤¹ ¤Ù¤­¤Ê¤Î¤Ç¤·¤ç¤¦¤«)?

UNIX¾å¤Î²þÎɲÄǽ¤Ê¿¤¯¤ÎÉôʬ¤ÈƱ¤¸¤è¤¦¤Ë¡¢²æ¡¹¤Ï¾­Íè¤Ë¸þ¤±¤Æ²þÎɤò²Ã¤¨¤Ä¤Ä ¤â¡¢²áµî¤Î¤â¤Î¤ËÂФ¹¤ë¸ß´¹À­¤òÍî¤È¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤·¤¿¡£


8.6.4 °ì»þŪ¤Ê¾ðÊó - ¥Î¡¼¥È

¿¤¯¤Î¼ÂÁõ¤¬ºÇ½ª·Á¼°¤«¤é¤«¤±Î¥¤ì¤¿¤â¤Î¤Ç¤¢¤Ã¤¿¤¿¤á¡¢X/Open¤¬É¸½à·Á¼°¤ò¾µÇ§ ¤¹¤ë¤Î¤ÏÈó¾ï¤ËÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¡£»ä¤Î»È¤Ã¤Æ¤¤¤ëξÊý¤Î¥·¥¹¥Æ¥à(¸Å¤¤Linux catgets¤ÈUltrix-4)¤Ë¤Ï´ñ̯¤Ê¥Ð¥ê¥¨¡¼¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£

ºÇ¸å¤ÎÊѹ¹¤ò²Ã¤¨¤¿¸å¡¢»ä¤ÏGNU/Linux libc¤Îgettext´Ø¿ô·²¤òºî À®¤¹¤ë¤¿¤á¤Ë»þ´Ö¤ò³ä¤«¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£½¾¤Ã¤Æ¡¢¾­ÍèŪ¤Ë¤ÏSolaris¤¬ gettext¤òÈ÷¤¨¤¿Í£°ì¤Î¥·¥¹¥Æ¥à¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£


9. ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ

9.1 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó0  
9.2 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó1  
9.3 µÄÏÀ  
9.4 ÁÈ¿¥  
9.5 ¾ðÊó¤Îή¤ì  


9.1 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó0

GNU¤Ï¹ñºÝ²½¤·¤Ä¤Ä¤¢¤ê¤Þ¤¹! ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ÏÊݼéôÅö¼Ô¡¢ËÝÌõ¼Ô¡¢¤½¤·¤Æ¥æ¡¼ ¥¶¡¼¤òÁ´¤Æ¤Þ¤È¤á¤ë¤â¤Î¤Ç¡¢¤½¤Î¤¿¤áGNU¥½¥Õ¥È¥¦¥§¥¢¤Ï½ù¡¹¤Ë¿¤¯¤Î¸À¸ì¤òÃý¤ë ¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

GNU gettext¥Ä¡¼¥ë¥»¥Ã¥È¤Ë¤Ï¡¢ÊݼéôÅö¼Ô¤¬¥Ñ¥Ã¥±¡¼¥¸¤Î¥á¥Ã¥»¡¼¥¸¤ò¹ñ ºÝ²½¤¹¤ë¤¿¤á¤ËɬÍפȤʤëÁ´¤Æ¤¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬¹ñºÝ²½¤µ ¤ì¤¿¸å¤Ç¡¢ËÝÌõ¼Ô¤¬¥á¥Ã¥»¡¼¥¸¤ÎÃÏ°è²½¤ò¹Ô¤¦ºÝ¤Î½õ¤±¤Ë¤Ê¤ë¤è¤¦¤ÊÊØÍø¤Ê¥Ä¡¼¥ë ¤â¤¢¤ê¤Þ¤¹¡£

ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ò´°¿ë¤¹¤ë¤¿¤á¤Ë¡¢²æ¡¹¤Ï¼«Ê¬¤Î¹ñ¤Î¸ÀÍÕ¤ò°¦¤·¡¢Îɤ¯½ñ¤¯¤³¤È ¤¬½ÐÍè¡¢¤½¤·¤Æ¾¤ÎËÝÌõ¼Ô¤¬Ï䷤Ƥ¤¤ë¤Î¤ÈƱ¤¸¸À¸ì¤Ç½õ¤±¤ë¤³¤È¤Î½ÐÍè¤ë (synergize)ǽÎϤò»ý¤Ã¤¿¿Í´Ö¤ò¿ô¿¤¯É¬ÍפȤ·¤Æ¤¤¤Þ¤¹¡£¤â¤·¤¢¤Ê¤¿¤¬ËÝÌõ¥Á¡¼ ¥à¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤È¤·¤ÆƯ¤¯¤³¤È¤ò˾¤à¤Ê¤é¡¢³ºÅö¤¹¤ëËÝÌõ¥Á¡¼¥à¤Ë¥á¡¼ ¥ë¤ò½Ð¤·¤Æ²¼¤µ¤¤¡£

³Æ¥Á¡¼¥à¤ÏLinux International¤Î¹¥°Õ¤Ë¤è¤ë¼«¿È¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò»ý¤Ã¤Æ¤¤ ¤Þ¤¹¡£`ll@li.org'¤È¤¤¤¦¥¢¥É¥ì¥¹¤Îll¤ò¤¢¤Ê¤¿¤ÎÃíÌܤ¹¤ë¸À ¸ì¤ÎISO 639¤ÎÆóʸ»ú¥³¡¼¥É¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¸À¸ì¤ÎËÝÌõ¥Á¡¼ ¥à¤ËÏ¢Íí¤Ç¤­¤Þ¤¹¡£¸À¸ì¥³¡¼¥É¤ÏISO 3166¤ËÄê¤á¤é¤ì¤Æ¤¤¤ë¹ñ¥³¡¼¥É¤È Ʊ¤¸¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¸½»þÅÀ¤Ç¤Ï°Ê²¼¤ÎËÝÌõ¥Á¡¼¥à¤¬Â¸ºß¤·¤Þ¤¹¡£

¥¢¥¤¥ë¥é¥ó¥É¸ì ga¡¢ ¥¤¥¿¥ê¥¢¸ì it¡¢ ¥¤¥ó¥É¥Í¥·¥¢¸ì in¡¢ ¥¨¥¹¥Ú¥é¥ó¥È¸ì eo¡¢ ¥ª¥é¥ó¥À¸ì nl¡¢ ¥®¥ê¥·¥ã¸ì el¡¢ ¥¹¥¦¥§¡¼¥Ç¥ó¸ì sv¡¢ ¥¹¥Ú¥¤¥ó¸ì es¡¢ ¥Á¥§¥³¸ì cs¡¢ Ãæ¹ñ¸ì zh¡¢ ¥Ç¥ó¥Þ¡¼¥¯¸ì da¡¢ ¥É¥¤¥Ä¸ì de¡¢ ¥È¥ë¥³¸ì tr¡¢ ÆüËܸì ja¡¢ ¥Î¥ë¥¦¥§¡¼¸ì no¡¢ ¥Õ¥£¥ó¥é¥ó¥É¸ì fi¡¢ ¥Õ¥é¥ó¥¹¸ì fr¡¢ ¥Ý¡¼¥é¥ó¥É¸ì pl¡¢ ¥Ý¥ë¥È¥¬¥ë¸ì pt¡¢ ¥í¥·¥¢¸ì ru

²¾¤ËÃæ¹ñ¸ìËÝÌõ¥Á¡¼¥à¤Ë¥á¡¼¥ë¤ò½Ð¤¹¤È¤¹¤ì¤Ð¡¢`[email protected]'¤È¤Ê¤ê¤Þ¤¹¡£ ËÝÌõ¥Á¡¼¥à¤Î¥á¥ó¥Ð¡¼¤Ë¤Ê¤ë¤Ë¤Ï¡¢¤½¤Î¸À¸ì¥Á¡¼¥à¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅÐÏ¿¤¹¤ë ɬÍפ¬¤¢¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢¥¹¥¦¥§¡¼¥Ç¥ó¿Í¤ÏËÜʸ¤Ë°Ê²¼¤ÎÆâÍƤòµ­½Ò¤·¤Æ `[email protected]'¤Ë¥á¡¼¥ë¤ò½Ð¤·¤Þ¤¹¡£

 
subscribe

¥Á¡¼¥à¤Î¥á¥ó¥Ð¡¼¤ÏËÝÌõºî¶È¤Ë¶½Ì£¤ò»ý¤Ä¤Ù¤­¤À¤È¤¤¤¦¤³¤È¤ò¿´¤Ëα¤á¤ÆÃÖ¤¤¤Æ²¼ ¤µ¤¤¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐËÝÌõ¤ò²Ì¤¿¤¹¤³¤È¤ÏÆñ¤·¤¤¤Î¤Ç¤¹¡£¤â¤·¤¬´õ˾¤¹¤ë¸À¸ì¤Î¥Á¡¼ ¥à¤¬¤Þ¤À¸ºß¤»¤º¡¢¤½¤Î¸À¸ì¤Î¥Á¡¼¥à¤òºî¤ê¤¿¤¤¤È¤¤¤¦¾ì¹ç¤Ë¤Ï `[email protected]'¤Þ¤ÇÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£¤½¤ì¤Ë¤è¤Ã ¤ÆÁ´¤Æ¤ÎËÝÌõ¥Á¡¼¥à¤ÎÄ´À°¼Ô¤ËÏ¢Íí¤¬¼è¤ì¤Þ¤¹¡£

°ì°®¤ê¤ÎGNU¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï´ö¤Ä¤«¤Î¸À¸ì¤ËÂФ¹¤ë¥á¥Ã¥»¡¼¥¸¤ÎËÝÌõ¤¬Å¬ÍÑ¡¦Äó¶¡ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥Á¡¼¥à¤ÏÁÈ¿¥²½¤µ¤ì»Ï¤á¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤òµ¯ÅÀ¤È ¤·¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Þ¤À¤Þ¤À¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ê¡¢Â¿¤¯¤Î¸À¸ì¤Ë¤Ä¤¤¤Æ ¤Ï¥Ü¥é¥ó¥Æ¥£¥¢¤ÎËÝÌõ¼Ô¤¬¤¤¤Þ¤»¤ó¡£¤â¤·ËÝÌõ¥Á¡¼¥à¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤È¤·¤Æºî¶È¤· ¤¿¤¤¤È»×¤¦¤Î¤Ç¤·¤¿¤é¡¢`[email protected]'¤Ëºî¶È¤¹¤ë¤³ ¤È¤Î½ÐÍè¤ë¸À¸ì¤òÌÀµ­¤·¤Æ¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£


9.2 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó1

¸½ºß¸ø¼°¤Ë¡¢GNU¤Ï¹ñºÝ²½¤·¤Ä¤Ä¤¢¤ê¤Þ¤¹! °Ê²¼¤Ï1995ǯ1·î¤Î GNU Bulletin¤Ç½Ò ¤Ù¤é¤ì¤¿À¼ÌÀ¤Ç¤¹¡£

°ì°®¤ê¤ÎGNU¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï´ö¤Ä¤«¤Î¸À¸ì¤ËÂФ¹¤ë¥á¥Ã¥»¡¼¥¸¤ÎËÝÌõ¤¬Å¬ÍÑ¡¦Äó¶¡ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥Á¡¼¥à¤ÏÁÈ¿¥²½¤µ¤ì»Ï¤á¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤òµ¯ÅÀ¤È ¤·¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Þ¤À¤Þ¤À¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ê¡¢Â¿¤¯¤Î¸À¸ì¤Ë¤Ä¤¤¤Æ ¤Ï¥Ü¥é¥ó¥Æ¥£¥¢¤ÎËÝÌõ¼Ô¤¬¤¤¤Þ¤»¤ó¡£¤â¤·ËÝÌõ¥Á¡¼¥à¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤È¤·¤Æºî¶È¤· ¤¿¤¤¤È»×¤¦¤Î¤Ç¤·¤¿¤é¡¢`[email protected]'¤Ëºî¶È¤¹¤ë¤³ ¤È¤Î½ÐÍè¤ë¸À¸ì¤òÌÀµ­¤·¤Æ¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

Ëܥɥ­¥å¥á¥ó¥È¤Ï¤½¤Î²áÄø¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤ê¡¢¹×¸¥¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¿Í¡¹¤¬»ý¤Ä ¿¤¯¤Îµ¿Ìä¤ËÅú¤¨¤Þ¤¹¡£´ê¤ï¤¯¤Ð¤¶¤Ã¤ÈÌܤòÄ̤·¡¢GNU¤Î¹ñºÝ²½¤ËÂФ¹¤ë¤³¤Î½¸¹ç ŪÅØÎϤ«¤é»º¤ß½Ð¤µ¤ì¤ëÂçÎ̤Υ᡼¥ë¤Î´ö¤Ð¤¯¤«¤Ç¤â¤òôÅö¤·¤Æ²¼¤µ¤¤¡£

¹­¤¯¶¦ÍѤµ¤ì¤ë¿¤¯¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ï±Ñ¸ì¤Ç¹Ô¤ï¤ì¤Æ¤¤ ¤Þ¤¹¡£¤½¤·¤Æ¸½ºß¤Î¤È¤³¤í¡¢±Ñ¸ì¤ÏGNU¥×¥í¥¸¥§¥¯¥È¤Ë¶¨ÎϤ¹¤ë¹ñ²ÈŪ¥³¥ß¥å¥Ë ¥Æ¥£´Ö¤Ç¤Î¼çÍפʥ³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¸À¸ì¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥É¥­¥å¥á ¥ó¥È¤Ç¤µ¤¨¤â±Ñ¸ì¤Ç½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏÅöÌÌÊѤï¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£

¤·¤«¤·¤Ê¤¬¤é¡¢Â¿¤¯¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ç¼«¹ñ¸ì¤ä¼«¹ñ¤Î½¬´·¤òÍѤ¤¤¿¤¤¤È¤¤¤¦¡¢¹ñ²È Ū¥³¥ß¥å¥Ë¥Æ¥£¤«¤é¤Î¶¯¤¤Íߵ᤬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢GNU¥½¥Õ¥È¥¦¥§¥¢¤ò¤½¤Î¤è¤¦¤Ë ¤¹¤ë¤¿¤á¤ÎÅØÎϤ¬¸½ºß¤â¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î»î¤ß¤Ïº£¤Þ¤Ç¤Î¤È¤³¤í¥×¥ê¥Æ¥¹¥¿¤« ¤é¤ÎÇ®¿´¤ÊÈ¿±þ¤Î¸þ¾å¤Ë¤è¤Ã¤ÆÆ°¤«¤µ¤ì¤Æ¤ª¤ê¡¢²æ¡¹¤ÏGNU¤Î¹ñºÝ²½¤ÏÀ®¸ù¤¹¤ë¤È ¿®¤¸¤Æ¤¤¤Þ¤¹¡£

¤³¤Î¥É¥­¥å¥á¥ó¥È¤ËÂФ¹¤ëÆâÍƤÎÌÀ³Î²½¡¢Äɲá¢ÄûÀµ¤Ë´Ø¤¹¤ëÄó°Æ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ `[email protected]'¤Þ¤Ç¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£


9.3 µÄÏÀ

¤³¤Î¹ñºÝ²½¤Î¸ú²Ì¤òÌܤÎÅö¤¿¤ê¤Ë¤·¤Æ¡¢´ö¿Í¤«¤Î¥æ¡¼¥¶¤¬Èà¤é¤Î¹Í¤¨¤òɽÌÀ¤·¤Æ¤¤ ¤Þ¤¹¡£¾Ò²ð¤µ¤ìµÄÏÀ¤µ¤ì¤¿¤³¤ì¤é¤Îµ¿Ìä¤Î´ö¤Ä¤«¤ò¤³¤³¤Ëµó¤²¤Æ¤ß¤Þ¤·¤ç¤¦¡£


9.4 ÁÈ¿¥

Â礭¤Ê¼ÜÅ٤Ǹ«¤ì¤Ð¡¢¿¿¤Î²ò·èÊýË¡¤ÏÍ­»Ö¤¬»²²Ã¤Ç¤­¤ë¤è¤¦¤Ê¤¢¤ë¼ï¤ÎÀµ¤·¤¯¸·Ì© ¤Ê½¸¹ç¤òÁÈ¿¥²½¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£»ä¤Ï¡¢ºÇ¶á¤³¤Î¥¢¥¤¥Ç¥£¥¢¤Ë¤Ä¤¤¤Æ´ö¤Ä¤«¤Î¹Í »¡¤ò¹Ô¤¤¡¢´ö¤Ä¤«¤ÎÈù̯¤Ê¥Ý¥¤¥ó¥È¤¬¤¢¤ë¤Ç¤¢¤í¤¦¤³¤È¤òǧ¼±¤·¤Æ¤¤¤Þ¤¹¡£»ä¤Ï¡¢ ¤½¤Î¤è¤¦¤Ê¥×¥í¥¸¥§¥¯¥È¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë¡¢Richard Stallman¤ËÏ¢Íí¤¹¤ë¤³¤È¤ò¹Í ¤¨¤Þ¤·¤¿¤¬¡¢¤Þ¤ººÇ½é¤Ë²æ¡¹¤Î´Ö¤Ç¥¢¥¤¥Ç¥£¥¢¤òÍɤêÍî¤È¤¹¤³¤È¤¬Îɤ¤¤À¤í¤¦¤È´¶¤¸ ¤Þ¤·¤¿¡£¤ª¤½¤é¤¯¡¢Linux International¤Ï´û¤Ë¤³¤ÎʬÌî¤Ë¤ª¤±¤ë´ö¤é¤«¤Î·Ð¸³¡¢ ¤Þ¤¿¤Ï¡¢Í­»Ö¤Îºî¶È¤Î¥ª¡¼¥±¥¹¥È¥é¤Î¤è¤¦¤Ê¤â¤Î¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤é¤æ¤ë¾ì¹ç¤Ë¡¢ »×¹Í¤Î¤¿¤á¤Î¿©Êª¤ò!

²æ¡¹¤ÏÁ᡹¤Ë²¿¤é¤«¤ÎÊýË¡¤Ç²¿¤«¤ò¥»¥Ã¥È¥¢¥Ã¥×¤»¤Í¤Ð¤Ê¤é¤Ê¤¤¤È¹Í¤¨¤Þ¤¹¡£Æ±¤¸ ¸À¸ì¤ËÂФ¹¤ëºî¶È¤Î¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤È½ÅÊ£¤òÈò¤±¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢¤½¤ì¤Ï¿¤¯¤Î¸À¸ì ¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿¤ò½õ¤±¤ë¤Ç¤·¤ç¤¦¡£¤½¤·¤Æ¡¢¹¹¤Ë¤½¤ì¤é¤Î¸À¸ì(ÂçÉôʬ¤Î¸À¸ì ¤Ç¤Ïµ»½ÑŪ¤Ê±Ñ¸ì¤ÎËÝÌõ¤Ë¤Ä¤¤¤ÆÆÈÆäÊ¿¤¯¤ÎÌäÂêÅÀ¤¬¤¢¤ê¤Þ¤¹)¤Ë¤Ä¤¤¤Æ¤ÎÆÈÆà ¤ÊÌäÂê¤ò¶¦¤Ë²ò·è¤¹¤ë¤è¤¦¤ËÏ¢Íí¤¬¼è¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¥¹¥¦¥§¡¼¥Ç¥ó¤Î¥³¥ó¥È¥ê ¥Ó¥å¡¼¥¿¤Ï¤³¤ì¤é¤ÎÌäÂêÅÀ¤òǧ¤á¡¢¤½¤·¤Æ»ä¤Ï¥Õ¥é¥ó¥¹¸ì¤Ë¤ª¤¤¤Æ¤Î¤½¤ì¤é¤ÎÌäÂê ÅÀ¤ËÁêÅö¤Ëµ¤¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£

³Î¤«¤Ë¤³¤ì¤Ïµ»½ÑŪÌäÂê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¢¤·¤«¤·²æ¡¹¤Ï¡¢¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿¡¢µÚ¤Ó ´ÉÍý¼Ô´Ö¤Î¹ñ²È¥Á¡¼¥àÁؤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤ï¤é¤º¡¢¥í¥«¡¼¥ë¥³¥ó¥È¥ê¥Ó¥å¡¼ ¥¿¤ÎÅØÎϤ¬ºÇÂç¸Â¤ËÍ­±×¤Ë¤Ê¤ë¤è¤¦¤Ë´ÉÍý¤¹¤ë¤Ù¤­¤Ç¤¹¡£

ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Ï¸À¸ì¥³¡¼¥Ç¥£¥Í¡¼¥¿¤òÅý¹ç¤¹¤ë¤¿¤á¤Ë¤¢¤ë½àÈ÷¤òɬÍפȤ·¤Þ¤¹¡£ °ìÅÙ¤³¤Îºî¶È¤¬»Ï¤á¤é¤ì¤¿¤Ê¤é¡¢È¯Å¸Ãæ¤Î¥×¥í¥°¥é¥à¤Î¥í¡¼¥«¥é¥¤¥º¤Ï¡¢³Î¤«¤Ë¥Õ ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥³¥ß¥å¥Ë¥Æ¥£¤Ë¤ª¤¤¤Æ±Êµ×¤Î¡¢¤½¤·¤Æ¡¢Ï¢Â³Åª¤ÊÆ°¤­¤Ë¤Ê¤ë¤Ç¤·¤ç ¤¦¡£ GNU gettext¤¬¸ø¼°¤Î¸½¼Â¤Ë¤Ê¤ëÁ°¤Ë¡¢ºÇ¾®¸Â¤Î½àÈ÷¤¬´°Î»¤·¡¢¤½¤· ¤Æ¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¹¡£ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹ `[email protected]'¤Ï¡¢¤³¤ì¤é¤ÎÏÃÂê¤Ë´ð¤Å¤¯¥Ü¥é¥ó¥Æ¥£¥¢¡¢ µÚ¤Ó¡¢°ìÈÌŪ¤ÊÅŻҥ᡼¥ë¤«¤é¿½¤·½Ð¤ò¼õ¤±¤ë¤¿¤á¤Î½àÈ÷¤Ç¤·¤¿¡£¤³¤Î¥¢¥É¥ì¥¹¤Ï¡¢ ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿¤ËÆϤ­¤Þ¤¹¡£

9.4.1 Ãæ±û¤Ë¤è¤ëÄ´À°  
9.4.2 ¹ñ²È¥Á¡¼¥à  
9.4.3 ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È  


9.4.1 Ãæ±û¤Ë¤è¤ëÄ´À°

¤½¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë¤è¤ê¤â¹¹¤ËÁ᤯¡¢GNU¤Ï狼¤¬¤½¤ì¤é¤Î¥°¥ë¡¼¥×¤òÁÈ¿¥²½ ¤·Ä´À°¤¹¤ëÊýË¡¤ò½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ë¤È»ä¤â¤Þ¤¿¹Í¤¨¤Þ¤¹¡£¤¢¤ë¼ï¤Î¥°¥ë¡¼¥×¤Î¥° ¥ë¡¼¥×¤Ç¤¹¡£GNU¤Ïľ¤Á¤Ë¶¦Æ±¤ÇƯ¤¤¤Æ¤¤¤ë¥Ü¥é¥ó¥Æ¥£¥¢¤Î¾®¤µ¤Ê¥°¥ë¡¼¥×¤Ë¤³¤Î ¥¿¥¹¥¯¤ò°ÑÂ÷¤¹¤ë¤³¤È¤¬Îɤ¤¤À¤í¤¦¤È¡¢»ä¤Ï¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ ¤ª¤½¤é¤¯¡¢¤³¤Î¹ñ²È °Ñ°÷²ñŪ¤Ê¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤Ï`gnu.announce'¤Ë¤ª¤¤¤Æ¸øɽ¤µ¤ìÆÀ¤Þ¤¹¡£

¥³¡¼¥Ç¥£¥Í¡¼¥¿¤È¤·¤Æ¤Î»ä¤ÎÌò³ä¤Ïñ¤Ë¡¢Ulrich¤ò¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤ÎÃÏ°è²½¤Ë ¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¥É¥¤¥Ä¸ì¤òÏ乥ܥé¥ó¥Æ¥£¥¢¤Ë¾Ò²ð¤¹¤ë¤³¤È¡¢¤½¤·¤Æ¹ñ²ÈŪ¥°¥ë¡¼ ¥×¤Î½àÈ÷¤¬½ÐÍè¤ë¤Þ¤Ç¤Î¹ñ²ÈŪÅÐÏ¿µ¡´Ø¤Î¥á¥ó¥Æ¥Ê¥ó¥¹Ãæ¤Ë¡¢¹ñ²ÈŪ¥°¥ë¡¼¥×¤ÎºÇ ½é¤ÎÁÈ¿¥²½¤ò½õ¤±¤ë¤³¤È¤Ç¤¹¡£¼ÂºÝ¡¢¥³¡¼¥Ç¥£¥Í¡¼¥¿¤Ï¡¢¥Ü¥é¥ó¥Æ¥£¥¢¤¬¹ñ²È¥Á¡¼ ¥à(¸À¸ì¤Þ¤¿¤Ï¹ñ(¶ÉÃÏŪ¸À¸ì)¤Ë¤Ä¤¤¤Æ1¿Í¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿¤òÁªÂò¤¹¤ë¤Ù¤­¤Ç¤¹) ¤òºîÀ®¤¹¤ë¤¿¤á¤ËÁê¸ß¤ÈÏ¢Íí¤ò¼è¤ê¤ä¤¹¤¯¤»¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤¬Àµ¤·¤¯¹Ô¤ï¤ì ¤¿¤Ê¤é¤Ð¡¢¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó¤ÏÉԲĹ³ÎÏŪºî¶È¤ò½ü¤¤¤ÆÊØÍø¤Ê¤â¤Î¤È¤Ê¤ê¡¢ÂåÍý ¿Í¤Ë»þ´Ö¤òǤ¤»¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


9.4.2 ¹ñ²È¥Á¡¼¥à

»ä¤Ï¡¢²æ¡¹¤¬¸Ä¡¹¤Î¸À¸ì¤Î¤¿¤á¤ÎÍ­»Ö¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿/¥¨¥Ç¥£¥¿¤òÁܤ¹¤³¤È¤òÄó °Æ¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¿Í¡¹¤ÏÈà¤é¼«¿È¤Î¸À¸ì¤Î¤¿¤á¤Ë¡¢ÍÍ¡¹¤Ê¥×¥í¥°¥é¥à¤ÎËÝÌõ¥Õ¥¡ ¥¤¥ë¤òõ¤·½Ð¤·¡¢¤½¤·¤Æ¡¢¸ìË¡¤ËÂФ¹¤ë¹âÅ٤ǰìÄê¤Îɸ½à¤òÊݾڤ¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç ¤·¤ç¤¦¡£

º£¤Þ¤Ç¤Î¾¤Î¿Í¡¹¤È¤Î´Ö¤Î»ä¤Î¸½ºß¤Î·Ð¸³¤Ë¤è¤ì¤Ð¡¢ÃÏ°è²½¤ò¼Â¸½¤¹¤ë¿Í¡¹¤Ï¤³¤Î ¥×¥í¥»¥¹¤ËÂФ·¤ÆÈó¾ï¤ËÇ®¿´¤Ç¤¢¤ê¡¢Èà¤é¤Ï¼«Ê¬¼«¿È¤¬ÃÏ°è²½¤¹¤ë¥×¥í¥°¥é¥à¤è¤ê ¤âÃÏ°è²½¤Î¥×¥í¥»¥¹¤Ë¤Û¤¦¤Ë¶½Ì£¤ò»ý¤Á¡¢¤½¤ì¤À¤±¤Ç¤Ê¤¯Â¿¤¯¤Î¥×¥í¥°¥é¥à¤òÃÏ°è ²½¤·¤¿¤¤¤È»×¤¦¤â¤Î¤Ç¤¹¡£¤³¤Î»ö¼Â¤Ï¡¢³Æ¸À¸ì¤Î¤¿¤á¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿/¥¨¥Ç¥£¥¿ ¤ò»ý¤Ä¤³¤È¤ÏÎɤ¤¥¢¥¤¥Ç¥£¥¢¤Ç¤¢¤ë¤³¤È¤ò³Î¿®¤µ¤»¤Þ¤¹¡£

²æ¡¹¤Ï¡¢ÌäÂê¤È¤Ê¤ë¸À¸ì¤Ë¤ª¤¤¤ÆÌÀÎƤ«¤Ä´Ê·é¤Êʸ¾Ï¤ò½ñ¤¯ºÝ¡¢Å¬Ç¤¤È¤Ê¤ë¿Íʪ¤ò ÁªÂò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ÏÆñ¤·¤¤ºî¶È¤Ç¤¹---²æ¡¹¤Ï¡¢¼«Ê¬¼«¿È¤Ç¤½¤ì¤ò¥Á¥§¥Ã ¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£½¾¤Ã¤Æ¡¢²æ¡¹¤Ï¿ô¿Í¤Î¿Í´ÖÂФ·¤Æ¤Ë¸ß¤¤¤Îµ­½Ò¤òȽÃǤ¹ ¤ë¤è¤¦¤ËÍ×ÀÁ¤·¡¢¤½¤·¤ÆºÇŬǤ¼Ô¤òÁªÂò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

»ä¤Ï»ä¤Î¥×¥ì¥ê¥ê¡¼¥¹¤ò20¿Í¤«¤é30¿Í¤Î¿Í¡¹¤Ëȯɽ¤Þ¤·¤¿¤¬¡¢¤½¤Î¥×¥ì¥ê¥ê¡¼¥¹¤¬ ´û¤ËÀ¸¤ß½Ð¤·¤¿Á´¤Æ¤ÎµÄÏÀ¤ò¤¢¤Ê¤¿¤Ï¿®¤¸¤Ê¤¤¤Ç¤·¤ç¤¦¡£»ä¤Ï¡¢¿¿¤Ë¡¢¸ø¼°¤Ë¡¢À¤ ³¦Ãæ¤Ç¤³¤Îºî¶È¤¬³«»Ï¤µ¤ì¤ë¤È¤­¤Ëµ¯¤³¤ë¤Ç¤¢¤í¤¦¤³¤È¤òÁÛÁü¤¹¤ë¤È¿È¿Ì¤¤¤¬¤·¤Þ ¤¹¡£Î㤨¤Ð¡¢Áê¸ß¤ËÈ¿ÏÀ¤·¤¢¤¦Æó¿Í¤Î¥Á¥§¥³¥¹¥í¥ô¥¡¥­¥¢¤Î¥æ¡¼¥¶¡¼¤Î´Ö¤òÃçºÛ¤¹ ¤ë¤Î¤Ï»ä¤Ê¤Î¤Ç¤·¤ç¤¦¤«?

»ä¤¬¤³¤ì¤é¤Î¸ø¼°²½¤Ë¤Ä¤¤¤ÆȽÃǤ¹¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¤è¤¦¤Ë¡¢¤¢¤Ê¤¿¤Î¥É¥¤¥Ä¸ì¤¬ »ä¤Î¥Õ¥é¥ó¥¹¸ì¤è¤ê¤Ï¤ë¤«¤ËÎɤ¤¤È¤Ï¸Â¤é¤Ê¤¤¤È¿ä¬¤·¤Þ¤¹¡£»ä¤¬Äó°Æ¤¹¤ë¤â¤Î¤Ï¡¢ ³Æ¸À¸ì¤ËÂФ·¤ÆPO¥Õ¥¡¥¤¥ë¤ò¥á¥ó¥Æ¥Ê¥ó¥¹¤·¤½¤ÎÊѹ¹¤òȽÄꤹ¤ë¿Í¡¹¤Î¥°¥ë¡¼¥×¤ò ÃÖ¤¯¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤½¤Î¤è¤¦¤Ê¿Í¡¹¤Î¥°¥ë¡¼¥×¤¬¤É¤Î¤è¤¦¤Ë¹ÔÆ°¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¡¢ ¥°¥ë¡¼¥×´Ö¤Ë¤Ïʸ²½Åª¤ÊÁê°ãÅÀ¤¬¤¢¤ë¤È¹Í¤¨¤Þ¤¹¡£´ö¤Ä¤«¤Î¥°¥ë¡¼¥×¤Ï¤Ï´Ë¤¤ÊýË¡ ¤òºÎÍѤ·¡¢´Êñ¤Ë¥³¥ó¥»¥ó¥µ¥¹¤Î°ìÃפË㤷¡¢¥°¥ë¡¼¥×Ãæ¤Îï¤â¤¬Êݼé¼Ô¤Ë´Ø¤ï¤ë ¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°ìÊý¤Ï»à¤Ì¤Þ¤ÇÀ襤¡¢½Å¤¤´ÉÍý¤ò¹ñ²È¤Îɸ½à¤Ë¤Þ¤ÇÁÈ¿¥²½¤·¡¢¸· Ì©¤Ê¥Á¥ã¥Í¥ë¤ò»ÈÍѤ¹¤ë¤Ç¤·¤ç¤¦¡£

¥É¥¤¥Ä¤Î¥Á¡¼¥à¤ÏÎɤ¤Îã¤ò½Ð¤·¤Æ¤¤¤Þ¤¹¡£Ä¾¤Á¤Ë¡¢Èà¤é¤Ï¤ª¤½¤é¤¯¤ª¸ß¤¤¤ÎËÝÌõ¤ò ÄûÀµ¤¹¤ëȾ¿ô¤Î¿Í¡¹¤È¸À¸ì¾å¤ÎÏÀÅÀ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ëȾ¥À¡¼¥¹¤Î¿Í¡¹¤Ç¤¹¡£»ä¤ÏÁ´ ¤Æ¤Î̾Á°¤òÃΤäƤ¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ulrich Drepper¤Ï¥É¥¤¥Ä¤Î¥Á¡¼¥à¤Î¥³¡¼ ¥Ç¥£¥Í¡¼¥È¤òôÅö¤·¤Æ¤¤¤Þ¤¹¡£Èà¤Ï»ä¤Î¥×¥ì¥Æ¥¹¥È¤Î¥ê¥¹¥È¤Î¹ØÆɤò¿½¤·¹þ¤ß¤Þ¤· ¤¿¡£½¾¤Ã¤Æ¡¢»ä¤ÏÈà¤ËÂФ·¤Æ¡¢Ï¢Íí¤µ¤ì¤ë¥ê¥ê¡¼¥¹¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ëɬÍ×¤Ï Æäˤ¢¤ê¤Þ¤»¤ó¡£

³Æ¸À¸ì¤òôÅö¤¹¤ëËÝÌõ¥Á¡¼¥à¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤ì¤Ï¤è¤¤¥¢¥¤¥Ç¥£¥¢¤À¤È»×¤¤¤Þ¤¹¡£ ËÝÌõ¤ò¹¹¤ËÎɤ¯¼óÈø°ì´Ó¤·¤¿¾õÂ֤ˤ¹¤ë¤Ç¤·¤ç¤¦¡£

9.4.2.1 ¥µ¥Ö¥«¥ë¥Á¥ã¡¼  
9.4.2.2 ÁÈ¿¥²½¤Ø¤Î¥¢¥¤¥Ç¥£¥¢  


9.4.2.1 ¥µ¥Ö¥«¥ë¥Á¥ã¡¼

¥Õ¥é¥ó¥¹¸ì¤òÎã¤Ë¼è¤Ã¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥³¥ó¥Ô¥å¡¼¥¿¤ÎÀ¤³¦¤Ç¤Ï¡¢°ÕÌ£¤¬°Û¤Ê¤ë¸ì×à ¤ò»ý¤Ä´ö¤Ä¤«¤Î¥µ¥Ö¥«¥ë¥Á¥ã¡¼¤¬¤¢¤ê¤Þ¤¹¡£ÁÈ¿¥²½¤µ¤ì¤¿ÊýË¡¤Ç¤³¤ÎÌäÂê¤òÄ󵯤¹ ¤ë¤³¤È¤Ê¤·¤Ë¤¢¤Á¤³¤Á¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤òÁª¤ó¤Ç¤¤¤ë¤È¡¢¥×¥í¥¸¥§¥¯¥È¤Ë¤Ï¤¹¤°¤Ë¹ñ ºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¤´¤Á¤ãº®¤¼¾õÂÖ¤¬È¯À¸¤·¤Þ¤¹¡£¤½¤·¤Æ¤³¤È¤Ë¤è¤ë¤È¡¢¼ÂºÝ ¤Ë¤³¤ÎÌäÂê¤òµ¤¤Ë¤¹¤ë¿Í¡¹¤Î´Ö¤Ç½ª¤ê¤Ê¤­¸ýÏÀ¤¬»Ï¤Þ¤ë¤Ç¤·¤ç¤¦¡£

¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò¥Õ¥é¥ó¥¹¸ì¤ØÃÏ°è²½¤¹¤ë²áÄø¤Ë¤ª¤¤¤Æ¡¢¤¢¤ë¼ï¤ÎÅý°ì¤ò ÊݤĤ³¤È¤ÏÆñ¤·¤¤(¤½¤·¤Æ¥Ç¥ê¥±¡¼¥È¤Ê)»Å»ö¤Ç¤¹¡£¥Õ¥é¥ó¥¹¿Í¤Î¥é¥Æ¥ó¤Ê¿ÍÊÁ (:-)¤òÃΤäƤ¤¤Æ¤â¡¢¤â¤·²æ¡¹¤¬¤³¤Î¤³¤È¤ò´Ö°ã¤Ã¤¿ÊýË¡¤Çª¤¨¤ì¤Ð¡¢²æ¡¹¤Ï¤É¤³ ¤È¤âÃΤì¤Ì¾ì½ê¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤«¡¢Â¿¤¯¤Î¥¨¥Í¥ë¥®¡¼¤ò̵Â̤ˤ·¤Æ¤·¤Þ¤¦¤³¤È¤Ç ¤·¤ç¤¦¡£¤ª¤½¤é¤¯²æ¡¹¤Ï¡¢gettext¤¬¸ø¼°¤Ëȯɽ¤µ¤ì¤ëÁ°¤Ë¿¿·õ¤Ë ¤³¤ÎÌäÂê¤Ë¼è¤êÁȤޤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£


9.4.2.2 ÁÈ¿¥²½¤Ø¤Î¥¢¥¤¥Ç¥£¥¢

»ä¤Ï¡¢¸ø¼°¥ê¥ê¡¼¥¹¸å¤Ë¼¡¤ÎÂ礭¤ÊÊѹ¹¤¬¤¢¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£¤É¤¦¤«¡¢»ä¤¬Ã»¤¤ GPL¥á¥Ã¥»¡¼¥¸¤Î¥É¥¤¥Ä¸ìËÝÌõ¤òÍѤ¤¤ë¤³¤È¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£²æ¡¹¤Ï¡¢¥Õ¥ê¡¼ ¥½¥Õ¥È¥¦¥§¥¢¥³¥ß¥å¥Ë¥Æ¥£¤Ë¤ª¤±¤ë¿¿¤ÎÃÏ°è²½¤¬¾Ã¤¨µî¤Ã¤Æ¤·¤Þ¤¦Á°¤Ë2¡¢3¤ÎÎɤ¤ Îã¤ò¼¨¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡¢¤³¤³¤Ç¤Ï¡¢µÄÏÀ¤¬É¬Íפʤ¤¤¯¤Ä¤«¤Î¥Ý¥¤¥ó¥È¤ò¼¨¤·¤Þ¤¹¡£


9.4.3 ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È

GNU gettext¤Ë´Ø¤¹¤ë¤¢¤é¤æ¤ëÌä¹ç¤»¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£

 
`[email protected]'

`*-pretest'¥ê¥¹¥È¤Ï¡¢»ä¤Ë¤È¤Ã¤ÆËÜÅö¤ËÍ­±×¤Ç¤¹¡¢¥¢¥¤¥Ç¥£¥¢¤Ï¤ª¤½¤é¤¯¡¢ ¿¤¯¤ÎGNU¡¢µÚ¤Ó¡¢ÈóGNU¥Ñ¥Ã¥±¡¼¥¸¤Ø¤È°ìÈ̲½¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢Êݼé¼Ô°Ê ³°¤Î¡¢Èà/Èà½÷¤ÎÊýË¡!

François¡¢²æ¡¹¤Ï¡¢¥Á¡¼¥à¡¢¥Á¡¼¥à¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤½¤·¤Æ¥í ¥°¥á¥ó¥Ð¤òÄÉÀפ¹¤ë¤¿¤á¤Ë¡¢`gnu.ai.mit.edu'¤ËŬÅö¤Ê¥á¥«¥Ë¥º¥à¤ò»ý¤Ã¤Æ ¤¤¤Þ¤¹¡£²æ¡¹¤Ï¡¢¤¢¤Ê¤¿¤¬»È¤¦¤ï¤º¤«¤ÊÍ¥À踢¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤¬¤¢¤Ê¤¿¤Ë ¤È¤Ã¤ÆÌäÂê¤Ê¤¤¤Ê¤é¤Ð¡¢»ä¤Ï¤¢¤Ê¤¿¤Ë¾ðÊó¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

»öʪ¤ÏÊѲ½¤·¤Æ¤¤¤Þ¤¹! 2¡¢3ǯÁ°¡¢Daniel Fekete¤È»ä¤¬GNUÃÏ°è²½¤Î¥á¡¼¥ê¥ó¥°¥ê ¥¹¥È(FSF¤ÎÃæ¤Ë¤¢¤Ã¤¿)¤Ë¿Ò¤Í¤¿¤È¤­¡¢²æ¡¹¤Ïºî¶È¤ò¤É¤³¤Ç¤Ç¤âÁÈ¿¥²½¤¹¤ë¤è¤¦¤Ë Îéµ·Àµ¤·¤¯´«¤á¤é¤ì¡¢¤½¤·¤Æ²æ¡¹¤Ï¤½¤ì¤ò¼Â¹Ô¤·¤Þ¤·¤¿¡£»ä¤Î¥×¥ê¥Æ¥¹¥¿¤ÈÏ¢Íí¤ò ¼è¤ë¤¿¤á¤Ë¡¢»ä¤Ïmajordomo¤Ç´ÉÍý¤µ¤ì¤ë¾¯¿ô¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò iro.umontreal.ca¤ËºîÀ®¤·¤Þ¤·¤¿¡£¤³¤ì¤é¤Î¥ê¥¹¥È¤Ïº£¤Þ¤Ç¤Î¤È¤³¤íÈó¾ï¤Ë ¿®Íê¤Ç¤­¤Þ¤·¤¿...

»ä¤Ï¡¢¥É¥¤¥Ä¸ì¤Î¥Á¡¼¥à¤¬¥É¥¤¥Ä¤Ë¤¢¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÁÈ¿¥²½¤·¡¢Â¾¤Î¹ñ¤Ë¤â ÁÈ¿¥²½¤ò¤µ¤»¤ë¤È»×¤¤¤Þ¤¹¡£¤·¤«¤·ÁÈ¿¥²½¤¬¹Ô¤ï¤ì¤ëÁ°¤Ë¡¢FSF¤Ë¤ª¤¤¤Æ³Æ¹ñ¤Î¥Á¡¼ ¥à¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÄ󶡤¹¤ë¤³¤È¤Ï³Î¤«¤ËÍ­±×¤Ç¤·¤ç¤¦¡£¤½¤¦¤Ç¤¹¡¢»ä ¤Ë¤É¤Î¤è¤¦¤Ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤·°·¤¨¤Ð¤è¤¤¤«¤òÀâÌÀ¤·¤Æ²¼¤µ¤¤¡£

²æ¡¹¤Ï°ì»þŪ¤Ê¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¡¢¿Í¡¹¤òÁÈ¿¥²½¤·¤ä¤¹¤¤¤è¤¦¤Ë¹ñ¤´¤È¤Ë°ì¤Ä¤Å ¤Äºî¤é¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤Ê¤¼°ì»þŪ¤«¡¢¤Ê¤¼¤Ê¤é°ìÅٺƹ½À®¤µ¤ì¤¿¤Ê¤é¡¢³Æ¹ñ¤Î¥Ü ¥é¥ó¥Æ¥£¥¢¤ÏÈà¤é¤Î¥ê¥¹¥È¤Ø¤ÈÌá¤Ã¤Æ¤­¤Æ¡¢¤½¤·¤Æ¼«Ê¬Ã£¤¬Ë¾¤à¤è¤¦¤Ë´É Íý¤¹¤ë¤À¤í¤¦¤«¤é¤Ç¤¹¡£¤³¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸Ä¡¹¤Î¥Á¡¼¥à¤Ï¼«Ê¬Ã£¤Î¹ñ¤ÎÃ椫¤é ¼«Ê¬Ã£¤Î¥ê¥¹¥È¤òÆ°¤«¤¹¤À¤í¤¦¤È»×¤¤¤Þ¤¹¡£Á´¤Æ¤Î¥Á¡¼¥à¤¬¹ØÆɤ¹¤ë¤³¤È¤Î½ÐÍè¤ë¡¢ Ãæ±û¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âºî¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£


9.5 ¾ðÊó¤Îή¤ì

¥Ñ¥Ã¥±¡¼¥¸¤¬ºÇ½ªÅª¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¸å¡¢¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ë¤Ä¤¤¤Æ¤Î´ö¤Ä¤«¤ÎµÄÏÀ ¤¬¤¢¤ë¤³¤È¤Ç¤·¤ç¤¦¡£º£¡¢¿Í¡¹¤¬¹¹¤ËÎɤ¤´ö¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤òÄó°Æ¤·¤¿¤È¤·¤¿¤é¡¢ ¤¢¤Ê¤¿¤Ï¤É¤¦¤·¤Þ¤¹¤«? ¥¸¥à¡¢»ä¤¬Ä󶡤¹¤ë1¥À¡¼¥¹¶á¤¤ÃÏ°è²½¤µ¤ì¤¿¥×¥í¥°¥é¥à ¤ÈƱÍÍ¡¢¤É¤¦¤«Ä¾¤Á¤Ë¤½¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤ËÃíÌܤ·¤Æ²¼¤µ¤¤¡£»ä¤ÏËÝÌõ¤È¤½¤ì¤é¤Ë ´Ø¤¹¤ëÄ´À°¤ÎξÊý¤ò¼õ¤±¼è¤ë¤Î¤Ç¤¹¡£

»ä¤¬»öÁ°¤Ë¥Æ¥¹¥È¤¹¤ë¤â¤Î¤ò°ì¤ÄÃÖ¤¤¤¿¤Ê¤é¤Ð¡¢Ulrich¤Ï¤½¤Î¹ðÃΤò¼õ¤±¼è¤ê¡¢¤½ ¤·¤Æ¤½¤ì¤òºÇ¸å¤Ë½¤Àµ¤¹¤ë¥É¥¤¥Ä¸ì¤Î¥Á¡¼¥à¤ËÅϤ·¤Þ¤¹¡£¤½¤·¤ÆÈà¤ÏÊݼé¼Ô ¤È¤·¤Æ»ä¤ËËÝÌõ¥Õ¥¡¥¤¥ë¤ò°ú¤­ÅϤ·¤Þ¤¹¡£»ä¤¬Êݼ餷¤Æ¤¤¤Ê¤¤¥Õ¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼ ¥¸¤Ë¤Ä¤¤¤Æ¤Ï²¿¤âʹ¤­¤Þ¤»¤ó¡£»ä¤¬»×¤¦¤Ë¡¢Á´¤Æ¤ÎËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Ë¤ª¤¤¤Æ¤³¤Î ¥¹¥­¡¼¥à¤¬ºî¤é¤ì¤ë¤Ç¤·¤ç¤¦¡£¥»¥­¥å¥ê¥Æ¥£¤Ë´Ø¤ï¤ëÍýͳ¤Î¤¿¤á¤Ë¡¢¤ª¤½¤é¤¯ Ulrich(¼ÂºÝ¤Î¹ñ²ÈŪ¥³¡¼¥Ç¥£¥Í¡¼¥¿)¤Ï»þÀÞËÝÌõ¥×¥í¥¸¥§¥¯¥È(Jim¡¢»ä¡¢Ëô¤Ï Len¤Î¿·¿Í)¤Ë¤è¤Ã¤ÆÊÝ»ý¤µ¤ì¤ëÃæ±û¤Î¥ì¥¸¥¹¥È¥ê¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤Ù¤­¤Ç¤¹¡£

»ä¤Ï¾®¤µ¤ÊGNU¥Ñ¥Ã¥±¡¼¥¸¤Ï°ì½µ´Ö¤Ë°ì¤Ä¤º¤Ä¡¢¤è¤êÂ礭¤Ê¥Ñ¥Ã¥±¡¼¥¸¤Ï¿ô½µ´Ö¤« ¿ô¥õ·î¤ò¤«¤±¤ë¤È¤¤¤¦ÀÕ̳¤ò»ä¼«¿È¤Ë²Ý¤·¡¢12·î¤«1·î¤Ë¤Ï»ä¤Ï¤ËGNU¤ÎÁ´¥Ñ¥Ã¥±¡¼ ¥¸¤ò¹ñºÝ²½¤¹¤ë½àÈ÷¤òÀѶËŪ¤ËÀ°¤¨¤Æ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¡¢¤½¤ì¤Ï¤½¤Î¤è¤¦¤Ë¤ÏÆ°¤­ ¤Þ¤»¤ó¡£»ä¤ÏºÇ½é¤Ë¡¢»ä¤¬ÀÕǤ¤ò»ý¤ÄÁ´¤Æ¤Î¤³¤È¤ò¹Ô¤¤¤Þ¤·¤¿¡£»ä¤Ï¾¤ÎÊݼé¼Ô¤Î ´ö¤é¤«¤ÎÅÁÆ»ºî¶È¤ËÂФ·¤Æ²¿¤â»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤·¤«¤·»ä¤â¤Þ¤¿Â¿¤¯¤Î¥¨¥Í ¥ë¥®¡¼¤ò¼º¤¤¤Þ¤·¤¿---Ʊ¤¸µÄÏÀ¤ò·«¤êÊÖ¤·¤Þ¤¹¡£

¤½¤·¤Æ¡¢ºÇ½é¤ËÃÏ°è²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¤­¡¢²æ¡¹¤Ï¡¢½¹°­¤ÊËÝ Ìõ:- )¤Ë¤Ä¤¤¤Æ¤Î¿¤¯¤ÎÈ¿±þ¤òÆÀ¤ë¤Ç¤³¤È¤·¤ç¤¦¡£³Î¤«¤Ë¡¢¤½¤·¤Æ²æ¡¹¤Ï»öÁ°¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸Êݼé¼Ô¤È¹ñ²È¥Á¡¼¥à¤Î´Ö¤Î¾ðÊó¤Îή¤ì¤òÀ©¸æ¤¹¤ë¤³¤È¤Ë´Ø¤¹¤ëÎɤ¤¥¢¥¤ ¥Ç¥£¥¢¤ò»ý¤ÄɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¤É¤¦¤«¤É¤³¤«¤Ë³ÆPO¥Õ¥¡¥¤¥ë¤Î¿×®¤Ê¥Ò¥¹¥È¥ê¤òÊݸ¤·»Ï¤á¤Æ²¼¤µ¤¤¡£¥³¥á¥ó¥È¤ò ǧ¤á¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¤¤¤º¤ìÊѹ¹¤µ¤ì¤ë¤Ç¤¢¤í¤¦¤³¤È¤ò»ä¤Ï ÃΤäƤ¤¤Þ¤¹¡£³Æ¥Õ¥¡¥¤¥ë¤¬¥í¥°¤Î¤è¤¦¤Ê¤â¤Î¡¢¤½¤·¤Æ¥³¥á¥ó¥È¤äÉÔÊ¿¤Î¿½¤·Î©¤Æ¡¢ Ëô¤Ï¤½¤Î¾¤Î¹×¸¥¤ò¤·¤¿¤¤¤È»×¤¦¿Í¡¹¤Ø¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ý¤Ä¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£ »ä¤Ï¹â®¤Ç¥Õ¥ì¥­¥·¥Ö¥ë¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë´Ø¤¹¤ë¿½¤·Î©¤Æ¤ò¤·¤Þ¤·¤¿¤¬¡¢¤·¤«¤·¤½ ¤ì¤Ï¤Þ¤ÀGNU¤Î°Õ»×·èÄê¼Ô¤Ë¤è¤Ã¤Æ¼õ¤±Æþ¤ì¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£»ä¤¬¤³¤ì¤Ë¤Ä¤¤¤Æ¤è ¤ê¿¤¯¤Î¾ðÊó¤òÆÀ¤¿¤Ê¤é¡¢¤³¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¤ªÏä·¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£


10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ

¥Ñ¥Ã¥±¡¼¥¸¤ÎÊݼéôÅö¼Ô¤Ï¿¤¯¤ÎÀÕǤ¤ò»ý¤Á¤Þ¤¹¡£°ì¤Ä¤Ï¿¤¯¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç ¥Ñ¥Ã¥±¡¼¥¸¤ò´Êñ¤Ë¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡¢¤½¤·¤Æ´û¤Ë½Ò¤Ù¤¿ËâË¡ (see section 7. ¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ)¤¬¥¤¥ó¥¹¥È¡¼¥é¤ä¥¨¥ó¥É¥æ¡¼¥¶¤ËÂФ·¤ÆƯ¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤¹¡£

¤â¤Á¤í¤ó¡¢GNU gettext¤òÇÛÉÛʪ¤ËÅý¹ç¤¹¤ë¤¿¤á¤Ë¤ÏÍÍ¡¹¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢¤³¤Î¾Ï¤Ç¤Ï¤½¤ì¤éÁ´¤Æ¤Î°ìÈÌˡ§¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¤³¤È¤Ï¤·¤Þ¤»¤ó¡£¤½¤ÎÂå ¤ï¤ê¡¢GNUɸ½à¤Ë½¾¤¦¡¢¤Þ¤¿¤µ¤é¤ËÎɤ±¤ì¤ÐGnitsɸ½à¤Ë½¾¤¦ÇÛÉÛʪ¡¢¤½¤·¤Æ¤½¤Î¾ ¿¤¯¤ÎÁÇÀ²¤é¤·¤¤¥Õ¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ²Äǽ¤Ê¸Â¤êºÇ¤âŬÀÚ¤Ê(¤Ê¤¼¤Ê¤é¡¢ GNU gettext¤ÏÆäËÁ´GNU¥×¥í¥¸¥§¥¯¥È¡¢¤½¤·¤Æ¤½¤·¤Æ²Äǽ¤Ê¸Â¤ê¤½¤Î¾¿ ¤¯¤ÎÁÇÀ²¤é¤·¤¤¥Õ¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¹ñºÝ²½¤ò»Ù±ç¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¤«¤é)°ì¤Ä ¤Î¥¢¥×¥í¡¼¥Á¤Ë¤Ä¤¤¤Æ¾ÜÀ⤷¤Þ¤¹¡£½¾¤Ã¤Æ¡¢¤³¤³¤ÇÄ󼨤¹¤ëÊݼéôÅö¼Ô¤Î»ëÅÀ¤Ï¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤¬´û¤Ë`configure.in'¥Õ¥¡¥¤¥ë¤ò¤½¤ÎÃæ¤Ë´Þ¤ß¡¢¤½¤·¤Æ Autoconf¤ò»ÈÍѤ·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¤È²¾Äꤷ¤Þ¤¹¡£

¤½¤ì¤Ç¤â¤Ê¤ª¡¢GNU gettext¤ÏGNUɸ½à¤äGNU¤Î½¬´·¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤Â¾¤Î¥Õ¥ê¡¼ ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤È¤Ã¤Æ¤âËÜÅö¤ËÊØÍø¤Ê¤â¤Î¤Ç¤¹¡£¤·¤«¤·¤½¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÊݼé ôÅö¼Ô¤Ï¡¢gettext¤¬¤¤¤«¤Ê¤ë¾õ¶·²¼¤Ç¤â¥Ñ¥Ã¥±¡¼¥¸¤È¶¦¤ËÆ°ºî¤¹¤ë¤è¤¦¤Ë¡¢ ÇÛÉÛʪ¤ÎÁÈ¿¥²½¤Ë¤Ä¤¤¤ÆÁÛÁüÎϤȥ¤¥Ë¥·¥¢¥Æ¥£¥Ö¤ò¼¨¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

¤¿¤È¤¨gettext¤Î¼êË¡¤¬¸½ºß°ÂÄꤷ¤Æ¤¤¤ë¤È¤·¤Æ¤â¡¢Â³¤¯gettext¤Î ¥Ð¡¼¥¸¥ç¥ó¤Î´Ö¤Ç¤Ï¶Ï¤«¤Ê½¤Àµ¤¬É¬ÍפȤʤ뤳¤È¤Ç¤·¤ç¤¦¡£½¾¤Ã¤Æ¡¢¼¡¤Î¥ê¥ê¡¼¥¹ »þ¤Ë¤Ï¤³¤Î¾Ï¤ò¤½¤ì¤Ë¹ç¤¦·Á¤ËÄûÀµ¤¹¤ë¤Ù¤­¤Ç¤¹¡£

10.1 ¥Õ¥é¥Ã¥È¤Þ¤¿¤Ï¥Î¥ó¥Õ¥é¥Ã¥È¤Ê¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤  
10.2 »öÁ°¤ËɬÍפʺî¶È  
10.3 gettextize¥×¥í¥°¥é¥à¤Îµ¯Æ°  
10.4 ºîÀ®¤¹¤ë¤«Êѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë  


10.1 ¥Õ¥é¥Ã¥È¤Þ¤¿¤Ï¥Î¥ó¥Õ¥é¥Ã¥È¤Ê¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤

´ö¤Ä¤«¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï°ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥êÃæ¤ËŸ³«¤µ¤ì¤ë tar¥Õ¥¡¥¤¥ë¤Ë¤è¤Ã¤ÆÇÛÉÛ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Ï¥Õ¥é¥Ã¥È¤ÊÇÛÉÛʪ¤È¸Æ ¤Ð¤ì¤Þ¤¹¡£¤½¤Î¾¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï1³¬ÁؤΥµ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¹½ ¤¤ò»ý¤Á¤Þ¤¹¡£Î㤨¤Ð¡¢`doc/'¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤ÏTexinfo¥Þ¥Ë¥å¥¢ ¥ë¤äman¥Ú¡¼¥¸¤¬³ÊǼ¤µ¤ì¡¢`lib/'¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤ÏC¥é¥¤¥Ö¥é¥ê¤òÃÖ ¤­´¹¤¨¤¿¤êÊä´°¤¹¤ë´Ø¿ô·²¤¬¼ý¤á¤é¤ì¡¢`src/'¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï ¥Ñ¥Ã¥±¡¼¥¸Æȼ«¤Î¥½¡¼¥¹¥³¡¼¥É¤¬¼ý¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤ÎÇÛÉÛʪ¤Ï¥Î¥ó ¥Õ¥é¥Ã¥È¤È¸Æ¤Ð¤ì¤Þ¤¹¡£

¤³¤³¤Ç¤Ï¡¢¥Õ¥é¥Ã¥È¤ÊÇÛÉÛʪ¤Ë¤Ä¤¤¤Æ¤³¤ì°Ê¾å¸ÀµÚ¤·¤Þ¤»¤ó¡£¥Õ¥é¥Ã¥È¤Ê¥Ç¥£¥ì¥¯ ¥È¥ê¹½Â¤¤Ï¡¢GNU gettext¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤¬Æñ¤·¤¯ ¤Ê¤Ã¤Æ¤¤¤¯¤Î¤ÇÉÔÍø¤Ç¤¹¡£Â¿¤¯¤ÎPO¥Õ¥¡¥¤¥ë¤ò°·¤¦¾ì¹ç¡¢Ã±°ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï´ö ʬ»¶¤é¤«¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤â¤Ê¤ê¤Þ¤¹¡£GNU gettextÇÛÉۥѥ屡¼¥¸¤Ë¤Ï¡¢ `misc/'¥Ç¥£¥ì¥¯¥È¥êÃæ¤Ë`combine-sh'¤È¤¤¤¦Ì¾Á°¤Î¥·¥§¥ë¥¹¥¯¥ê¥×¥È ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï`intl/'¥Ç¥£¥ì¥¯¥È¥êÆâ¤ÎÁ´C¥Õ¥¡¥¤¥ë ¤òC¥Õ¥¡¥¤¥ë¤Î¥Ú¥¢(°ì¤Ä¤Î`.c'¥Õ¥¡¥¤¥ë¤È°ì¤Ä¤Î`.h'¥Õ¥¡¥¤¥ë)¤Ë¤¹¤ë ¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤éÆó¤Ä¤ÎÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¥Õ¥é¥Ã¥È¤Ê¥Ç¥£¥ì¥¯¥È¥ê¹½ ¤¤Ë¤è¤ê´Êñ¤ËŬ±þ¤Ç¤­¤ë¤Î¤Ç¡¢¥×¥í¥¸¥§¥¯¥È¤Ë¤³¤ì¤éÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¤òÄɲ乤ë ɬÍפ¬½Ð¤Æ¤¯¤ë¤Ç¤·¤ç¤¦¡£

¤ª¤½¤é¤¯¡¢GNU gettext¼«¿È¤¬¥Î¥ó¥Õ¥é¥Ã¥È¹½Â¤¤ò»ý¤Ã¤Æ¤¤¤ë¤¿¤á¡¢²æ¡¹¤Ë ¤È¤Ã¤Æ¤Ï¤³¤ÎÊýË¡¤Î¤Û¤¦¤¬°·¤¤¤ä¤¹¤¤¤Î¤Ç¤¹¡£¤³¤Î¾Ï¤Î»Ä¤ê¤ÎÉôʬ¤Ç¤Ï¤³¤ÎÊýË¡¤Ë ¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£²¿¿Í¤«¤ÎÊݼéôÅö¼Ô¤Ï¤³¤ì¤ò¤¤¤¤µ¡²ñ¤À ¤Èª¤¨¡¢¥Ñ¥Ã¥±¡¼¥¸¹½Â¤¤òÈó¥Õ¥é¥Ã¥È¤Ê¤â¤Î¤Ë¤¹¤ë¤Ç¤·¤ç¤¦¡£GNU gettext¤ò¥Õ¥é¥Ã¥È¤ÊÇÛÉÛʪ¤ËÂФ·¤ÆŬ±þ¤µ¤»¤ë·Ð¸³¤òº£¸åÀѤó¤À¤Ê¤é¡¢¥Õ ¥é¥Ã¥È¤Ê¹½Â¤¤ò½èÍý¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¿·¤¿¤Ëµ­½Ò¤¹¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£


10.2 »öÁ°¤ËɬÍפʺî¶È

¥Ñ¥Ã¥±¡¼¥¸¤ËGNU gettext¤òŬÍѤµ¤»¤ëÁ°¤Ë¡¢¤ä¤Ã¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ ´ö¤Ä¤«¤Îºî¶È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Îºî¶È¤Ï¡¢¤³¤Î¾Ï¤Ç¤ÎÃí°Õ¤òÃà°ìµ­½Ò¤»¤º¤ËºÑ¤Þ ¤»¤ë¤¿¤á¤Î°ì¼ï¤Î°ìÈÌˡ§¤Ç¤¹¡£¤½¤ì¤é¤Îºî¶È¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Þ¤¹¡£

ÊݼéôÅö¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤ÎÄ󶡤ËÂФ·¤É¤Î¤è¤¦¤ËÍýÁÛŪ¤Ë¿¶Éñ¤¦¤Ù¤­¤«¤Ë¤Ä¤¤¤Æ¡¢ ¾¯¤·ÀâÌÀ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£ÊݼéôÅö¼Ô¤È¤·¤Æ¤ÎÌò³ä¤Ï¡¢ËÝÌõ¥×¥í¥¸¥§¥¯¥È ¤ÎŬÀÚ¤ÊËÝÌõ¥Á¡¼¥à¤ÎÂåɽ¼Ô(µ¿Ì䤬¤¢¤ë¾ì¹ç¤ÏÄó½Ðʪ¤ò `[email protected]'¤ËžÁ÷¤·¤Þ¤¹)¤È¤·¤Æ¤ÎÄ󶡸µ¤ò¾µÇ§¤¹¤ë ¤³¤È¤Ç¤¹¡£PO¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬·ã¤·¤¯²õ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¡¢Àµ¾ï¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤ò˸ ¤²¤Ê¤¤¤³¤È¤¬ÊݾڽÐÍ褿¤é¡¢ºÇ¸å¤Ï¤¿¤Àñ¤Ë¤³¤ì¤é¤ÎPO¥Õ¥¡¥¤¥ë¤òÇÛÉÛʪ¤Î `po/'¥Ç¥£¥ì¥¯¥È¥ê¤ËÆþ¤ì¤ë¤À¤±¤Ç¤¹¡£

ÊݼéôÅö¼Ô¤È¤·¤Æ¡¢¤¢¤Ê¤¿¤ÏËÝÌõ¤¬Å¬ÀÚ¤«´°Á´¤«¤È¤¤¤¦¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤ÎÊó¹ð¤Ë¤Ä ¤¤¤ÆÀÕǤ¤òÉ餦ɬÍפϤʤ¯¡¢¸À¸ì¾å¤ÎÌäÂê¤ËË×Ƭ¤¹¤ë¤³¤È¤ÏÈò¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤» ¤ó¡£ËÝÌõ¥Á¡¼¥à¤Ï¼«¤éÆ°¤­¡¢¤½¤·¤ÆËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ËÂФ¹¤ë¸À¸ì¤ÎÁªÂò¤Ë¤Ä¤¤¤Æ ½¼Ê¬¤ËÀÕǤ¤òÉé¤Ã¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥Á¡¼¥à¤ÏÊݼéôÅö¼Ô¤Ë¤è¤Ã¤ÆÆ°¤«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç ¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò¿´¤Ë»ß¤á¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ÊݼéôÅö¼Ô¤Ï¸À ¸ì¾å¤ÎÌäÂê¤Ë´Ø¤ï¤ë¥æ¡¼¥¶¤È¤Î¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¤ä¡¢¥æ¡¼¥¶¤«¤é¤ÎÊó¹ð¤ÎÁ´¤Æ¤ò Ãí°Õ¿¼¤¯Å¾Á÷¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Å¬ÀÚ¤ÊËÝÌõ¥Á¡¼¥à¤ò½õ¤±¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤Þ¤¿¡¢ ¤½¤ì¤é¤ò¤¤¤«¤Ë¤·¤ÆËÝÌõ¥Á¡¼¥à¤ËÆϤ±¤ë¤«¡¢¤¢¤ë¤¤¤Ï¤É¤Î¤è¤¦¤Ë¤·¤ÆËÝÌõ¥Á¡¼¥à¤Ë ²Ã¤ï¤ì¤Ð¤è¤¤¤«¤ò¥æ¡¼¥¶¤ËÂФ·¤ÆÀâÌÀ¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£¤â¤Ã¤È¤âñ½ã¤ÊÊýË¡¤Ï¡¢ ¥æ¡¼¥¶¤Ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤òÁ÷¤ë¤³¤È¤Ç¤·¤ç¤¦¡£

ÊݼéôÅö¼Ô¤Ï·è¤·¤ÆËÝÌõ¥Á¡¼¥à¤ò̵»ë¤·¤ÆPO¥Õ¥¡¥¤¥ë¤Î¥Ð¥°¥ì¥Ý¡¼¥È¤òŬ ÍѤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤â¤·²¿¿Í¤«¤ÎËÝÌõ¼Ô¤¬Èà½÷¤Î¥Á¡¼¥à¤ÎÃæ¤ÇÏäγﮤòÄϤळ ¤È¤¬Æñ¤·¤¤¤È¤¤¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢Èà½÷¤Ïľ¤ËÊݼéôÅö¼Ô¤ÈËÝÌõ¤ò¼è¤ê·è¤á¤Æ¤â¤è¤¤¤Ç ¤·¤ç¤¦¡£¤·¤«¤·Ä̾ËÝÌõ¥Á¡¼¥à¤Ï¥Á¡¼¥à¼«¿È¤Ç¤½¤ì¤é¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Ù¤­¤Ç¤¹¡£ ÊݼéôÅö¼Ô¤¬ËÝÌõ¥Á¡¼¥à¤Ë´Ø¤·¤ÆËÜÅö¤ËÌäÂ꤬¤¢¤ë¤È¹Í¤¨¤Æ¤¤¤ë¤È¤·¤Æ¤â¡¢Êݼéô Åö¼Ô¤Ï·è¤·¤Æ¥Á¡¼¥à¤ÎÌäÂê¤ò²ò·è¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¡£


10.3 gettextize¥×¥í¥°¥é¥à¤Îµ¯Æ°

GNU gettext¤ò»È¤Ã¤Æ¹ñºÝ²½¤µ¤ì¤¿Á´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢´ö¤Ä¤«¤Î¥Õ¥¡¥¤ ¥ë¤¬¾ï¤Ë¤½¤·¤ÆƱ¤¸¤è¤¦¤ËɬÍפǤ¹¡£°·¤¤¤ä¤¹¤¤¤è¤¦¤Ë¡¢gettextize¥×¥í ¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ËÀµ¤·¤¯ÃÖ¤­¤Þ¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï°Ê ²¼¤Î½ñ¼°¤ò¼è¤ê¤Þ¤¹¡£

 
gettextize [ option... ] [ directory ]

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬»ÈÍѲÄǽ¤Ç¤¹¡£

`-c'
`--copy'
¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤¹¤ëÂå¤ï¤ê¤Ë¡¢É¬Íפʥե¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Þ¤¹¡£¥·¥ó¥Ü ¥ê¥Ã¥¯¥ê¥ó¥¯¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Ñ¥Ã¥±¡¼¥¸¤Ï¾ï¤Ë¥·¥¹¥Æ¥à¤ÎºÇ¿·¤Î gettext¥³¡¼¥É¤ò»ÈÍѤǤ­¤Þ¤¹¤¬¡¢ÊݼéôÅö¼Ô¤¬¥½¡¼¥¹¤ËŬÍѤ¹¤ë´ö¤Ä¤«¤Î ¥á¥«¥Ë¥º¥à¤ò˸³²¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£gettextize¤ò¼Â¹Ô¤¹¤ë¤Î¤Ï´Êñ¤Ê ¤³¤È¤Ç¤¹¤Î¤Ç¡¢¥³¥Ô¡¼¤ò»È¤¦¤³¤È¤Ë´Ø¤¹¤ëÌäÂ꤬ȯÀ¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

`-f'
`--force'
´û¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¶¯À©Åª¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£

`-h'
`--help'
¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£

`--version'
¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£

directory¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤ÏGNU gettext¤¬»È¤ï¤ì¤ë¥Ñ¥Ã ¥±¡¼¥¸¤ÎºÇ¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£ ¥ì¥¯¥È¥ê¤¬¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤Þ¤¹¡£

gettextize¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÍÑ°Õ¤·¤Þ¤¹¡£--force (-f)¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤­´¹¤¨¤é ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

  1. `ABOUT-NLS'¥Õ¥¡¥¤¥ë¤Ï¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥×¥í¥°¥é¥à¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤È¥Ê¥·¥ç¥Ê¥ë¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È ¤Î»ÈÍÑÊýË¡¤Ë´Ø¤¹¤ë¼çÍפʻؼ¨¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤â¤·¤³¤Î¥Õ¥¡¥¤¥ë¤¬´Êñ¤Ë¼ê ¤ËÆþ¤ë¤Î¤Ê¤é¡¢gettextize¤¬½àÈ÷¤¹¤ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤è¤ê¤â¿· ¤·¤¤¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥±¡¼¥¸¤ËÆþ¤ì¤¿¤¤¤È¹Í¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ºÇ¿·¤Î `ABOUT-NLS'¥Õ¥¡¥¤¥ë¤ÏËؤó¤É¤ÎGNU¥¢¡¼¥«¥¤¥Ö¥µ¥¤¥È¤«¤é¼ê¤ËÆþ¤ì¤ë¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£

  2. `po/'¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ¤ÎËÝÌõ¥Õ¥¡¥¤¥ë¤ò¤¤¤Ä¤ÎÆü¤«³ÊǼ¤¹¤ë¤¿¤á¤Ëºî¤é¤ì ¤Þ¤¹¤¬¡¢ºÇ½é¤ÏGNU gettextÇÛÉۥѥ屡¼¥¸Ãæ¤Î `po/Makefile.in.in'¥Õ¥¡¥¤¥ë¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¹(¥Õ¥¡¥¤¥ë̾¤ËÆó¤Ä ¤Î.in¤¬¤Ä¤¤¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤)¡£¤â¤·`po/'¥Ç¥£¥ì¥¯¥È¥ê¤¬´û¤Ë¸ ºß¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢po¥Ç¥£¥ì¥¯¥È¥ê¤È¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¤Þ¤Þ¤Ë¤·¤Æ¡¢ `Makefile.in.in'¤Î¤ß¤¬¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£

  3. `intl/'¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢GNU gettext¤ÎÇÛÉۥѥ屡¼¥¸¤Ë¤¢¤ë `intl/'¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î¥Õ¥¡¥¤¥ë¤ÎËؤó¤É¤¬³ÊǼ¤µ¤ì¤¿¾õÂ֤ǺîÀ®¤µ¤ì¤Þ¤¹¡£ ¤â¤·¥ª¥×¥·¥ç¥ó--force(-f)¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¡¢`intl/'¥Ç¥£ ¥ì¥¯¥È¥ê¤ÏºÇ½é¤«¤é¶õ¤Î¤Þ¤ÞºîÀ®¤µ¤ì¤Þ¤¹¡£

¤â¤·¥µ¥¤¥È¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Î¤Ê¤é¡¢ gettextize¤Ï¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ËËÜÅö¤Ë¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ï¤»¤º¡¢¤½¤ÎÂå¤ï¤ê¤Ë ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢Á´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËɬÍפʥǥ£¥¹ ¥¯¥¹¥Ú¡¼¥¹¤Î½ÅÊ£¤òÈò¤±¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ÇÛÉÛʪ¤«¤étar¥¢¡¼¥«¥¤¥Ö¤òºî ¤ëºÝ¡¢¤¿¤Àñ¤Ë`-h'¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤À¤±¤Ç¡¢¤½¤ì¤¾¤ì¤Î¥ê¥ó¥¯¤Ï¼ÂºÝ¤ËÇÛ ÉÛ¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¶¯Ä´¤·¤¿¤¤¤Î¤Ï¡¢¥á¥¤¥ó¤Î `Makefile.in'¤Î¤¿¤á¤Ëɬ¤ºtar¤È¶¦¤Ë`-h'¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Í ¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£

1¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ª¤¤¤ÆGNU gettext¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Î¿·¤·¤¤¥Õ¥¡¥¤ ¥ë¤ÎËؤó¤É¤¬`intl/'¡¢µÚ¤Ó¡¢ `po/'¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Øʬ¤«¤ì¤Æ¤¤¤ë Íýͳ¤òÍý²ò¤¹¤ë¤Î¤Ï¶½Ì£¿¼¤¤¤³¤È¤Ç¤¹¡£¤³¤ì¤é¤Î2¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î´Ö¤Î1¤Ä¤Î¶è Ê̤ϡ¢`intl/'¤¬GNU gettext¤ò»È¤¦Á´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ª¤¤¤Æ´°Á´¤Ë Ʊ¤¸¤â¤Î¤Ç¤¢¤ê¡¢°ìÊý¡¢ºÇ¶áºîÀ®¤µ¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë(¥Ñ¥Ã¥±¡¼¥¸¤´¤È¤Ë°Û¤Ê¤ë ¤Ï¤º)¤Ï`po/'¤ËÆþ¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£`po/'¥Ç¥£¥ì¥¯¥È¥ê¤¬¼«Ê¬¤Î¤¿¤á ¤Î`Makefile'¤òɬÍפȤ¹¤ë¤¿¤á¡¢`po/'¤Ë¤Ï°ìÈÌŪ¤Ê `Makefile.in.in'¤¬¤¢¤ê¤Þ¤¹¡£¤½¤·¤Æ¡¢`Makefile.in.in'¤ÏÁ´¤Æ¤Î¥Ñ¥Ã ¥±¡¼¥¸¤Ë¤ª¤¤¤ÆƱ¤¸¤Ç¤¢¤êÆÀ¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£


10.4 ºîÀ®¤¹¤ë¤«Êѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë

gettextize¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë²Ã¤¨¤é¤ì¤ë¥Õ¥¡¥¤¥ë°Ê³°¤Ë¤â¡¢ GNU gettext¤È¶¦¤ËŬÀڤ˻ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¿¤¯¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÊѹ¹¤ò²Ã¤¨ ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Makefile¤ÎÀ߷פ䥪¡¼¥È¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó (auto-configuration)¤¬GNUɸ½à¤ËÌ©Àܤ˽¾¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢Êѹ¹ºî¶È¼«ÂΤϹ¹¤Ë´Ê ñ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï¡¢¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆɬÍפȤʤëÊѹ¹¤Ë¤Ä¤¤¤Æ°ì¤Ä°ì ¤ÄÀâÌÀ¤·¤Þ¤¹¡£

°Ê²¼¤Ë¥Õ¥¡¥¤¥ë¤Î°ìÍ÷¤ò¼¨¤·¤Þ¤¹¡£¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëɬÍפÊÁ´¤Æ¤ÎÊѹ¹¤Ë¤Ä ¤¤¤Æ¤Ï¡¢¤½¤ì¤Ë³¤¤¤Æµ­½Ò¤·¤Þ¤¹¡£Â¿¤¯¤ÎÎã¤Ï¡¢GNU gettext 0.10¤½¤ì¼«¿È¤«¤éºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£gettext¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼ ¥¹¥³¡¼¥É¤ò»²¾È¤¹¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£GNU gettext¥Ñ¥Ã¥±¡¼¥¸¤ÏÎɤ¤Îã¤Ç¤¢¤ê¡¢¤½ ¤·¤Æ¤½¤ì¼«¿È¤Îµ¡Ç½¤ò»È¤¦¤¿¤á¤Î¼ÂÁõ¤Î¸¶ËܤȤ·¤Æ»È¤¨¤ë¤«¤é¤Ç¤¹¡£

10.4.1 `po/'°Ê²¼¤Î`POTFILES.in'  
10.4.2 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`configure.in'  
10.4.3 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`aclocal.m4'  
10.4.4 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`acconfig.h'  
10.4.5 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`Makefile.in'  
10.4.6 `src/'°Ê²¼¤Î`Makefile.in'  


10.4.1 `po/'°Ê²¼¤Î`POTFILES.in'

`po/'¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï`POTFILES.in'¥Õ¥¡¥¤¥ë¤¬É¬ÍפǤ¹¡£¤³¤Î¥Õ¥¡¥¤ ¥ë¤ÏÁ´¤Æ¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹¤ËÂФ·¤Æ¡¢ËÝÌõ¤¬É¬ÍפÊʸ»úÎ󤬤ɤΥե¡¥¤¥ë¤Ë¤¢¤ë ¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£°Ê²¼¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

 
# List of source files containing translatable strings.
# Copyright (C) 1995 Free Software Foundation, Inc.

# Common library files
lib/error.c
lib/getopt.c
lib/xmalloc.c

# Package source files
src/gettextp.c
src/msgfmt.c
src/xgettext.c

¥³¥á¥ó¥È¹Ô¤È¶õÇò¹Ô¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤½¤Î¾¤ÎÁ´¤Æ¤Î¹Ô¤Ï¡¢ËÝÌõ¤¬É¬ÍפÊʸ»úÎó¤ò ´Þ¤ó¤Ç¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Ç¤¹(see section 3.2 ¥½¡¼¥¹Ãæ¤Ç¤Î¥Þ¡¼¥¯ÉÕ¤±¤ÎÊýË¡)¡£¤³¤Î¥ê¥¹¥È¤Ç¤Ï¡¢³Æ ¥Õ¥¡¥¤¥ë¤Ï`POTFILES.in'¥Õ¥¡¥¤¥ë¤«¤é¤ÎÁêÂаÌÃ֤ǤϤʤ¯¡¢¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂаÌÃ֤ǵ­½Ò¤·¤Þ¤¹¡£


10.4.2 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`configure.in'

  1. ¥Ñ¥Ã¥±¡¼¥¸¤È¥Ð¡¼¥¸¥ç¥ó¤ÎÀë¸À

    Àë¸À¤¬¹Ô¤ï¤ì¤¿Îã¤ò¼¨¤·¤Þ¤¹¡£

     
    PACKAGE=gettext
    VERSION=0.10
    AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
    AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
    AC_SUBST(PACKAGE)
    AC_SUBST(VERSION)
    

    ¤â¤Á¤í¤ó¡¢`gettext'¤Ï¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î̾Á°¤Ë¡¢ `0.10'¤Ï¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£ ¤³¤ì¤é¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Îtar¥Ñ¥Ã¥±¡¼¥¸¤Î¥Õ¥¡¥¤¥ë̾¤Ë´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë ¤Ç¤·¤ç¤¦(¤³¤³¤Ç¤Ï`gettext-0.10.tar.gz'¤È¤Ê¤ê¤Þ¤¹)¡£

  2. ÍøÍѲÄǽ¤ÊËÝÌõ¤ÎÀë¸À

    ÍøÍѲÄǽ¤Ê¸À¸ì¤Ï¡¢¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿°úÍÑʸ»úÎó¤È¤·¤ÆALL_LINGUAS¤Ë°ì¹Ô ¤ÇÄêµÁ¤·¤Þ¤¹¡£Î㤨¤Ð¤³¤Î¤è¤¦¤Ë¡£

     
    ALL_LINGUAS="de fr"
    

    ¤³¤ÎÎã¤Ï¡¢¥É¥¤¥Ä¸ì¤È¥Õ¥é¥ó¥¹¸ì¤¬¥Ñ¥Ã¥±¡¼¥¸¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Ù¤¯¡¢¤³¤ÎÆó¤Ä¤Î ¸À¸ì¤ÎPO¥Õ¥¡¥¤¥ë¤¬»ÈÍѲÄǽ¤Ê¤³¤È¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥¤¥ó¥¹¥È¡¼ ¥ë¸À¸ì¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¹¹¤Ê¤ëÀ©¸Â¤ò¤«¤±¤¿¤¤¤È¤·¤Æ¤â¡¢¤½¤ì¤Ï `configure.in'Ãæ¤ÎALL_LINGUAS¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¦¤Ù¤­¤Ç ¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤½¤ÎÂå¤ï¤ê¤Ë´Ä¶­ÊÑ¿ôLINGUAS¤ò»ÈÍѤ·¤Þ¤¹ (see section 7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡)¡£

  3. ¹ñºÝ²½¥µ¥Ý¡¼¥È¤Î¥Á¥§¥Ã¥¯

    ¤³¤ì¤Ï¡¢¹ñºÝ²½¥µ¥Ý¡¼¥È¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥á¥¤¥ó¤Îm4¥Þ¥¯¥í¤Ç¤¹¡£ `configure.in'¤Ë¼¡¤Î¹Ô¤òÄɲ䷤Ʋ¼¤µ¤¤¡£

     
    AM_GNU_GETTEXT
    

    ¤³¤ì¤Ë¤è¤Ã¤Æ¥Á¥§¥Ã¥¯¤ä¥¢¥¯¥·¥ç¥ó¤Î¤¿¤á¤Ëconfigure¤ËŤ¤»þ´Ö¤¬¤«¤«¤ë¤è¤¦¤Ë ¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤Î¸Æ½Ð¤½¤Î¤â¤Î¤Ï¼Â¤Ë´Êñ¤Ç¤¹¡£

  4. ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎºîÀ®

    `configure.in'¤ÎºÇ¸å¤Ë¤¢¤ëAC_OUTPUT¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ÏÆó¤Ä¤ÎÊýË¡ ¤Ç½¤Àµ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

     
    AC_OUTPUT([existing configuration files intl/Makefile po/Makefile.in],
    existing additional actions])
    

    AC_OUTPUT¤ÎºÇ½é¤Î°ú¿ô¤ËÂФ¹¤ë½¤Àµ¤Ï¡¢`intl/'¤È`po/'¥Ç¥£¥ì ¥¯¥È¥ê¤ÎÃÖ´¹¤ò³Îǧ¤·¤Þ¤¹¡£`.in'¥µ¥Õ¥£¥Ã¥¯¥¹¤¬`po/'¤ËÂФ·¤Æ¤Î¤ß»È ¤ï¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤¡£ÇÛÉÛ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬¼ÂºÝ¤Ë `po/Makefile.in.in'¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£


10.4.3 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`aclocal.m4'

¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Ë`aclocal.m4'¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¡¢¤â¤Ã¤È¤â´Êñ¤Ê²ò·èºö¤Ï¡¢ GNU gettext¤«¤é`aclocal.m4'¤ò¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¤¹¡£¤·¤«¤·¸·Ì©¤Ë ¤Ï¡¢É¬ÍפȤʤë¤Î¤Ï¥Þ¥¯¥íAM_LC_MESSAGES¡¢AM_WITH_NLS¡¢ AM_GNU_GETTEXT¡¢AM_PATH_PROG_WITH_TEST(AM_WITH_NLS¤Ë ¤è¤Ã¤Æ¸Æ¤Ó¤À¤µ¤ì¤ë)¤À¤±¤Ç¤¹¡£½¾¤Ã¤Æ¡¢¥¨¥Ç¥£¥¿¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆɬÍפǤʤ¤ ¥Þ¥¯¥í¤ò¼è¤ê½ü¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

´û¤Ë`aclocal.m4'¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¡¢Á°½Ò¤Î¥Þ¥¯¥í¤ò¤¢¤Ê¤¿¤Î `aclocal.m4'¤Ë¥Þ¡¼¥¸¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤â¤·°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Î gettext¤«¤é¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Æ¤¤¤ë¤Î¤Ê¤é¤Ð¡¢Ä̾GNU gettext¤Î¥ê¥ê¡¼¥¹¤Î´Ö¤Ë¤Ï¾®¤µ¤ÊÊѹ¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤ª¤½¤é¤¯Á°½Ò ¤Î¥Þ¥¯¥í¤òÃÖ¤­´¹¤¨¤ëɬÍפ¬¤¢¤ë¤Ç¤¢¤í¤¦¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤¡£¤½¤ì¤é ¤ÎÆâÍƤϡ¢ÊѤï¤Ã¤¿¥·¥¹¥Æ¥à¤ËÂФ·¤Æ²æ¡¹¤¬Âбþ¤¹¤ë¤¿¤á¤ËÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ ¤»¤ó¡£

¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¹ñºÝ²½¤ò¥µ¥Ý¡¼¥È¤¹¤ë´Ø¿ô¤È¤½¤Î´ØÏ¢¾ðÊó¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£°Â Äê²½¤·¤¿¤Ê¤é¡¢¤ª¤½¤é¤¯¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ïɸ½à¤ÎAutoconf¤Î¥»¥Ã¥È¤ËÁȤ߹þ¤Þ¤ì¤ë ¤³¤È¤Ç¤·¤ç¤¦¡£¤Ê¤¼¤Ê¤é¡¢¤³¤Îm4¥³¡¼¥É¤Ïgettext¤ò»ÈÍѤ¹¤ëÁ´¤Æ ¤Î¥×¥í¥¸¥§¥¯¥È¤ÇƱ¤¸¤â¤Î¤Ë¤Ê¤ë¤È»×¤ï¤ì¤ë¤«¤é¤Ç¤¹¡£


10.4.4 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`acconfig.h'

ÇÛÉÛʪÃæ¤Ë`acconfig.h'¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤â¤Ã¤È¤â´Êñ¤Ê²ò·èºö¤Ï GNU gettext¤«¤é`acconfig.h'¤ò¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¤¹¡£¤·¤«¤·¸·Ì©¤Ë ¤Ï¡¢É¬ÍפȤʤë¤Î¤ÏENABLE_NLS¡¢HAVE_CATGETS¡¢ HAVE_GETTEXT¡¢HAVE_LC_MESSAGES¡¢HAVE_STPCPY¡¢ PACKAGE¡¢VERSION¤¬´Þ¤Þ¤ì¤¿¹Ô¤È¥³¥á¥ó¥È¤À¤±¤Ç¤¹¡£½¾¤Ã¤Æ¡¢¥¨¥Ç¥£ ¥¿¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆɬÍפȤ·¤Ê¤¤Éôʬ¤òÁ´¤Æ¼è¤ê½ü¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ´û¤Ë`acconfig.h'¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¡¢Á°½Ò¤ÎÄêµÁ¤ò¤¢¤Ê¤¿¤Î `acconfig.h'¤Ë¥Þ¡¼¥¸¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£


10.4.5 ¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë`Makefile.in'

¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë¤Î`Makefile.in'¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë´ö¤Ä¤«¤Î½¤ÀµÅÀ¤Ë ¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£

  1. `dist:'¥´¡¼¥ë¤¬Àµ¤·¤¯µ¡Ç½¤¹¤ë¤è¤¦¤Ë(°Ê²¼¤ÇÀâÌÀ¤µ¤ì¤ë¤è¤¦¤Ë)¡¢ `Makefile.in'¤ÎÀèƬ¶á¤¯¤Ë°Ê²¼¤Î¹Ô¤òÄɲ䷤Ʋ¼¤µ¤¤¡£

     
    PACKAGE = @PACKAGE@
    VERSION = @VERSION@
    

  2. DISTFILESÄêµÁ¤Ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤òÄɲ䷤Ʋ¼¤µ¤¤¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÇÛÉÛÂоݤȤʤê¤Þ¤¹¡£

  3. `Makefile.in'Ãæ¤Î¤É¤³¤Ç¤Ç¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò½èÍý¤¹¤ë¤Ë¤·¤Æ¤â¡¢ `intl'¤È`po'¤â¤Þ¤¿½èÍý¤µ¤ì¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£ `Makefiles'Ãæ¤ÎÆÃÊ̤ʥ롼¥ë¤Ï¡¢¹ñºÝ²½¤¬É¬ÍפȤµ¤ì¤Ê¤¤¾ì¹ç¤Ë½èÍý¤ò¹Ô¤¤ ¤Þ¤¹¡£

    automake¤«¤éÀ¸À®¤µ¤ì¤ë¤«¡¢°¿¤¤¤ÏGNU¥³¡¼¥Ç¥£¥ó¥°µ¬Ìó¤ËÃí°Õ¿¼¤¯½¾¤Ã¤¿¼ê½ñ¤­ ¤ÎMakefile¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ë¥´¡¼ ¥ë¤È¤·¤Æ¡¢`installdirs'¡¢`install'¡¢`uninstall'¡¢ `clean'¡¢`distclean'¤ò´Þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£

    ¤³¤³¤Ë¸·Ì©¤Ê½èÍý¤Î½çÈÖ¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÎã¤Ç¤Ï¸å¤Û¤É`dist:'¥´¡¼¥ë¤Ç »È¤¨¤ë¤è¤¦¤Ë¡¢Makefile.in¤ÇSUBDIRS¤ò¤â¤Þ¤¿ÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£

     
    SUBDIRS = doc lib @INTLSUB@ src @POSUB@
    

    ¤³¤ì¤¬¡¢¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤ÆŬÍѤ»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ç¤¹¡£

  4. `dist:'¥´¡¼¥ë¤ÏÂçÀڤʥݥ¤¥ó¥È¤Ç¤¹¡£¤Ê¤¼¤Ê¤é¡¢`intl/Makefile'¤È `po/Makefile'¤Ï¶¦¤Ë¡¢Å¬ÀÚ¤ÊÇÛÉۥǥ£¥ì¥¯¥È¥ê¤¬¥á¥¤¥ó¤Î `Makefile'¤Ë¤è¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¸å¤«¤é²¾Äꤹ¤ë¤«¤é¤Ç¤¹¡£¤³¤³¤Ç `dist:'¤¬¤É¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¤«¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£

     
    distdir = $(PACKAGE)-$(VERSION)
    dist: Makefile
    	rm -fr $(distdir)
    	mkdir $(distdir)
    	chmod 777 $(distdir)
    	for file in $(DISTFILES); do \
    	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \
    	done
    	for subdir in $(SUBDIRS); do \
    	  mkdir $(distdir)/$$subdir || exit 1; \
    	  chmod 777 $(distdir)/$$subdir; \
    	  (cd $$subdir && $(MAKE) $@) || exit 1; \
    	done
    	tar chozf $(distdir).tar.gz $(distdir)
    	rm -fr $(distdir)
    


10.4.6 `src/'°Ê²¼¤Î`Makefile.in'

¥á¥¤¥ó¤Î`Makefile.in'¤ËÂФ·¤Æ¹Ô¤ï¤ì¤¿´ö¤Ä¤«¤Î½¤Àµ¤Ï¡¢¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼ ¥¸¥½¡¼¥¹(¤³¤³¤Ç¤Ï`src/'¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¤È²¾Äꤵ¤ì¤ë)¤Î `Makefile.in'¤ËÂФ·¤Æ¤âɬÍפˤʤë¤Ç¤·¤ç¤¦¡£`src/Makefile.in'¤Ëɬ ÍפȤʤëÁ´¤Æ¤Î½¤Àµ¤ò¼¨¤·¤Þ¤¹¡£

  1. `dist:'¥´¡¼¥ëÍѤˡ¢¤³¤ì¤é¤Î¹Ô¤ò`src/Makefile.in'¤ÎºÇ½é¤Î¤Û¤¦¤Ë¤ª ¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

     
    PACKAGE = @PACKAGE@
    VERSION = @VERSION@
    

  2. ¤Þ¤À¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢top_srcdir¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Ê ¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ïcpp¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¹×¸¥¤¹¤ë¤Ç¤·¤ç¤¦¡£ ¤³¤Î¹Ô¤òÄɲ乤ë¤À¤±¤Ç¤¹¡£

     
    top_srcdir = @top_srcdir@
    

  3. Á´¤Æ¤Î`Makefile.in'Ãæ¤Ç¤Û¤ÜƱ°ì¤Ë`dist:'¥´¡¼¥ë¤ò»ÈÍѤǤ­¤ë¤è¤¦¤Ë¡¢ subdir¤È¤·¤Æ`src'¤â¤Þ¤¿ÄêµÁ¤·¤¿¤¤¤È¹Í¤¨¤ë¤Ç¤·¤ç¤¦¡£¸å¤«¤é½Ò¤Ù ¤ë`dist:'¥´¡¼¥ë¤Ë´Ø¤¹¤ë¹à¤Ç¤Ï¡¢¼¡¤ÎÄêµÁ¤¬¤Ê¤µ¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Þ¤¹¡£

     
    subdir = src
    

  4. ºÇ½ªÅª¤Ê¥ê¥ó¥¯¤Ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ@INTLLIBS@¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ì¤òLIBS¤ËÄɲ䷤Ƥ·¤Þ¤¦¤Î¤¬´Êñ¤Ç¤¹¡£¤³¤Î ¤è¤¦¤Ë¤·¤Þ¤¹¡£

     
    LIBS = @INTLLIBS@ @LIBS@
    

    GNU gettext¤Ë¤è¤Ã¤Æ¹ñºÝ²½¤µ¤ì¤¿Â¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢¥Ó¥ë¥ÉÍѤÎÊä½õ ´Ø¿ô·²¤¬´Þ¤Þ¤ì¤ë¥é¥¤¥Ö¥é¥ê¤òÃÖ¤¯¤¿¤á¤Î`lib/'¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤Ç¤·¤ç ¤¦(¾¯¤Ê¤¯¤È¤â¡¢GNU gettext¥é¥¤¥Ö¥é¥ê¼«¿È¤¬É¬ÍפȤ¹¤ë´ö¤Ä¤«¤Î´Ø¿ô¤¬ ɬÍפˤʤê¤Þ¤¹)¡£¤·¤«¤·`lib/'Ãæ¤Î´ö¤Ä¤«¤Î´Ø¿ô¤Ï¡¢ÅöÁ³¤Ê¤¬¤éËÝÌõ¤µ¤ì¤ë ¤Ù¤­¥á¥Ã¥»¡¼¥¸¤ò¤â¤Þ¤¿´Þ¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Êä½õ¥é¥¤¥Ö ¥é¥ê(`libsupport.a'¤È¤·¤Þ¤·¤ç¤¦)¤òÁ°½Ò¤ÎÎã¤Ë¤ª¤±¤ë @INTLLIBS@¤È@LIBS@¤Î´Ö¤ËÃÖ¤¯¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¹¡£¤½¤ÎÂå¤ê ¤Ë¡¢¤³¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

     
    LIBS = ../lib/libsupport.a @INTLLIBS@ ../lib/libsupport.a @LIBS@
    

  5. `intl/'¥Ç¥£¥ì¥¯¥È¥ê¤â¤Þ¤¿¡¢¤¤¤«¤Ê¤ë¾ì¹ç¤Ç¤â¤½¤ÎÃæ¤Ë¤¢¤ë¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡ ¥¤¥ë¤¬C¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤Æ¸¡º÷¤µ¤ì¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£½¾¤Ã¤Æ¡¢ `-I../intl'¤È`-I$(top_srcdir)/intl'¤ÎξÊý¤¬C¥³¥ó¥Ñ¥¤¥é¤ËÍ¿¤¨¤é¤ì ¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

  6. `dist:'¥´¡¼¥ë¤Ï¾¤Î¤â¤Î¤È°ìÃפ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¤Î´Êñ¤ÊÄêµÁ ¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£

     
    distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
    dist: Makefile $(DISTFILES)
    	for file in $(DISTFILES); do \
    	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \
    	done
    


11. ·ëÏÀ

²æ¡¹¤Ï¤³¤ÎGNU gettext¥Þ¥Ë¥å¥¢¥ë¤òËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ÎÎò»Ë¤Ç¤â¤Ã¤Æ Äù¤á¤¯¤¯¤í¤¦¤È»×¤¤¤Þ¤¹¡£ºÇ¸å¤Ë¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤ÆÆɤó¤À ¤ê¡¢Ä´¤Ù¤¿¤ê¤·¤¿¤¤¿Í¤Î¤¿¤á¤Ë´ö¤Ä¤«¤Î¥Ý¥¤¥ó¥¿¤ò¼¨¤·¤Þ¤¹¡£

11.1 GNU gettext¤ÎÎò»Ë  
11.2 »²¹Íʸ¸¥  


11.1 GNU gettext¤ÎÎò»Ë

¹ñºÝÂбþ¤Î½ÅÍ×À­¤ä¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢Èó¸ø¼°¤Ë¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¤¬ËèÆü¤Î¤è¤¦¤Ë¿ôǯ ¤ËÅϤäÆGNU¤ÇÏÀµÄ¤µ¤ì¤Æ¤­¤Þ¤·¤¿¡£¤È¤­¤Ë¤ÏGNU lib¤Ë´Ø·¸¤·¤Æ¡¢¤¢¤ë¤È ¤­¤ÏHurd¤Ë´Ø·¸¤·¤Æ¡¢¤¢¤ë¤¤¤Ï¤½¤Î¾¤Î¤â¤Î¤Ë´Ø·¸¤·¤Æ¤Ç¤¹(ï¤â¤Ï¤Ã¤­¤ê ¤È¤Ï³Ð¤¨¤Æ¤¤¤Þ¤»¤ó)¡£¤½¤·¤Æ¤½¤ì¤«¤éºî¶È¤Ï¼ÂºÝ¤Ë»Ï¤Þ¤ê¤Þ¤·¤¿¤¬¡¢¤³¤ì¤ÏÀè¤À¤Ã ¤Æ¤ÎµÄÏÀ¤È¤ÏÆÈΩ¤·¤¿¤â¤Î¤Ç¤·¤¿¡£

Á´¤Æ¤Ï¡¢Patrick D'Cruze¤¬GNU fileutils¥Ð¡¼¥¸¥ç¥ó3.9.2¤Î¹ñºÝÂбþ¤Ë¤Ä ¤¤¤Æ¤Î¥¢¥¤¥Ç¥£¥¢¤½¤·¤Æ¼çƳ¸¢¤òÆÀ¤¿¤È¤­¡¢¤Ä¤Þ¤ê1994ǯ¤Î7·î¤Ë»Ï¤Þ¤ê¤Þ¤·¤¿¡£ Èà¤Ï¤½¤ì¤«¤éÊݼéôÅö¼Ô¤Ç¤¢¤ëJim Meyering¤Ë¡¢¹ñºÝÂбþ¤Ë´Ø¤¹¤ëÊѹ¹¤ò¤É¤Î¤è¤¦ ¤Ë¤·¤ÆÀµ¼°¥ê¥ê¡¼¥¹¤Ë´Þ¤á¤ë¤«¤Ë¤Ä¤¤¤Æ¿Ò¤Í¤Þ¤·¤¿¡£ºÇ½é¤Î¥É¥é¥Õ¥È¤Ï #ifdef¤Î²ô¤ÇÌÌ¿©¤é¤¦¤è¤¦¤ÊÂåʪ¤Ç¤·¤¿¤Î¤Ç¡¢Jim¤Ï¤â¤Ã¤ÈÎɤ¤ÊýË¡¤òµá¤á ¤Æ¤¤¤Þ¤·¤¿¡£Patrick¤ÈJim¤Ï¤³¤ÎʬÌî¤Ë¤ª¤¤¤Æ¤Î»î¤ß¤ä·Ð¸³¤ò¶¦Í­¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¤½¤·¤Æ¡¢·ë¶É¤Î¤È¤³¤í¤³¤Îºî¶È¤ÏGNU¤ËÂ礭¤Ê¥¤¥ó¥Ñ¥¯¥È¤òÍ¿¤¨¤ë¤È´¶¤¸¤¿¤Î¤Ç¡¢ Jim¤Ïɸ½à¤¬¤É¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¤«¤òÃΤꤿ¤¯¤Ê¤ê¡¢¤½¤·¤ÆÈà¤ÏRichard Stallman¤Ë¥³¥ó¥¿¥¯¥È¤ò¼è¤ê¤Þ¤·¤¿¡£Richard¤Ï¤½¤Î»þÅÀ¤Ç¡¢glocale¤È¤Ê ¤ë¥³¡¼¥ÉÁ´ÂΤΥǥ¶¥¤¥ó¤Ë¤Ä¤¤¤ÆÈó¾ï¤Ë¼êÁ᤯¤«¤ÄÃúÇ«¤Ëµ­½Ò¤·¤Þ¤·¤¿¡£

Jim¤Ïglocale¤ò¼ÂÁõ¤·¡¢Patrick¤äRichard¤«¤é¿¤¯¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤ò¼õ ¤±¤Þ¤·¤¿¡£¤â¤Á¤í¤ó¡¢Mitchum DSouza(catgets¤Î¤è¤¦¤Ê¥Ñ¥Ã¥±¡¼¥¸¤òµ­½Ò ¤·¤¿)¤äRoland McGrath, ¤Þ¤¿David MacKenzie¤ä Pinard¡¢ Paul Eggert¤é¤«¤é¤Î¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤â¤¢¤ê¤Þ¤·¤¿¡£ÍÍ¡¹¤ÊÊý¸þÀ­¤¬Æþ¤êÍð¤ì¡¢¤· ¤«¤â¤½¤ì¤éÁ´¤Æ¤Ë¸ß´¹À­¤¬¤¢¤ë¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤«¤Ã¤¿¤¿¤á¡¢Æó¡¢»°¤Î¥Æ¥¹¥È¥ê¥ê¡¼ ¥¹¤Î¸å¡¢glocale¤ÏÇË´þ¤µ¤ì¤Þ¤·¤¿¡£

Jim¤¬¤¢¤ëÄøÅÙµ÷Î¥¤È»þ´Ö¤ò¤ª¤­¡¢¤½¤·¤ÆÆó¿ÍÌܤΥѥѤˤʤ俴֤ˡ¢Roland¤Ï GNU libc¤ò¹ñºÝÂбþ¤µ¤»¤¿¤¤¤È˾¤ó¤Ç¤ª¤ê¡¢Ulrich Drepper¤¬¤½¤Î¥×¥í¥¸¥§ ¥¯¥È¤Ë²Ã¤ï¤ê¤Þ¤·¤¿¡£glocale¤«¤éºî¶È¤ò»Ï¤á¤ëÂå¤ï¤ê¤Ë¡¢Ulrich¤Ï°ì¤«¤é ¥³¡¼¥É¤ò½ñ¤­Ä¾¤·¤Þ¤·¤¿¤¬¡¢¤½¤ì¤Ïglocale¤Îºî¶È¤ÇÌÀ¤é¤«¤Ë¤Ê¤Ã¤¿¥¬¥¤¥É ¥é¥¤¥ó¤Ë¤è¤ê°ìÁؽ¾¤¦·Á¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£¤½¤ì¤«¤éUlrich¤Ï°ÊÁ°¤Î¥Õ¥©¡¼¥é¥à¤« ¤é¿·¤·¤¤¥×¥í¥¸¥§¥¯¥ÈÍѤ˿Ͱ÷¤ò³ÍÆÀ¤·¡¢glocale¤ò¤Þ¤º msgutils¤È²þ¾Î¤·¤Þ¤·¤¿¡£¤½¤ì¤Ï¸å¤Ënlsutils¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ê¡¢ ¤µ¤é¤Ëgettext¤È¤¤¤¦Ì¾¾Î¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤ì¤Ï1995ǯ5·îº¢¤ËRichard¤Ë¤è¤Ã ¤Æ¸ø¼°¤Ë¼õÂú¤µ¤ì¤Þ¤·¤¿¡£

Ulrich Drepper¤¬1995ǯ¤Î»Í·î¤ËGNU gettext¤Ç½ñ¤¤¤¿¤³¤È¤Ë¸ÀµÚ¤·¤Æ¤Þ¤È ¤á¤È¤·¤è¤¦¤«¤È»×¤¤¤Þ¤¹¡£PO¥â¡¼¥É¤ò´Þ¤ó¤À¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ½é¤Î¸ø¼°¥ê¥ê¡¼¥¹¤Ï 1995ǯ¤Î7·î¤Ë¹Ô¤ï¤ì¡¢¤½¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ï0.7¤Ç¤·¤¿¡£¤½¤Î¾¤Î¿Í¡¹¤Ï Ulrich¤Î²ó¤ê¤ÎµÄÏÀ¥Õ¥©¡¼¥é¥à¤ÇºîÀ®¤µ¤ì¤¿¡¢¾®¤µ¤Ê¥³¡¼¥É¤Î¤«¤±¤é¤ä¥Æ¥¹¥È¤Î·ë ²Ì¤È¤¤¤Ã¤¿½ô¡¹¤Î¤â¤Î¤ò´ó£¤·¤Þ¤·¤¿¡£Èà¤é¤Î̾Á°¤ÏGNU gettext¤ËÉտ魯 ¤ëTHANKS¥Õ¥¡¥¤¥ë¤ËǼ¤á¤é¤ì¤Þ¤·¤¿¡£

¤³¤Îºî¶È¤¬¿Ê¤ó¤Ç¤¤¤¿´Ö¡¢François¤ÏºÇ½é¤ËȾ¥À¡¼¥¹¤ÎGNU¥Ñ¥Ã¥±¡¼¥¸¤Ë glocale¤ò¡¢Â³¤¤¤Ægettext¤ò¸½ºß¤Î¤è¤¦¤ËŬÍѤ·¤Æ¥×¥ê¥Æ¥¹¥È¤Î¾õ Â֤ˤ·¡¢¿Ê²½¤¹¤ë¥Ä¡¼¥ë¤òÈùÄ´À°¤¹¤ë¤¿¤á¤Î¸ú²ÌŪ¤Ê¥æ¡¼¥¶´Ä¶­¤ò½àÈ÷¤·¤Þ¤·¤¿¡£ Èà¤Ï¤Þ¤¿¡¢ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤òÁÈ¿¥²½¤·Åý¹ç¤¹¤ëÀÕǤ¤ò¤â°ú¤­¼õ¤±¤Þ¤·¤¿¡£ Patrick D'Cruze¤Ï¿¤¯¤Î¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¤Î¤¿¤á¤Î20¤ÎÈó¥â¥Ç¥ì¡¼¥È¤Ê¥á¡¼ ¥ê¥ó¥°¥ê¥¹¥È¡¢¤½¤·¤ÆÆó¤Ä¤Î¥â¥Ç¥ì¡¼¥È¤µ¤ì¤¿¥ê¥¹¥È(°ì¤Ä¤ÏÁ´¤Æ¤Î¥Á¡¼¥à¤Ëľ¤Á ¤ËÆϤ¯¤â¤Î¡¢¤â¤¦°ì¤Ä¤Ï¹ñºÝ²½¤µ¤ì¤¿¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤ÎÁ´¤Æ¤Î¼«È¯ Ū¤Ê´ÉÍý¼Ô¤ËÏ¢Íí¤¹¤ë¤¿¤á¤Î¤â¤Î)¤òºîÀ®¤·´ÉÍý¤·¤Þ¤·¤¿¡£¤½¤·¤Æ¤Û¤Ü°ìǯ¤Î´Ö¤Ë ¿¤¯¤Î¹ñ¡¹¤Î¿Í¡¹¤Î´Ö¤ÇÈó¸ø¼°¤Ê¾ðÊó¸ò´¹¤¬¹Ô¤ï¤ì¡¢ËÝÌõ¼Ô¥Á¡¼¥à¤¬1995ǯ5·î¤Ë ȯ­¤·¤Þ¤·¤¿¡£

¤Ï¤Þ¤¿Greg McGary¤Î¶¨ÎϤò¼õ¤±¡¢1995ǯ¤ÎÏ»·î¤ËPO¥â¡¼¥É¤ò½ñ ¤­¤¢¤²¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏUlrich¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë´ó£¤µ¤ì¤Þ¤·¤¿¡£Èà¤Ï¤Þ¤¿GNU gettext¤ÎTexinfo¥Þ¥Ë¥å¥¢¥ë¤â´ó£¤·¤Æ¤¤¤Þ¤¹¡£


11.2 »²¹Íʸ¸¥

Eugene H. Dorr(`[email protected]')¤ÏInternationalization Reference List¤È¤¤¤¦¹ñºÝ²½Âбþ¤Ë´Ø¤¹¤ë¶½Ì£¿¼¤¤Ê¸¸¥¤ÎÊݼé¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Ï¼¡¤Î¾ì½ê¤ÇÆþ¼ê²Äǽ¤Ç¤¹¡£

 
ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt

Michael Gschwind(`[email protected]')¤ÏProgramming for Internationalisation¤È¤¤¤¦¥¿¥¤¥È¥ë¤Î¡ÖÎɤ¯¤¢¤ë¼ÁÌä¡×(Frequently Asked Questions (FAQ))¤Î¥ê¥¹¥È¤òÊݼ餷¤Æ¤¤¤Þ¤¹¡£¤³¤ÎFAQ¤Ï°Û¤Ê¤ë¸À¸ì´·½¬¡¢ ¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¤Ê¤É¤ò°·¤¦¤³¤È¤¬²Äǽ¤Ê¥×¥í¥°¥é¥à¤Îµ­½Ò¤Ë¤Ä¤¤¤ÆÏÀ¤¸¤Æ¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¤³¤ì¤Ï¡¢ÆäËISO 8859-1µÚ¤ÓÁ´¤Æ¤Î¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° ¤ËÂФ·¤ÆŬÍѤǤ­¤Þ¤¹¡£¤³¤ì¤ÏÄ̾

`comp.unix.questions', `comp.std.internat', `comp.software.international', `comp.lang.c', `comp.windows.x', `comp.std.c', `comp.answers'¡¢ `news.answers'¤È¤¤¤Ã¤¿Usenet¤Î¥°¥ë¡¼¥×¤ËÅê¹Æ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¥É¥­¥å¥á¥ó¥È¤ÎÆþ¼êÀè¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

 
ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming

Patrick D'Cruze(`[email protected]')¤ÏNLS¤Ë´Ø¤¹¤ë¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò½ñ¤­¤Þ ¤·¤¿¡£¤½¤·¤ÆJochen Hein(`[email protected]')¤Ï¤½¤ì¤Ë´Ø¤¹ ¤ëÊݼéºî¶È¤ò°ú¤­·Ñ¤®¤Þ¤·¤¿¡£¤³¤Îʸ½ñ¤Ï¼¡¤Î¾ì½ê¤Ë¤¢¤ê¤Þ¤¹¡£

 
ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
     ...locale-tutorial-0.8.txt.gz
¤³¤Î¥µ¥¤¥È¤Ï°Ê²¼¤Î¥µ¥¤¥È¤Ø¥ß¥é¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
 
ftp://ftp.ibp.fr/pub/linux/sunsite/

Ʊ¤¸¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥Õ¥é¥ó¥¹¸ìÈǤϰʲ¼¤Ë¤¢¤ê¤Þ¤¹¡£

 
ftp://ftp.ibp.fr/pub/linux/french/docs/
¤³¤³¤Ë¤Ï¡¢¥Õ¥é¥ó¥¹¸ì¤ËÌõ¤µ¤ì¤¿Linux´Ø·¸¤Î¥É¥­¥å¥á¥ó¥È¤â¤¢¤ê¤Þ¤¹¡£


A. ¹ñ²È¥³¡¼¥É

ISO 639¤Ï¿¤¯¤Î¹ñ²È¤ËÂФ·¤Æ2ʸ»ú¤Î¥³¡¼¥É¤òµ¬Äꤷ¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥×¥í¥¸¥§ ¥¯¥È¤¬¹ñ²È¤ä¸À¸ì¤ËÂФ·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¾Êά·Á¤Ë¤Ï¡¢¤³¤Îɸ½à¤¬ºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£


[Top] [Contents] [Index] [ ? ]

Footnotes

(1)

¤³¤ÎÀ©¸Â¤ÏGNU gettext¤Ë¤è¤Ã¤Æ¶¯À©¤µ¤ì ¤¿¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢Solaris¤Îmsgfmt¤Î¼ÂÁõ¤«¤éÍè¤Æ¤¤¤Þ¤¹¡£

(2)

Ultrix¤Ê¤É¤Î°ìÉô¤Î¥·¥¹¥Æ¥à¤Ç¤ÏLC_MESSAGES¤ò»ý¤Ã¤Æ ¤¤¤Ê¤Þ¤»¤ó¡£¤³¤³¤Ç²æ¡¹¤Ï¤³¤Î¤¿¤á¤Ë×ó°ÕŪ¤ÊÃÍ(arbitrary value)¤ò»È¤¤¤Þ¤¹¡£

(3)

¥·¥¹¥Æ¥à¤¬setlocale¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤È¤­¡¢¥í¥«¡¼¥ë¤ÎÃÍ ¤òÀßÄꤹ¤ëÆ°ºî¤Ï´Ä¶­ÊÑ¿ô¤ò»²¾È¤¹¤ë¤³¤È¤Ë¤è¤ê¥·¥ß¥å¥ì¡¼¥È¤µ¤ì¤Þ¤¹¡£


[Top] [Contents] [Index] [ ? ]

Table of Contents


[Top] [Contents] [Index] [ ? ]

Short Table of Contents

1. ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó
2. PO¥Õ¥¡¥¤¥ë¤ÈPO¥â¡¼¥É¤Î´ðËÜ
3. ¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î½àÈ÷
4. ºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤Î½àÈ÷
5. ´û¸¤ÎPO¥Õ¥¡¥¤¥ë¤Î¹¹¿·
6. MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®
7. ¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ
8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ
9. ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ
10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ
11. ·ëÏÀ
A. ¹ñ²È¥³¡¼¥É

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated by & Yosiaki on November, 13 2000 using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated by & Yosiaki on November, 13 2000 using texi2html