[Top] | [Contents] | [Index] | [ ? ] |
gettext
¥æ¡¼¥Æ¥£¥ê¥Æ¥£
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
grok8.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 ºîÀ®¤¹¤ë¤«Êѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë
ºîÀ®¤Þ¤¿¤Ï½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¥Õ¥¡¥¤¥ë
·ëÏÀ
11.1 GNU gettext
¤ÎÎò»Ë11.2 »²¹Íʸ¸¥
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï¤Þ¤À¥É¥é¥Õ¥È¾õÂ֤Ǥ¢¤ê¡¢´ö¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤Ï¤Þ¤À¶õ ¤«¤½¤ì¤Ë¶á¤¤¾õÂ֤Ǥ¹¡£²æ¡¹¤ÏºîÀ®¤¬ÃÙ¤ì¤Æ¤¤¤ëÉôʬ¤òÅý¹ç¤·¤Ê¤¬¤é¡¢Â¾¤Î¾ðÊó¸» (ÆäËÅŻҥ᡼¥ë¤Î¥Õ¥©¥ë¥À)¤«¤éŬÀÚ¤ÊÅý¹ç¤¬ÃÙ¤ì¤Æ¤¤¤ë»ñÎÁ¤ò¼è¤ê¹þ¤ß³¤±¤Æ¤¤ ¤Þ¤¹¡£
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤äÊݼéôÅö¼Ô¤Ë¤Ä¤¤¤ÆÏ乤Ȥ¤Ë¤ÏÈà
¤ò¡¢ËÝÌõ¼Ô¤È¤·¤ÆÈà½÷¤ò¡¢ËÝÌõºÑ¤ß¥×¥í¥°¥é¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¿Í
¤ä¥¨¥ó¥É¥æ¡¼¥¶¤È¤·¤ÆÈà¤é¤È¤¤¤¦Ã±¸ì¤ò»ÈÍѤ¹¤·¤Þ¤¹¡£¤³¤ì¤Ï¤³¤Î¥É¥¥å
¥á¥ó¥È¤òÌÀ²÷¤Ë¤¹¤ë¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ê¡¢·è¤·¤ÆÃËÀ¤ä½÷À¤¬²¿¤«¤é
¤ÎÌò³ä¤ò²Ì¤¿¤¹¤Î¤Ë¤è¤êŬ¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤ò°Å¼¨¤¹¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤½¤·¤Æ¤Þ¤¿¡¢¤¢¤Ê¤¿¤¬¹Í¤¨¤ëÄ̤ꡢ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
¤Î³µÍ×
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
¤¬¤É¤Î¤è¤¦¤ËËÝÌõ¥×¥í¥¸¥§¥¯
¥È¤Î»Äºî¶È¤Ë´ØÏ¢¤·¤Æ¤¤¤ë¤«¤Ë¤Ä¤¤¤Æ¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¡¢¤½¤Î·ë²Ì¤È¤·¤Æ
Â礤ʰìË糨¤ò³À´Ö¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥ÞµÚ¤Ó¹¥´ñ¿´¤Î¶¯¤¤¥æ¡¼¥¶¤ÎÌò
¤ËΩ¤Ä¤³¤È¤Ç¤·¤ç¤¦¡£
¥×¥í¥°¥é¥à¤Ç¤Î¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¤È¤¤Ï¡¢¾ï¤ËÆó ¤Ä¤Î¸·Ì©¤Ê°ÕÌ£¤ò»ý¤ÄŤ¤Ã±¸ì¤¬Åо줷¤Þ¤¹¡£internationalization¤È localization¡¢¤³¤ÎÆó¤Ä¤Îñ¸ì¤Ë¤Ï¡¢¤³¤Î¥É¥¥å¥á¥ó¥È¤Î¤¿¤á¤Ë¤³¤³¤Ç ÀâÌÀ¤¹¤ë¤À¤±¤Î²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£¤³¤ÎÆó¤Ä¤ÎŤ¤Ã±¸ì¤ò·«¤êÊÖ¤··«¤êÊÖ¤·½ñ¤¯¤³ ¤È¤ËÈè¤ì¤Æ¤·¤Þ¤Ã¤¿Â¿¤¯¤Î¿Í¡¹¤Ï¡¢¤½¤ì¤ò¤¤Á¤ó¤È½ñ¤¯Âå¤ï¤ê¤Ë¡¢ÀèƬ¤ÈºÇ¸å¤Î ʸ»ú¤ò»Ä¤·¡¢¤½¤Î´Ö¤Ë¤¢¤ëʸ»úÎó¤ò¤½¤ÎŤµ¤ÇÃÖ¤´¹¤¨¤Æi18n¤È l10n ¤È½ñ¤¯¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¤·¤«¤·¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ïʪ»ö¤òÌÀ³Î¤Ë¤¹ ¤ë¤¿¤á¤Ë¡¢¤½¤Î¤¿¤Ó¤Ë¤¤Á¤ó¤ÈÀµ³Î¤Ë½ñ¤¯¤³¤È¤Ë¤·¤Þ¤¹...
¹ñºÝ²½(internationalization)¤Ë¤è¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤È¤Ê
¤ë¥×¥í¥°¥é¥à·²¤Ë¤ª¤±¤ë½èÍý¤ÏÊ£¿ô¤Î¸À¸ì¤òǧ¼±¤·¥µ¥Ý¡¼¥È¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê
¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥à¤«¤é±Ñ¸ì¤Îʸ»úÎó¤ä¤½¤Î¾¤Î±Ñ¸ìÆÃͤδ·½¬¤òÀÚ¤êÎ¥¤·
¤Æ¡¢¤½¤ÎÂå¤ï¤ê¤ËƱ¤¸¤³¤È¤ò¹Ô¤¦°ìÈÌŪ¤ÊÊýË¡¤ò¹Íθ¤¹¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢°ìÈ̲½¤Î¥×
¥í¥»¥¹¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤Î³«È¯¼Ô¤Ï¡¢¼«Ê¬¤¬ºîÀ®¤¹¤ë¥×¥í¥°¥é¥à¤Ë
ÂФ·¤ÆÍÍ¡¹¤Ê¹ñºÝ²½¤Îµ»Ë¡¤ò»È¤¦¤³¤È¤¬¤Ç¤¡¢¤½¤Î¤¦¤Á¤Î´ö¤Ä¤«¤Ïɸ½àŪ¤Ê¤â¤Î¤È
¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£gettext
¤Ï¤³¤ì¤é¤Îɸ½à¤Î°ì¤Ä¤òÄó°Æ¤¹¤ë¤â¤Î¤Ç¤¹¡£
See section 8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ ¡£
ÃÏ°è²½(localization)¤Ë¤è¤Ã¤Æ¡¢´û¤Ë¹ñºÝ²½¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à·²¤Ë¤ª ¤±¤ëÁàºî¤Ë¤ª¤¤¤Æ¡¢¥×¥í¥°¥é¥à¤Ë(¤½¤Î¥×¥í¥°¥é¥à¤¬)ɬÍפȤ¹¤ëÁ´¤Æ¤Î¾ðÊó¤òÍ¿¤¨ ¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ëÆþÎϤä¥×¥í¥°¥é¥à¤«¤é¤Î½ÐÎϤò¤¢¤ë¥Í¥¤¥Æ¥£¥Ö ¥é¥ó¥²¡¼¥¸¤äʸ²½ÅªÆÃÀ(cultual habits)¤Ë¤Ä¤¤¤ÆÀµ¤·¤¯¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤¤ë¤è ¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç´û¤Ë¼ÂÁõ¤µ¤ì¤¿°ìÈÌŪ¤Ê¼êË¡¤ò¡¢Æüì¤Ê ÊýË¡¤Ç»ÈÍѤ¹¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢¤³¤ì¤ÏÆü첽¤Î¥×¥í¥»¥¹¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£¥×¥í¥°¥é ¥ß¥ó¥°´Ä¶¤Ë¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬¼Â¹Ô»þ¤ËÀßÄê¤òÄ´À°½ÐÍè¤ë¤è¤¦¤Ê´ö¤Ä¤«¤Î´Ø¿ô¤¬ÍÑ °Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤¢¤ë¹ñ¤Ç»È¤ï¤ì¤ë¸À¸ì¤òÂоݤȤ·¤¿Á´¤Æ¤Î´ØÏ¢¤·¤¿ËÝÌõ¡¢¤½¤·¤Æ ¤½¤ì¤È¶¦¤Ë»È¤ï¤ì¤ë¤½¤Î¹ñ¤Ë¤ª¤±¤ëʸ²½ÅªÆÃÀ¤Î¸Çͤν¸¹ç¤ò¡¢¤½¤Î¸À¸ì¡¢¹ñ¤ËÂÐ ¤¹¤ë ¥í¥«¡¼¥ë(locale)¤È¤¤¤¤¤Þ¤¹¡£¥æ¡¼¥¶¤Ï¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢ ¤É¤Î¥í¥«¡¼¥ë¤ò»ÈÍѤ¹¤ë¤Î¤«¤ò¼¨¤¹¤¿¤á¤ËÆüì¤Ê´Ä¶ÊÑ¿ô¤ËŬÀÚ¤ÊÃͤòÀßÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¥×¥í¥°¥é¥à¤ÎÃÏ°è²½¤¬¹Ô¤ï¤ì¤Þ¤¹¡£
¼ÂºÝ¤Î¤È¤³¤í¡¢¥í¥«¡¼¥ë¤Ë¤è¤ë¥í¥«¡¼¥ë¥á¥Ã¥»¡¼¥¸¥µ¥Ý¡¼¥È¤Ï¡¢ÆÃÄê¤Î¥í¥«¡¼¥ë¤ò ¹½À®¤¹¤ëʸ²½Åª¥Ç¡¼¥¿(cultural data)¤ÎÍ×ÁǤΰì¤Ä¤Ë²á¤®¤Þ¤»¤ó¡£¹ñºÝ²½¤µ¤ì¤¿ ¥½¥Õ¥È¥¦¥§¥¢¤ò³«È¯¤¹¤ë¥×¥í¥°¥é¥Þ¤Î¼ê½õ¤±¤ò¤·¤¿¤ê¡¢¤¢¤ëÆÃÄê¤Î¥í¥«¡¼¥ë¤Ë°¤¹ ¤ë¥Ç¡¼¥¿¤Ø¤Î¥¢¥¯¥»¥¹¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Î¡¢´°Á´¤Ê¥ë¡¼¥Á¥ó·²¤ä´Ø¿ô·²¤¬Â¸ºß¤·¤Þ¤¹¡£ º£¡¢¤¢¤ë¿Í¤¬¤¢¤ë¥í¥«¡¼¥ë¤ò»²¾È¤¹¤ë¤È¤¹¤ì¤Ð¡¢¤½¤ì¤é¤Î´Ø¿ô·²¤ä¥ë¡¼¥Á¥ó·²¤Ï³º Åö¤¹¤ë¥í¥«¡¼¥ë¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò»²¾È¤·¤Æ¤¤¤Þ¤¹¡£Æ±Íͤˡ¢¤¢¤ë¥×¥í¥°¥é ¥Þ¤¬¡Ö¥í¥«¡¼¥ë¥ë¡¼¥Á¥ó·²¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡×¤È¸À¤Ã¤¿¾ì¹ç¡¢¤½¤ì¤é¤Î´Ø¿ô·²¤ä¥ë¡¼ ¥Á¥ó·²¤È¤Ï¥í¥«¡¼¥ë¤Î¾ðÊóÁ´¤Æ¤Ë¥¢¥¯¥»¥¹¤Ç¤¤ë¥ë¡¼¥Á¥ó·²¤Î´°Á´¤Ê½¸¹ç (complete suite)¤Î¤³¤È¤È¤Ê¤ê¤Þ¤¹¡£
¥×¥í¥°¥é¥àÃæ¤ÇÊ£¿ô¤Î¸À¸ì¤ò»ÈÍѲÄǽ¤È¤¹¤ë¡¢¹ñºÝ²½¤ÈÃÏ°è²½¤ÎξÊý¤òÊñ´Þ¤¹¤ëÆà ħµÚ¤Ó¤½¤Î³èÆ°Á´ÂΤòɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¡¢¤Þ ¤¿¤Ïµ©¤ËNLS¤È¤¤¤¦É½¸½¤¬»È¤ï¤ì¤Þ¤¹¡£Í×Ì󤹤ì¤Ð¡¢¹ñºÝ²½¤È¤ÏÃÏ°è²½¤ò²Äǽ¤È¤¹ ¤ë¤â¤Î¤ò±Û¤¨¤¿½èÍý¤Ç¤¢¤ë¤È¸À¤¨¤ë¤Ç¤·¤ç¤¦¡£
¤Þ¤¿¡¢Èó¾ï¤ËÂ绨ÇĤ˸À¤Ã¤Æ¤·¤Þ¤¨¤Ð¡¢¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¥á¥Ã¥»¡¼¥¸¤ò¼Â¸½¤¹¤ëºÝ¡¢ ¹ñºÝ²½¤Ï°ìÈÌŪ¤Ë¥×¥í¥°¥é¥Þ¤¬Ãí°Õ¤¹¤ë¤³¤È¤Ç¤¢¤ê¡¢ÃÏ°è²½¤Ï°ìÈ̤ËËÝÌõ¼Ô¤¬Ãí°Õ ¤¹¤ë¤³¤È¤È¤Ê¤ê¤Þ¤¹¡£
´°Á´¤Ê¥Þ¥ë¥Á¥ê¥ó¥¬¥ë¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¤¿¤á¤Ë¤Ï¡¢½ÐÎÏ¥á¥Ã¥»¡¼¥¸°Ê³° ¤Ë¤âËÝÌõ¤¹¤Ù¤»öÊÁ¤¬¤¢¤ê¤Þ¤¹¡£
gettext
¤ÏC¥×¥í¥°¥é¥à¤¬½ÐÎϤ¹¤ë¥á¥Ã¥»¡¼¥¸·²¤òËÝÌõ¤¹¤ë¤¿
¤á¤Î´°Á´¤Ê¥Ä¡¼¥ë¥»¥Ã¥È¤òÄ󶡤·¤Þ¤¹¡£perl¥¹¥¯¥ê¥×¥È¤È¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤â¤Þ
¤¿ËÝÌõ¤¬É¬ÍפǤ¹¡£¤·¤«¤·¡¢¤¿¤È¤¨¤³¤ì¤òÀ®¤·¿ë¤²¤ë¤¿¤á¤Î¤¤¤¯¤Ä¤«¤Î¥Õ¥Ã¥¯¤¬
¸½ºß¸ºß¤·¤¿¤È¤·¤Æ¤â¡¢¤½¤ì¤é¤Ï¤Þ¤À¤¤Á¤ó¤ÈÅý¹ç¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
autoconf
¤äbison
¤Î¤è¤¦¤Ê´ö¤Ä¤«¤Î¥×¥í¥°¥é¥à¤Ï¡¢Â¾¤Î¥×¥í¥°¥é¥à
(¤ä¥¹¥¯¥ê¥×¥È)¤òÀ¸À®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤½¤ì¤é¤ÎÀ¸À®¥×¥í¥°¥é¥à¼«¿È¤¬¹ñºÝ²½
¤µ¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¤½¤ì¤é¤ÎÀ¸À®¥×¥í¥°¥é¥à¤¬À¸À®¤·¤¿¥×¥í¥°¥é¥à¤â¹ñºÝ²½¤µ¤ì
¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¡¢¤³¤Î´ÖÀÜŪ¤Ê¹ñºÝ²½¤ÏÀ¸À®Â¦¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ
¼«Æ°²½¤¹¤ë¤³¤È¤â¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¼ÂºÝ¤Î¤È¤³¤í¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ë¤ÏÀ¸À®
¦¤Î¥×¥í¥°¥é¥à¤ÈÀ¸À®¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò¤½¤ì¤¾¤ìÊ̸Ĥ˹ñºÝ²½¤¹¤ë¤è¤¦¤ÊÏ«ÎϤ¬
ɬÍפˤʤë¤Ç¤·¤ç¤¦¡£
recode
¤¬¼Â¹Ô»þ¤ËºÆ¹½À®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë³Æ¥¥ã
¥é¥¯¥¿¤ËÂФ¹¤ë±Ñ¸ìɽµ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Îµ½Ò¤ÏRFC¤«¤éµ¡³£Åª¤ËŸ³«
¤µ¤ì¤¿¤â¤Î¤Ç¤¹¤Î¤Ç¡¢¤³¤ì¤é¤òËÝÌõ¤¹¤ë¤¿¤á¤Ë¤ÏÅöÁ³RFC¼«¿È¤ÎËÝÌõ¤¬»öÁ°¤ËɬÍ×
¤È¤Ê¤ê¤Þ¤¹¡£
gcc
¤¬¶èÊ̤µ¤ì¤¿Ê¸»ú(diacriticized characters)¤ò¼±ÊÌ»ÒÃæ¤äͽÌó¸ìÃæ
¤Ë»È¤Ã¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È˾¤à¤«¤â¤·¤ì¤Þ¤»¤ó¡£`rm -
i'¤Ï¤½¤ì¤ËÂФ¹¤ëÊÖ»ö¤È¤·¤Æ¡¢`y'¤ä`n'°Ê³°¤Î¤â¤Î¤ò¼õ¤±ÉÕ¤±¤ë
¤«¤â¤·¤ì¤Þ¤»¤ó¡£¥×¥í¥°¥é¥à¤¬ºÇ½ªÅª¤Ë¤½¤Î½ÐÎϤΤۤȤó¤É¤ò³°¹ñ¸ì¤Ç¹Ô¤¦¤è¤¦¤Ë
¤Ê¤Ã¤¿¤È¤·¤Æ¤â¡¢ÆþÎϤι½Ê¸¤ä¥ª¥×¥·¥ç¥ó¤ÎÃͤʤɤâÃÏ°è²½¤¹¤ë¤Î¤«¤·¤Ê¤¤¤Î¤«¤ò
·èÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
´û¤Ë¶¯Ä´¤·¤¿¤è¤¦¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤ÎËÝÌõ¤Ï¥í¥«¡¼¥ë¤Î°ì¦Ì̤Ǥ·¤«¤¢¤ê¤Þ¤»¤ó¡£Â¾
¤Î¹ñºÝ²½¤Î¦Ì̤ϸ½ºß¤Î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¤¬¡¢¥µ¥Ý¡¼¥È¤¬·ç¤±¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆÍøÍѤǤ¤ë¤è
¤¦¤Ê¿·¤·¤¯´°Á´¤Ç¹çÍýŪ¤Ê¥í¥«¡¼¥ëµ¡Ç½Á´ÂΤμÂÁõ¤ò¼Â¸½¤¹¤ë¤«¤é¤Ç¤¹¡£
`.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¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¤Æ
¤¤¤Þ¤¹¡£
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 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡)¡¢¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì
¤ì¤Ð¤¤¤Ä¤Ç¤â¼«Æ°Åª¤ËÃÏ°è²½¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£
Ëܥޥ˥奢¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ï¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç½Ò¤Ù¤¿³µÍפò¤è¤ê·¡¤ê²¼¤²¤ÆÀâ ÌÀ¤¹¤ë¤¿¤á¤Î¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£
GNU gettext
¥Ä¡¼¥ë¥»¥Ã¥È¤Ï¡¢¥×¥í¥°¥é¥Þ¤ÈËÝÌõ¼Ô¤¬¼ç¤Ë(¥Æ¥¥¹¥È·Á¼°
¤Ç¡¢ÊÔ½¸²Äǽ¤Ê)PO¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤ÊËÝÌõ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤¿¤ê¡¢¹¹¿·¤·¤¿¤ê¡¢
¤¢¤ë¤¤¤Ï»È¤Ã¤¿¤ê¤¹¤ë¤³¤È¤ò½õ¤±¤ë¤â¤Î¤Ç¤¹¡£¤³¤Î¾Ï¤Ç¤ÏPO¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤È¡¢
PO¥â¡¼¥É¥¹¥¿¡¼¥¿(PO mode starter)¤Î¹½À®¤ò¶¯Ä´¤·¤Þ¤¹¡£PO¥â¡¼¥É¤Îµ½Ò¤Ï°ì¥ö
½ê¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤ª¤é¤º¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ëÁ´ÂΤ˻¶¤é¤Ð¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤³¤Ç
¤ÏPO¥â¡¼¥É¤Î´ðËܤˤĤ¤¤Æ¤Î¤ß²òÀ⤷¤Þ¤¹¡£
2.1 GNU gettext
¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È 2.3 PO¥â¡¼¥É¤Î¼çÍפʥ³¥Þ¥ó¥É ¼çÍפʥ³¥Þ¥ó¥É 2.4 ¥¨¥ó¥È¥ê¤Î°ÌÃÖ 2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½
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) |
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
¥×¥í¥°
¥é¥à¤¬°·¤¤¤Þ¤¹¡£¸½ºß¤Î¤È¤³¤í¡¢Æó¤Ä¤Î·Á¼°¤Î¥Õ¥é¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
msgmerge
¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¦¤ë¤«¡¢¤Þ¤¿¤ÏËÝÌõ¼Ô
¼«¿È¤Ë¤è¤Ã¤ÆÉÕÍ¿¤µ¤ì¤¦¤ë¤â¤Î¤Ç¤¹¡£¤³¤ì¤Ïmsgstr
ʸ»úÎ󤬤ª¤½¤é¤¯Àµ¤·
¤¤ËÝÌõ¤Ç¤Ê¤¤¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï¹¹¤ËËÝÌõ¤ò¿Ê¤á¤ë¤«¡¢¤¢¤ë¤¤¤Ï¸½ºß¤Î
¤Þ¤Þ¤Ç¤¤¤¯¤«¤ò·èÄꤹ¤ë¤À¤±¤Ç¤¹¡£¤Ò¤È¤¿¤ÓËÝÌõ¤¬´°Î»¤·¤¿¤Ê¤é¡¢Èà½÷¤Ï¤³¤Î
Û£Ëæ°À¤ò¼è¤ê½ü¤¤Þ¤¹¡£msgmerge
¥×¥í¥°¥é¥à¤ÏÛ£Ë渡º÷(fuzzy
search)¤Î¸å¤Çmsgid
¤Èmsgstr
¤¬·ë¹ç¤µ¤ì¤¿¤È¤¤Î¤ß¤³¤Î°À¤òÉÕ
Í¿¤·¤Þ¤¹¡£See section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê¡£
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.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-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¥â¡¼¥É¥¢
¥¯¥·¥ç¥ó¤ò¼è¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
PO¥Õ¥¡¥¤¥ë¥¦¥£¥ó¥É¥¦¤Ë¤¢¤ë¥«¡¼¥½¥ë¤Ï¤Û¤È¤ó¤É¾ï¤Ë¥¨¥ó¥È¥ê¤Î°ìÉô¤Ç¤¹¡£Í£°ì¤Î Îã³°¤Ï¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¸å¤í¤Ë¤¢¤ë¾ì¹ç¡¢¤¢¤ë¤¤¤ÏPO¥Õ¥¡¥¤¥ë¤¬¶õ¤Î¾ì ¹ç¤È¤¤¤Ã¤¿Æüì¤Ê¤â¤Î¤Ç¤¹¡£Â¿¤¯¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤Ï¥«¥ì¥ó¥È¥¨¥ó¥È¥ê¤ÇÆ°ºî¤¹ ¤ë¤Î¤Ç¡¢ËÝÌõ¼Ô¤ÏPO¥Õ¥¡¥¤¥ë¤òį¤á¤Æ²ó¤ë¤³¤È¤è¤ê¤â¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë¤³¤È¤Î¤Û ¤¦¤¬Â¿¤¯¤Ê¤ê¤Þ¤¹¡£¥«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¥³¥Þ¥ó¥É¤ÎÁàºîÂÐ¾Ý¤È¤Ê¤ë ¥¨¥ó¥È¥ê¤òÁªÂò¤¹¤ë¤³¤È¤Ë¤â¤Ê¤ê¤Þ¤¹¡£
¤¤¤¯¤Ä¤«¤Î¤ÎPO¥â¡¼¥É¥³¥Þ¥ó¥É¤ÏÆüì¤Ê¤ä¤êÊý¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤òÊѤ¨¤Þ¤¹¡£¤³¤ì¤é ¤ÎÆüì¤ÊÌÜŪ¤Ç¤Î°ÌÃ֤ΰÜÆ°¤Î´ö¤Ä¤«¤ò¤³¤³¤ÇÀâÌÀ¤·¡¢¤½¤Î¾¤Î¤â¤Î¤Ï¤³¤Î¸å¤Î¥» ¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤·¤Þ¤¹¡£
´ö¤Ä¤«¤Î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¤ò»È¤¤¤Þ¤¹¡£
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¥Õ¥¡¥¤¥ë¤Ë¤ª¤±¤ëµ¬Äê¤Î·Á¼°¤Ç¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ·¤Þ ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤ÏºÇ¸å¤Î¥¨¥ó¥È¥ê¤Î¸å¤í¤Ë¤¢¤ë¥´¥ß¤â¼è¤ê½ü¤¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó ¥É¤Ï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" |
ʸ»úÎó¤ÎÀµµ¬²½¤ÎºÙÉô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤Þ¤À´ö¤Ä¤«¤Î̤·èÄê»ö¹à¤¬»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤é¤ÎÌäÂ꤬²ò·è¤·¤¿¤é¡¢¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ËµºÜ¤µ¤ì¤Þ¤¹¡£
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 ÆÃÊ̤ÊËÝÌõÂоÝʸ»úÎó
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
¥í¥«¡¼¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
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"'¤ÏËÝÌõ¤ò ɬÍפȤ·¤Ê¤¤Ê¸»úÎó¤ÎÎã¤Ç¤¹¡£
PO¥â¡¼¥É¤Ë¤ª¤±¤ëµ¡Ç½¤ÏËÝÌõ¼Ô¸þ¤±¤È±¾¤¦¤è¤ê¤Ï¥×¥í¥°¥é¥Þ¸þ¤±¤Ç¤¹¡£¤½¤·¤Æ¡¢¥× ¥í¥°¥é¥Þ¤ËÂФ·¤Æ¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Ë¤¢¤ëʸ»úÎó¤¬ËÝÌõ²Äǽ¤Ç¤¢¤ë¤«¡¢¤½¤¦¤Ç¤Ê ¤¤¤«¤Î¥Þ¡¼¥¯ÉÕ¤±¤òÂÐÏÃŪ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤Î¤è¤¦¤Êʸ »úÎó¤ò¸«¤Ä¤±¤À¤·¤Æ¥Þ¡¼¥¯ÉÕ¤±¤ò¤¹¤ë¤È¤¤¤¦ºî¶È¤¬¡¢¥×¥í¥°¥é¥Þ¤Ë¤È¤Ã¤Æ¼«Ê¬¤Î¹¥ ¤¤Ê¥¨¥Ç¥£¥¿¤ò»È¤Ã¤Æ¹Ô¤¨¤ë¤´¤¯´Êñ¤Êºî¶È¤Ç¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢PO¥â¡¼¥É¤Ï¤³¤Îºî ¶È¤ò¤è¤ê²÷Ŭ¤Ë¤¹¤ë¤Î¤Ç¤¹¡£¹¹¤ËPO¥â¡¼¥É¤Ï¡¢¹ñºÝ²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Î¥×¥í¥°¥é ¥à¥½¡¼¥¹Ãæ¤ÎËÝÌõÂоݤȤʤëʸ»úÎó¤Ë¥Þ¡¼¥¯ÉÕ¤±¤·¤Æ¤¤¤ë´Ö¡¢¥×¥í¥°¥é¥Þ¤ËËÝÌõ¼Ô ¤Î¤è¤¦¤Êµ¤Ê¬¤ò¡¢ËÝÌõ¼Ô¤Ë¥×¥í¥°¥é¥Þ¤Î¤è¤¦¤Êµ¤Ê¬¤òÌ£¤ï¤»¤Þ¤¹¡£
¤³¤³¤ÇÀâÌÀ¤¹¤ëPO¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤¬ÂоݤȤ¹¤ë¥×¥í¥°¥é¥à¥½¡¼¥¹·²¤Ï¡¢¥×¥í¥¸¥§¥¯ ¥È¤Î¤¿¤á¤Ë¹½ÃÛ¤µ¤ì¤¿Emacs¥¿¥°¥Æ¡¼¥Ö¥ë¤ò»ý¤Ä¤Ù¤¤Ç¤¹¡£¤³¤ì¤Ï´Êñ¤Ê¤³¤È¤Ç¡¢ Ǥ°Õ¤Î¥·¥§¥ë¥¦¥£¥ó¥É¥¦Ãæ¤Ç¥×¥í¥¸¥§¥¯¥È¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¡¢¼¡¤Ëµó ¤²¤ë¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹¡£
etags src/*.[hc] lib/*.[hc] |
¤³¤³¤Ç¡¢`src/'¤ä`lib/'¤È¤¤¤Ã¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëÁ´¤Æ¤Î `.h'¤È`.c'¤È¤ò½èÍý¤·¤¿¤¤¾õ¶·¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤ÏÁ´ ¤Æ¤Î¥Õ¥¡¥¤¥ë¤òõº÷¤·¤Æ¡¢¥×¥í¥¸¥§¥¯¥È¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë`TAGS'¤È¤¤ ¤¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤ÏEmacs¤¬Íý²ò¤¹¤ë¤³¤È¤Î½ÐÍè¤ë¡¢Æüì¤Ê¥Õ¥©¡¼¥Þ¥Ã ¥È¤Ë¤è¤ëÆâÍƤÎÍ×Ìó¤Ë¤Ê¤ê¤Þ¤¹¡£
GNU¥³¡¼¥Ç¥£¥ó¥°É¸½à¤Ë½¾¤Ã¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¡¢¥½¡¼¥¹¤ò¹½À®¤¹¤ëÁ´¤Æ¤Î¥Õ¥¡
¥¤¥ë¤«¤é¹½À®¤µ¤ì¤¿¥¿¥°¥Õ¥¡¥¤¥ë(tags
¤«TAGS
)¤¬Á´¤Æ¤Î¥Ç¥£¥ì¥¯¥È
¥ê¤Ë¸ºß¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
`TAGS'¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ÍÑ°Õ¤µ¤ì¤ì¤Ð¡¢¥×¥í¥°¥é¥Þ¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Ë¤¢ ¤ëËÝÌõÂоÝʸ»úÎó¤ò¥Þ¡¼¥¯ÉÕ¤±¤¹¤ë¤¿¤á¤Ë¸å½Ò¤¹¤ë¥³¥Þ¥ó¥É·²¤¬»ÈÍѤǤ¤Þ¤¹¡£¤³ ¤ì¤é¤Î¥³¥Þ¥ó¥É¤ÏPO¥Õ¥¡¥¤¥ë¥¦¥£¥ó¥É¥¦¤ÎÃæ¤Çµ¯Æ°¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤¹¤¬¡¢¤Þ ¤ÀPO¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤È¤¤¤¦¤³¤È¤¬¤¢¤ê¤¬¤Á¤Ç¤¹¡£¤³¤ì¤Ï¤½¤ì¤Û¤É ÌäÂê¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò¼ç¤Ë»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¢°ÂÁ´¤Ë¿·¤·¤¤¶õ¤Î PO¥Õ¥¡¥¤¥ë¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤¢¤Ê¤¿¤¬¥Þ¡¼¥¯ÉÕ¤±¤·¤¿¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Î ËÝÌõÂоÝʸ»úÎó¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¶õ¤ÎPO¥Õ¥¡¥¤¥ë¤Ï½ù¡¹¤ËËþ¤¿¤µ¤ì¤Æ¤æ¤¯¤Ç¤·¤ç¤¦¡£
,(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-,¥³¥Þ¥ó¥É¤ÎÁȤ߹þ¤ß¤È¤·¤Æ´û¤Ë ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£
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¥ª¥×¥·¥ç¥ó¤¬¤³¤ÎÌäÂê
¤ò²ò·è¤¹¤ë¤¿¤á¤Ë»È¤¨¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
Ãí°Õ¿¼¤¤ÆɼԤϤ³¤³¤Ç¡¢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.1 xgettext
¥×¥í¥°¥é¥à¤Îµ¯Æ°4.2 C¥½¡¼¥¹¤Îʸ̮ 4.3 ËÝÌõÍ×Ìóµ¡Ç½¤Î»ÈÍÑ
xgettext
¥×¥í¥°¥é¥à¤Îµ¯Æ°
xgettext [option] inputfile ... |
xgettext
¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¤â¤Î¤Ç¡¢¥Õ¥©¡¼
¥Þ¥Ã¥È¥Õ¥©¡¼¥à¤Ï¥×¥í¥°¥é¥Þ¤¬¤½¤¦µ¬Äꤷ¤¿¾ì¹ç¤Ë»È¤ï¤ì¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïc-format¥Õ¥©¡¼¥à¤Î¤ß¤¬»È¤ï¤ì¤Þ¤¹¡£ËÝÌõ¼Ô¤Ï¤³¤Î¾ÜºÙ¤Ë ¤Ä¤¤¤Æ¹Í¤¨¤ë¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
ÆÃÊ̤ʥɥᥤ¥ó̾¤Ç¤¢¤ë`-'¤Þ¤¿¤Ï`/dev/stdout'¤Ï¡¢`ɸ½à½ÐÎÏ' ¤Ë½ÐÎϤ¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
ÌÀ¤é¤«¤Ë»ÈÍѤ·¤Ê¤¤¤³¤È¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢
gettext
¡¢dgettext
¡¢dcgettext
¤Ègettext_noop
¤¬
¥Ç¥Õ¥©¥ë¥È¤Î¥¡¼¥ï¡¼¥É¤È¤Ê¤ê¤Þ¤¹¡£
.gmo
¥Õ¥¡¥¤¥ëÀ¸À®»þ¤ÎÊÑÆ°¤òÀä¤Ä¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¡¢¥Æ¥¹¥ÈÌÜŪ¤Ë»ÈÍѤ¹
¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÏGNU gettext
¥Ñ¥Ã¥±¡¼¥¸¤Ç»ÈÍѤǤ¡¢
msgfmt
¤Ç¤â»ÈÍѤǤ¤Þ¤¹¡£Î¾Êý¤Î·ë²Ì¤ÏƱ¤¸¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£
ÄɲäÎPO¥Õ¥¡¥¤¥ë¤Î¥µ¡¼¥Á¥Ñ¥¹¤Ï`/usr/local/share/nls/src/'¤È¤Ê¤ê¤Þ¤¹¡£
inputfile¤È¤·¤Æ`-'¤¬»ØÄꤵ¤ì¤¿¤È¤¤Ï¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤ß¤Þ¤¹¡£
xgettext
¤Î¤³¤Î¼ÂÁõ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¥Þ¥¯¥íÃæ¤Îʸ»úÎó¡¢ANSIµ¬³Ê¤Ç¤ÎÎÙ
Àܤ·¤¿Ê¸»úÎó¤ÎÏ¢·ë¡¢Ê¸»úÎó¤Î·Ñ³¤Î¤¿¤á¤Î¹ÔËö¤Î¥¨¥¹¥±¡¼¥×¤Ê¤É¤Î¤è¤¦¤Ê¡¢´ö¤Ä
¤«¤ÎÌñ²ð¤Ê¥±¡¼¥¹¤Î½èÍý¤ò²Äǽ¤È¤·¤Þ¤¹¡£
PO¥â¡¼¥É¤Ï¡¢GNU gettext
¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»È¤Ã¤Æºî¤é¤ì¤¿PO¥Õ¥¡¥¤¥ë¤ò°·
¤¦¤È¤¤ËÎϤòȯ´ø¤·¤Þ¤¹¡£GNU gettext
¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÏÀ¸À®¤·¤¿PO¥Õ¥¡¥¤
¥ë¤ËÆüì¤Ê¥³¥á¥ó¥È¤òÁÞÆþ¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÆüì¤Ê¥³¥á¥ó¥È¤Î°ìÉô¤Ï¡¢PO¥Õ¥¡¥¤¥ë
¤Î¥¨¥ó¥È¥ê¤È¥×¥í¥°¥é¥à¥½¡¼¥¹Ãæ¤Î̤ËÝÌõʸ»úÎ󤬽и½¤¹¤ë¾ì½ê¤ò´ØÏ¢ÉÕ¤±¤Þ¤¹¡£
ËÝÌõ¼Ô¤¬Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤ò°·¤¦ºÝ¡¢Èà½÷¤¬°·¤¦Ì¤ËÝÌõʸ»úÎó¤Ï¤·¤Ð¤·¤Ð´Ê·é¤¹¤®¤¿ ¤ê¡¢°Å¹æŪ¤Ç¤¢¤Ã¤¿¤ê¡¢Û£Ëæ¤Ç¤¢¤Ã¤¿¤ê¤È¤¤¤Ã¤¿¡¢¤ï¤«¤ê¤Ë¤¯¤¤¤â¤Î¤Ç¤¢¤ë¤³¤È¤¬ ¤¢¤ê¤Þ¤¹¡£¤½¤Îʸ»úÎó¤ò¤É¤Î¤è¤¦¤ËËÝÌõ¤¹¤ë¤«¤ò¹Í¤¨¤ëÁ°¤Ë¡¢ËÝÌõ¼Ô¤Ï¤½¤ì¤¬²¿¤ò °ÕÌ£¤·¤Æ¤¤¤ë¤Î¤«¡¢¤½¤·¤Æ¤É¤Î¤è¤¦¤ÊËÝÌõ¤¬Å¬ÀڤʤΤ«¤òÍý²ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤ÊÌäÂê¤ËľÌ̤·¤¿¤È¤¡¢ËÝÌõ¼Ô¤¬È½ÃǤò²¼¤¹¤¿¤á¤Ë¤Ï¤½¤Îʸ»úÎ󤬻Ȥï¤ì ¤Æ¤¤¤ëËÜʪ¤Î¥×¥í¥°¥é¥à¥½¡¼¥¹¤òÆɤߡ¢Ê¸»úÎó¤Î¶á¤¯¤Ë¤¢¤ë¥×¥í¥°¥é¥Þ¤¬½ñ¤»Ä¤· ¤¿¥³¥á¥ó¥È¤òÁܤ·½Ð¤·¡¢¤½¤·¤Æ²¿¤é¤«¤Î¼ê³Ý¤«¤ê¤òÆÀ¤ë¤·¤«¤¢¤ê¤Þ¤»¤ó¡£
¤â¤Á¤í¤ó¡¢ËÝÌõ¼Ô¤¬¼êÎý¤Î¥×¥í¥°¥é¥Þ¤Ç¤¢¤ì¤Ð¥×¥í¥°¥é¥à¥½¡¼¥¹¤òÆɤळ¤È¤Ç¹¹¤Ê ¤ë¾ðÊó¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢Èà½÷¤¬·Ð¸³¤òÀѤó¤À¥×¥í¥°¥é¥Þ¤Ç¤Ê ¤¯¡¢C¤Î¥³¡¼¥É¤Ë¸ÍÏǤ¤¤ò´¶¤¸¤¿¤È¤·¤Æ¤â¡¢¥½¡¼¥¹¤òÆɤळ¤È¤Ë¤Ä¤¤¤Æ²²É¤ˤʤà ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ËÝÌõ¼Ô¤¬É¬ÍפȤ¹¤ë²¿¤é¤«¤Î¥Ò¥ó¥È¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤È¤¤¤¦²Ä ǽÀ¤Ï¤Þ¤À¤¢¤ë¤Î¤Ç¤¹¤«¤é¡£ËÝÌõ¼Ô¤Ï¤¹¤°¤Ë¡¢¥×¥í¥°¥é¥Þ¤Î¥³¥á¥ó¥È¡¢(¥×¥í¥°¥é ¥Þ¤¬Íýͳ¤ò»ý¤Ã¤Æ̿̾¤·¤¿)ÊÑ¿ôµÚ¤Ó´Ø¿ô̾¡¢Á´ÂΤι½Â¤¤Ë¤Ä¤¤¤Æ°ìÁØÃí°Õ¤òʧ¤¦ ¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¥³¡¼¥É¤¬ÉÔ²÷¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò³Ø¤Ö¤Ç¤·¤ç¤¦¡£
°Ê²¼¤Î¥³¥Þ¥ó¥É·²¤Ï¡¢ËÝÌõ¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë´Ø·¸¤¹¤ë¥×¥í¥°¥é¥à¥½¡¼¥¹ ¤Îʸ̮¤òÄ´¤Ù¤ë¤È¤¤ËÌòΩ¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥³¥Þ¥ó¥É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
)¤Ï¡¢ËÝÌõ¼Ô¤¬¤â¤Ï¤äɬÍפȤ·¤Ê¤¯¤Ê¤Ã¤¿¥Ç¥£¥ì¥¯
¥È¥ê¤ò¥µ¡¼¥Á¥Ñ¥¹¤«¤éÁªÂò¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹(Êä´°µ¡Ç½ÉÕ¤¤Ç)¡£
Í×Ìóµ¡Ç½¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
PO¥â¡¼¥É¤Î¾Íè¤Î¼ÂÁõ¤Ç¤Ï¡¢ËÝÌõ¼Ô¤Ï´û¤ËËÝÌõ¤·¤¿¤â¤Î¤ÎÍ×Ìó¤òÊݼ餹¤ë¤³¤È¤Ë¤Ê ¤ê¤Þ¤¹¡£Í×Ìó¤È¤Ï¡¢Â¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÇÉÑÈˤËÍѤ¤¤é¤ì¤ëËÝÌõʸ»úÎ󷲤ò¤Þ ¤È¤á¤¿ÆÃÊ̤ÊPO¥Õ¥¡¥¤¥ë¤Î¤³¤È¤Ç¤¹¡£ËÝÌõ¼Ô¤Ï¼«Ê¬¤¬»ÈÍѤ¹¤ëÍ×Ìó¤Ë¿·¤·¤¤¥¨¥ó¥È ¥ê¤òÄɲ䷤Ƥª¤¡¢¸å¤Ç̤ËÝÌõ¥¨¥ó¥È¥ê¤ò½é´ü²½¤¹¤ë¤È¤¡¢¤¢¤ë¤¤¤Ï´û¤ËËÝÌõ¤µ¤ì ¤¿¥¨¥ó¥È¥ê¤ò¹¹¿·¤¹¤ë¤È¤¤Ë¡¢Í×Ì󤫤éËÝÌõʸ»úÎó¤ò°ú¤½Ð¤¹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤· ¤«¤·¤³¤Îºî¶È¤Î¤¿¤á¤Ë¤Ï¡¢Í×Ìó¤ÏÀµµ¬²½¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ See section 2.5 ¥¨¥ó¥È¥êÆâ¤Îʸ»úÎó¤ÎÀµµ¬²½¡£
5.1 msgmerge
¥×¥í¥°¥é¥à¤Îµ¯Æ°5.2 ËÝÌõºÑ¤ß¥¨¥ó¥È¥ê 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê 5.4 ̤ËÝÌõ¥¨¥ó¥È¥ê 5.5 Çѻߥ¨¥ó¥È¥ê 5.6 ËÝÌõ¤Î½¤Àµ 5.7 ¥³¥á¥ó¥È¤Î½¤Àµ 5.8 Êä½õPO¥Õ¥¡¥¤¥ë¤ò»²¹Í¤Ë¤¹¤ë
msgmerge
¥×¥í¥°¥é¥à¤Îµ¯Æ°
¤½¤ì¤¾¤ì¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ë¤Ä¤¤¤Æ¡¢msgstr
¤ËËÝÌõ¤¬ÄêµÁ¤µ¤ì¡¢¤«¤Ä
Û£Ëæ(see section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê)¤Ç¤¢¤ë¤È¥Þ¡¼¥¯ÉÕ¤±¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥¨¥ó¥È
¥ê¤ÏËÝÌõºÑ¥¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£ËÝÌõºÑ¥¨¥ó¥È¥ê¤Ï¸å¤«¤éGNU
msgfmt
¤Ë¤è¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¥×¥í¥°¥é¥àÃæ¤Ç»ÈÍѲÄǽ¤Ë¤µ¤ì¤ë¤À¤±¤Ç
¤¹¡£¤½¤Î¾¤Î¥¨¥ó¥È¥ê¥¿¥¤¥×¤ÏÄù¤á½Ð¤µ¤ì¤Þ¤¹¡£¤½¤ì¤é¤Ë¤Ä¤¤¤Æ¤ÏËÝÌõ¤¬ºîÀ®¤µ¤ì
¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¡£
´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¤è¤êÌ©ÀܤËËÝÌõºÑ¥¨¥ó¥È¥ê¤Î½èÍý¤È·ë¤ÓÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£
¥³¥Þ¥ó¥Ét(po-next-translated-entry
)¤ÈM-t
(po-previous-transted-entry
)¤ÏÁ°¸å¤Ë°ÜÆ°¤·¡¢ËÝÌõºÑ¥¨¥ó¥È¥ê¤òõ¤·½Ð
¤·¤Þ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢PO¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¹þ¤ó¤Ç¸¡º÷¤¬¹Ô¤ï¤ì¤Þ
¤¹¡£
ËÝÌõºÑ¥¨¥ó¥È¥ê¤ÏÄ̾ËÝÌõ¼Ô¤¬¥¨¥ó¥È¥ê¤òËÝÌõ¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹
5.6 ËÝÌõ¤Î½¤Àµ¡£¤·¤«¤·¡¢¤â¤·ÊÑ¿ô
po-auto-fuzzy-on-edit
¤¬nil
¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ºÇ½é¤Ë¿·¤·¤¤ËÝÌõ¤¬
¤Ê¤µ¤ì¤¿¥¨¥ó¥È¥ê¤ÏÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£¤½¤Î¥¨¥ó¥È¥ê¤Ï¸å¤«¤é¡¢¸ø¼°¤«¤Ä
ËÜʪ¤ÎËÝÌõºÑ¥¨¥ó¥È¥ê¤È¤Ê¤ëÁ°¤ËÛ£Ëæ¤Ç¤Ï¤Ê¤¯¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó
See section 5.3 Û£Ëæ¤ÊËÝÌõ¥¨¥ó¥È¥ê¡£
¤½¤ì¤¾¤ì¤ÎPO¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤Ï°À¤ÎÁȤò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤é¤Ï̾Á°¤¬
ÉÕ¤±¤é¤ì¤¿ÉʼÁ¤Ç¤¢¤ê¡¢ÆÃÊ̤ʥ·¥¹¥Æ¥à¥³¥á¥ó¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¥¨¥ó¥È¥ê¤ÎËÝÌõ
¤ÈÌÀÇò¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î°À¤Î¤¦¤Á¤Î°ì¤Ä¤ÏÛ£Ëæ
¤È̾ÉÕ¤±¤é
¤ì¤Æ¤ª¤ê¡¢¤³¤Î°À¤ò»ý¤Ä¥¨¥ó¥È¥ê¤ÏÛ£Ëæ¤ÊËÝÌõ¤ò»ý¤Ã¤Æ¤¤¤ë¤È¸À¤ï¤ì¤Þ¤¹¡£Ã±½ã
¤ËÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡£
Û£Ëæ¤Ê¥¨¥ó¥È¥ê¤Ï¡¢¤¿¤È¤¨Â¿¤¯¤Î¾¤ÎÌÜŪ¤Î¤¿¤á¤Ë¤½¤ì¤é¤¬ËÝÌõºÑ¥¨¥ó¥È¥ê¤È¤ß¤Ê
¤µ¤ì¤ë¤È¤·¤Æ¤â¡¢Ä̾ï¤ÏËÝÌõ¼Ô¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£´ö¤Ä¤«¤Î¿·
¤·¤¤msgid
¤¬¸Å¤¤PO¥Õ¥¡¥¤¥ëÃæ¤Ë¤¢¤ëmsgid
¤«¤é¤ï¤º¤«¤Ë½¤Àµ¤µ¤ì¤¿
¤â¤Î¤Ç¤¢¤ê¡¢¤«¤Ä¤½¤Î¿·¤·¤¯½¤Àµ¤µ¤ì¤¿¥¨¥ó¥È¥ê¤ËÂбþ¤¹¤ë¡¢¸Å¤¤ËÝÌõ¤Ç¤¢¤ë¤È¹Í
¤¨¤é¤ì¤ë¤â¤Î¤È¤¬ÂФˤʤë¤Èmsgmerge
¥×¥í¥°¥é¥à¤¬²¾Äꤷ¤¿¤È¤¡¢
msgmerge
¥×¥í¥°¥é¥à¤¬¿·¤·¤¤PO¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ë¤è¤Ã¤Æ¸Å¤¤ËÝÌõºÑ
PO¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ËÜÍè¤Îʸ
»úÎó(msgid
¤Ë¤¢¤ëʸ»úÎó)¤ËÂФ¹¤ë¼ã´³¤ÎÊѹ¹¤Ï¤·¤Ð¤·¤ÐËÝÌõºÑʸ»úÎó¤Ë±Æ
¶Á¤·¡¢¤³¤ì¤ÏËÝÌõ¼Ô¤Ë¤è¤ë½¤Àµ¤òÍ׵ᤷ¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢msgmerge
¤Ï¤¤¤¯
¤Ä¤«¤Î¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ç¤¢¤ë¤È¤·¤Æ¥Þ¡¼¥¯ÉÕ¤±¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£
ËÝÌõ¼Ô¤Ï¤Þ¤¿¡¢¥¨¥ó¥È¥ê¤ËºÆ¤Ó¼ê¤òÆþ¤ì¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤òµ²±¤·¤Æ¤¤¿¤¤ ¤È¤¤Ë¡¢¼«Ê¬¼«¿È¤ÎÍøÊؤΤ¿¤á¤Ë¥¨¥ó¥È¥ê¤òÛ£Ëæ¤Ç¤¢¤ë¤È¤·¤Æ¥Þ¡¼¥¯¤·¤Æ¤ª¤¯¤³¤È ¤¬½ÐÍè¤Þ¤¹¡£´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¤è¤êÌ©ÀܤËÛ£Ëæ¤Ê¥¨¥ó¥È¥ê¤Î½èÍý¤È·ë¤ÓÉÕ¤¤¤Æ¤¤ ¤Þ¤¹¡£
¥³¥Þ¥ó¥É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¥â¡¼¥É¤ÏËÝÌõ¼Ô¤ËÂФ·¤Æºî¶È¤ò½ªÎ»¤¹¤ë ¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£
xgettext
¤¬ºÇ½é¤ËPO¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤¿¤È¤¡¢msgid
¤Ï̤ËÝÌõʸ»ú
Îó¤Ç½é´ü²½¤µ¤ì¡¢msgstr
¤Ë¤Ï¶õʸ»úÎó¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£¶õ¤ÎËÝÌõʸ»úÎó¤ò
»ý¤Ä¥¨¥ó¥È¥ê¤Ï̤ËÝÌõ¥¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¤½¤Î¸å¡¢¥×¥í¥°¥é¥Þ¤¬¥×¥í¥°
¥é¥àÃæ¤Ç°ìÉô¤Îʸ»úÎó¤ò¤Û¤ó¤Î¤Á¤ç¤Ã¤È¤À¤±½¤Àµ¤·¤¿¾ì¹ç¡¢½¤Àµ¤µ¤ì¤¿Ê¸»úÎó¤Ï̤
ËÝÌõʸ»úÎó¤È¤·¤Æ¡¢PO¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤¥¨¥ó¥È¥ê¤È¤·¤ÆÄɲ䵤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¨¥ó¥È¥ê´Ö¤ò°ÜÆ°¤¹¤ëÄ̾ï¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤Ã¤¿¥¨¥ó¥È¥ê¤ÈƱ¤¸¥ì¥Ù ¥ë¤Ë¤¢¤ë̤ËÝÌõ¥¨¥ó¥È¥ê¤ËÃí°Õ¤òʧ¤¤¤Þ¤¹¡£Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤Ï`msgstr ""'¤Ç½ªÎ»¤¹¤ë¤È¤¤¤¦»ö¼Â¤«¤é¡¢´Êñ¤Ëȯ¸«¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
ËÝÌõ¼Ô¤Îºî¶È¤È¤¤¤¦¤Î¤Ï¡¢Ì¤ËÝÌõ¥¨¥ó¥È¥ê¤òõ¤·¤À¤·¤ÆËÝÌõ¤·¡¢¤½¤Îºî¶È¤ò̤ËÝÌõ ¥¨¥ó¥È¥ê¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¤È¤¤¤¦°ÕÌ£¤Ç¤Ï(ËÜÅö¤Ëñ½ã¤Ê)ºî¶È¤Ë»×¤¨¤ë¤«¤â ¤·¤ì¤Þ¤»¤ó¡£´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï̤ËÝÌõ¥¨¥ó¥È¥ê½èÍý¤ËÆò½¤·¤Æ¤¤¤Þ¤¹¡£
u(po-next-untranslated-entry
)¥³¥Þ¥ó¥É¤ÈM-u
(po-previous-untransted-entry
)¥³¥Þ¥ó¥É¤Ï¤½¤ì¤¾¤ì¡¢Á°Êý¤È¸åÊý¤Ë°ÜÆ°
¤·¤Æ̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤òõ¤·½Ð¤·¤Þ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¸¡º÷¤ÏPO¥Õ¥¡
¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò²ó¤ê¤³¤ó¤Ç·Ñ³¤·¤Þ¤¹¡£
ËÝÌõʸ»úÎó¤òñ¤Ë¶õ¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¨¥ó¥È¥ê¤ò̤ËÝÌõ¤Î¥¨¥ó¥È¥ê¤Ø¤ÈÌ᤹¤³
¤È¤¬½ÐÍè¤Þ¤¹¡£¤³¤ì¤Ë¤Ïk¥³¥Þ¥ó¥É(po-kill-msgstr
)¤ò»È¤¤¤Þ¤¹¡£
See section 5.6 ËÝÌõ¤Î½¤Àµ.
q¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆPO¥Ð¥Ã¥Õ¥¡¤Ç¤Îºî¶È¤ò½ªÎ»¤¹¤ëºÝ¡¢¤â¤·Ì¤ËÝÌõ¤Îʸ»ú Î󤬻Ĥ俤ޤޤξì¹ç¤Ï¡¢PO¥â¡¼¥É¤ÏËÝÌõ¼Ô¤ËÂФ·¤Æºî¶È¤ò½ªÎ»¤¹¤ë¤«¤É¤¦¤«¤ò³Î ǧ¤·¤Þ¤¹¡£
ÃÏ°è²½¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ª¤¤¤Æ¡¢¤³¤ì°Ê¾åËÝÌõ¤¹¤ëɬÍפ¬¤Ê¤¤¥¨¥ó¥È¥ê¤Ï
msgmerge
¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æȯ¸«¤µ¤ì¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Þ¤¹¡£¤³
¤ì¤é¤Î¥¨¥ó¥È¥ê¤Ï¡¢Çѻߥ¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¤Þ¤¹¡£
¥¨¥ó¥È¥ê´Ö¤ò°ÜÆ°¤¹¤ëÄ̾ï¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤Ã¤¿¥¨¥ó¥È¥ê¤ÈƱ¤¸¥ì¥Ù
¥ë¤Ë¤¢¤ëÇѻߥ¨¥ó¥È¥ê¤ËÃí°Õ¤òʧ¤¤¤Þ¤¹¡£Çѻߥ¨¥ó¥È¥ê¤Ïmsgid
Ëô¤Ï
msgstr
¤ò´Þ¤àÁ´¤Æ¤Î¹Ô¤¬#¤Ç³«»Ï¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦»ö¼Â¤Ë¤è¤Ã¤Æ´Êñ
¤Ëȯ¸«¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤Ï¡¢¸µ¡¹¤Î̤ËÝÌõʸ»úÎó¤Ë¤è¤Ã¤ÆËÝÌõʸ»úÎó¤ò½é´ü²½¤·¤Þ¤¹¡£¥ ¥ë¥ê¥ó¥°¤ò°·¤¦¥³¥Þ¥ó¥É¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢°ÊÁ°¤ËÊݸ¤µ¤ì¤¿¥Æ¥¥¹¥È¤òËÝÌõ ʸ»úÎó¤È¤·¤Æ³ÊǼ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¥æ¡¼¥¶¤ÏËÝÌõ¤òÂÐÏÃŪ¤ËÊÔ½¸¤¹¤ë¤³¤È¤¬½Ð Íè¤Þ¤¹¡£¤³¤ì¤éÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤½¤Î·ë²Ì¤È¤·¤ÆÇѻߥ¨¥ó¥È¥ê¤òÇѻߥ¨¥ó¥È¥ê¤Î ¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¹¹¤Ë¡¢´ö¤Ä¤«¤Î¥³¥Þ¥ó¥É¤ÏÇѻߥ¨¥ó¥È¥ê¤Î½èÍý¤ËÆò½¤·¤Æ¤¤¤Þ¤¹¡£
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¥â¡¼¥É¤Ï´° Á´¤ËËÝÌõ¼Ô¤Ë·èÄê¤ò¤µ¤»¤Þ¤¹¡£ËÝÌõ¼Ô¤Î·èÄêºî¶È¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Î»È¤¤¤ä¤¹¤¤¥Ä¡¼ ¥ë¤Î½àÈ÷¤ò¤¹¤ë¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¡£
PO¥â¡¼¥É¤Ç¤Ï¡¢PO¥Õ¥¡¥¤¥ë¤òľÀÜÊÔ½¸¤·¤ÆEmacs¥Ð¥Ã¥Õ¥¡¤ÎÆâÍƤòÊѹ¹¤¹¤ë¤³¤È¤Ï ½ÐÍè¤Þ¤»¤ó¡£¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ËÝÌõ¼Ô¤¬¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥ÈÁ´ÂΤˤª¤±¤ë ½ñ¼°¤Î´Ö°ã¤¤¤òËɤ¤¤À¤ê¡¢Ê¸»úÎó¤òŬÀڤ˥¯¥©¡¼¥È¤·¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¤¹¡£ ¤½¤ì°Ê³°¤Î¥¨¥é¡¼¤¬¤Þ¤Àµ¯¤¤ë²ÄǽÀ¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤Î°ìÉô¤Ë´Ø¤·¤Æ¤Ï V¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¼Â¹Ô¤Ç¤¤ë¥Ð¥Ã¥Á¸¡¾Ú¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¸¡ºº¤¹¤ë¤³¤È¤¬ ½ÐÍè¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¥¨¥é¡¼¤Ï¡¢ËÝÌõ¼Ô¼«¿È¤ÎȽÄê¡¢¤¢¤ë¤¤¤ÏËÝÌõ¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼ ¥¸¤Î(ËÝÌõ¼Ô¤ÈƱ¤¸Êì¹ñ¸ì¤ò»È¤¦)¥æ¡¼¥¶¤Ë¤è¤ë¥ì¥Ý¡¼¥È¤ËÍê¤é¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£
ËÝÌõʸ»úÎó¤òºîÀ®¤¹¤ë¤È¤¡¢¤¢¤ë¤¤¤Ïµ¡³£Åª¤Ë¸¡ºº¤µ¤ì¤¿¤ê¥æ¡¼¥¶¤«¤éÊó¹ð¤µ¤ì¤¿ ¥¨¥é¡¼¤ò½¤Àµ¤¹¤ë¤È¤¤Ë¤Ï¡¢ËÝÌõ¼Ô¤ÏËÝÌõʸ»úÎó¤ò½¤Àµ¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Ëµó¤²¤ë¥³ ¥Þ¥ó¥É¤ÎÎϤò¼Ú¤ê¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
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¡£
¿¿·õ¤Ë¹Ô¤ï¤ì¤¿¤¢¤é¤æ¤ëËÝÌõºî¶È¤Ï¡¢·èÄꤵ¤ì¤ë¤Ù¤¤³¤È¡¢¤½¤·¤Æ¹¹¤Ê¤ëʸ½ñ²½¤Î ÁªÂò¤Ë¤Ä¤¤¤Æ¡¢Â¿¤¯¤Î¸À¸ìŪº¤Æñ¤òÁýÂ礵¤»¤Þ¤¹¡£¤³¤ì¤é¤Î¥É¥¥å¥á¥ó¥È¤Ï¡¢ËÝÌõ ¼Ô¤¬¼«Í³¤ËºîÀ®¤·¡¢ºï½ü¤·¡¢½¤Àµ¤¹¤ë¤³¤È¤¬½ÐÍè¤ëËÝÌõ¼Ô¥³¥á¥ó¥È¤Î·Á¤ÇPO¥Õ¥¡¥¤ ¥ëÃæ¤ËÊݸ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¥³¥á¥ó¥È¤Ï¡¢ËÝÌõ¼Ô¤¬¸å¤«¤é¤³¤ÎPO¥Õ¥¡¥¤¥ë¤Çºî¶È ¤¹¤ë¤È¤¤ËÊØÍø¤Ê¤â¤Î¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£
ºÇ½é¤Î`#'¤Îľ¸å¤Ë¶õÇò¤òȼ¤ï¤Ê¤¤¥³¥á¥ó¥È¡¢Î㤨¤Ð`#.'¤ä`#:'¤Ï
ËÝÌõ¼Ô¥³¥á¥ó¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤Ï¤â¤Ã¤Ñ¤é¾¤Îgettext
¥Ä¡¼
¥ë¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£°Ê²¼¤Ë½Ò¤Ù¤ë¥³¥Þ¥ó¥É¤Ï¥³¥á¥ó¥È¤òÄɲ乤ëºÝ¤ËÀè¤Î·è
¤Þ¤ê¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ê¤¯¡¢ËÝÌõ¼Ô¤Ë½¤Àµ¤µ¤»¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£See section 2.2 PO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¡£
°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤½¤ì¤é¤¬Å¬±þ¤µ¤ì¤ë°ìÈÌŪ¤Ê·¹¸þ¤«¤é¡¢ËÝÌõ¤ò½¤Àµ¤¹¤ë¥³¥Þ¥ó ¥É¤Ë´öʬ»÷¤Æ¤¤¤Þ¤¹¡£See section 5.6 ËÝÌõ¤Î½¤Àµ
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ÏËÝÌõʸ»úÎó¤ò½¤Àµ¤¹¤ë¤¿¤á¤Î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
)¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
PO¥â¡¼¥É¤Ï¿¤¯¤Î¸À¸ì¤ËÄ̤¸¤¿Ãμ±¤Î¤¢¤ëËÝÌõ¼Ô¤Î½õ¤±¤È¤Ê¤ê¤Þ¤¹¡£´û¤Ëºî¶È¤ò´° λ¤·¤¿ËÝÌõ¤ÎÀ®²Ì¤ò¡¢¤¿¤Þ¤¿¤ÞÈà½÷¤¬ÃΤäƤ¤¤ëÊ̤θÀ¸ì¤ËÂФ·¤ÆÍѤ¤¤ë¤³¤È¤¬½Ð Íè¤Þ¤¹¡£PO¥â¡¼¥É¤Ï¤³¤ì¤é¾¤Î¸À¸ì¤Ø¤ÎËÝÌõ¤ò¡¢ËÝÌõ¼Ô¤Î»Å»ö¤Ø¤ÎÄɲäΥ³¥ó¥Æ¥ ¥¹¥È¤È¤·¤Æ½àÈ÷¤·¤Þ¤¹¡£¤µ¤é¤Ë¡¢¤³¤Î¤è¤¦¤ÊÊýË¡¤Çºî¶È¤¹¤ë¤³¤È¤ò¹¥¤àËÝÌõ¼Ô¤ËÂÐ ¤·¤Æ¤Ï¡¢°ìÅ٤˿¤¯¤Î¸À¸ì¤Ø¤ÎËÝÌõ¤ò¹Ô¤¦¤³¤È¤ò´Êñ¤Ë¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
Êä½õPO¥Õ¥¡¥¤¥ë¤È¤Ï¡¢ËÝÌõ¼Ô¤¬ºî¶È¤ÎÂоݤȤ·¤Æ¤¤¤ë°ì¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Ë ¸ºß¤¹¤ë¡¢°Û¤Ê¤Ã¤¿Êì¹ñ¸ì¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ëPO¥Õ¥¡¥¤¥ë¤Ç¤¹¡£Êä½õPO¥Õ¥¡¥¤¥ë¤ò Àë¸À¤·¡¢Áàºî¤¹¤ë¤¿¤á¤Î¡¢¤½¤·¤Æºî¶ÈÃæ¤Î¥¨¥ó¥È¥ê¤Î¥³¥ó¥Æ¥¥¹¥È¤ò¼¨¤¹¤¿¤á¤Î¥³ ¥Þ¥ó¥É·²¤¬Â¸ºß¤·¤Þ¤¹¡£
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.1 msgfmt
¥×¥í¥°¥é¥à¤Îµ¯Æ°6.2 GNU MO¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È
msgfmt
¥×¥í¥°¥é¥à¤Îµ¯Æ°
Usage: msgfmt [option] filename.po ... |
²æ¡¹¤ÏSun¤Î¼ÂÁõ¤Ë¤ª¤±¤ë¤³¤ÎÆ°ºî¤Ï¤É¤Á¤é¤«¤È¸À¤¨¤Ð¤¢¤Þ¤ê¥¹¥Þ¡¼¥È¤Ç ¤Ê¤¤¤È¹Í¤¨¤Þ¤¹¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¥â¡¼¥É¤ÏÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
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
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤¤Ë®¤ä¤«¤Ë¸µ¤ËÌᤵ¤ì¤Þ¤¹¡£
ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬`-'¤Î¾ì¹ç¡¢É¸½àÆþÎϤ«¤éÆɤ߹þ¤ß¤¬¹Ô¤ï¤ì¤Þ¤¹¡£½ÐÎϤ¬ `-'¤Ç¤¢¤ì¤Ð¡¢½ÐÎϤÏɸ½à½ÐÎϤ˽ñ¤½Ð¤µ¤ì¤Þ¤¹¡£
À¸À®¤µ¤ì¤¿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ÈÖ¤á¤ÎÌõ¸ì <-----------------' | | ... ... | | +------------------------------------------+ |
GNU gettext
¤¬¿¿¤Ë¤½¤Î¥´¡¼¥ë¤Ë¤¿¤É¤êÃ夤¤¿¤È¤¡¢Ê¿¶ÑŪ¤Ê¥æ¡¼¥¶¤Ï¤¢¤ë
¼ï¤Î¶Ã¤¤Î´î¤Ó¤ò´¶¤¸¤ë¤Ç¤·¤ç¤¦¡£¥¹¥¯¥ê¡¼¥ó¤Î¤É¤³¤Ë¤Ç¤âÈà¤é¼«¿È¤Î¥Í¥¤¥Æ¥£¥Ö
¥é¥ó¥²¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤È¤¤¤¦¡¢´ñ̯¤ÊËâË¡¤Î¸ú²Ì¤¬¸½¤ì¤ë¤«¤é¤Ç¤¹¡£¶òľ¤Ê¥æ¡¼
¥¶¤Ï¤½¤ì¤Ë¤Ä¤¤¤ÆÁ´¤¯¶Ã¤¯¤³¤È¤Ê¤¯¡¢¤¿¤Àñ¤ËÈà¤é¤Î¸À¸ì¤¬Ç§¤á¤é¤ì¤¿¤È
Ï䷹礦¤À¤±¤Ç¡¢¤É¤Á¤é¤«¤È¸À¤¨¤Ð¾¤ÎÅÀ¤ÇÉÔ¹¬¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¤½¤ì¤Ç¤Ï¡¢¥æ¡¼¥¶¤Î»ëÅÀ¤¬¤Ê¤ë¤Ù¤¯Ã±½ã¤Ë¤Ê¤ë¤è¤¦¤Ë¡¢Á´¤Æ¤ÎÊýË¡¤ÎÃæ¤Ç¿Í¤¬
GNU gettext
¤ò¸«¤ë¤è¤¦¤Ë¡¢¤½¤ÎËâË¡¤Ë¤Ä¤¤¤Æ¤³¤³¤ÇÀâÌÀ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤ç
¤¦¡£Á´¤Æ¤Î¾¤Î¥½¥Õ¥È¥¦¥§¥¢¥¨¥ó¥¸¥Ë¥¢¡¢¤¹¤Ê¤ï¤Á¥×¥í¥°¥é¥Þ¡¢ËÝÌõ¼Ô¡¢ÊݼéôÅö
¼Ô¤Ï¤³¤ÎËâË¡¤¬¼Â¸½¤¹¤ë¤è¤¦¤Ë¤¤¤Ã¤·¤ç¤Ë¤Ê¤Ã¤ÆƯ¤¤Þ¤¹¡£¤³¤ì¤ÏŤ¯¤½¤·¤Æ³×¿·
Ū¤Ê»Å»ö¤Ç¡¢¿ÊĽ¾õ¶·¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ÏËÝÌõ¥×¥í¥¸¥§¥¯¥È¤«¤éÆþ¼ê²Äǽ¤Ç¤¹¡£
¥Ñ¥Ã¥±¡¼¥¸¤¬ÇÛÉÛ¤µ¤ì¤¿¤È¤¡¢¤½¤³¤Ë¤ÏÆó¼ïÎà¤Î¥æ¡¼¥¶¤¬Â¸ºß¤·¤Þ¤¹¡£¤½¤ì¤Ï¡¢
¼«Ê¬¤ä¾¤Î¿Í¤¬»È¤¦¤¿¤á¤ËÇÛÉÛʪ¤ò¼õ¤±¤È¤Ã¤ÆŸ³«¤·¡¢¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤·
¤Æ¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¥¤¥ó¥¹¥È¡¼¥é¤È¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿
¥Ñ¥Ã¥±¡¼¥¸¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¥¨¥ó¥É¥æ¡¼¥¶¤Ç¤¹¡£GNU gettext
¤Ï
¥¤¥ó¥¹¥È¡¼¥é¤È¥¨¥ó¥É¥æ¡¼¥¶¤ÎξÊý¤ËËâË¡¤Î¸ú²Ì¤òÄ󶡤·¤Þ¤¹¡£
7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ 7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡ 7.3 ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤ÎËâË¡
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¥¢¡¼¥«¥¤¥Ö¥µ¥¤¥È¤Ç¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤¤Þ
¤¹¡£
GNU gettext
¤òÆâÉô¤ÇÁ´ÌÌŪ¤Ë»ÈÍѤ·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
ËÝÌõ¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬»ÈÍѲÄǽ¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£¥³¥ó¥Õ¥£
¥°¥ì¡¼¥·¥ç¥ó»þ¤Ë¡¢¤½¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï´ðÁäȤʤë¥Û¥¹¥È¥·¥¹¥Æ¥à¤¬Ä󶡤·»ÈÍÑ
²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤ëcatgets
¤ägettext
¤È¤¤¤Ã¤¿´Ø¿ô¤ò¸¡½Ð¤·¤Þ¤¹¡£¤³
¤ì¤é¤Î¤É¤Á¤é¤«¤¬»ÈÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢GNU gettext
¥é¥¤¥Ö¥é¥ê¤Ï¼«Æ°Åª¤Ë½à
È÷¤µ¤ì¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¥¤¥ó¥¹¥È¡¼¥é¤Ë¤Ï¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó»þ¤ËÆÃ
Ê̤ʥª¥×¥·¥ç¥ó¤òÍ¿¤¨¤ë¤³¤È¤¬½ÐÍè¡¢¤½¤ì¤Ë¤è¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥é¤ÎÆ°ºî¤òÊѤ¨¤ë¤³
¤È¤¬¤Ç¤¤Þ¤¹¡£`./configure --with-included-gettext'¥³¥Þ¥ó¥É¤Ï¥·¥¹¥Æ¥à
¤Îcatgets
¤ägettext
¤ò¥Ð¥¤¥Ñ¥¹¤·¤Æ¡¢Âå¤ï¤ê¤ËGNU
gettext
¤ò»ÈÍѤ·¤Þ¤¹¡£`./configure --disable-nls'¤È¤¹¤ë¤È¡¢ËÝÌõ
¥á¥Ã¥»¡¼¥¸¤òÁ´ÌÌŪ¤Ë»ÈÍѤ·¤Ê¤¤¥×¥í¥°¥é¥à¤òÀ¸À®¤·¤Þ¤¹¡£
¹ñºÝ²½Âбþ¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÏÄ̾¿¤¯¤Î`ll.po'¥Õ¥¡¥¤¥ë¤ò»ý¤Ã¤Æ
¤¤¤Þ¤¹¡£ËÝÌõ¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¥Ñ¥Ã¥±¡¼¥¸¤È¤¤¤Ã
¤·¤ç¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£¤·¤«¤·´Ä¶ÊÑ¿ôLINGUAS
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì
¹ç¤Ï¡¢¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤ËÍ¥À褷¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Õ¥¡¥¤¥ë¤òÀ©¸Â¤·¤Þ¤¹¡£
LINGUAS
¤ËÀßÄꤹ¤ëÆâÍƤϡ¢»ÈÍѤ¹¤ë¸À¸ì¤ò¼¨¤¹¤¿¤á¤Î¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì
¤¿2ʸ»ú¤Î¥³¡¼¥É¤Î¥ê¥¹¥È¤Ç¤¹¡£
¤³¤³¤Ç¡¢GNU gettext
¤òÆâÉôŪ¤Ë»È¤Ã¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¡¢¤½¤·¤Æ¥¤¥ó¥¹¥È¡¼
¥é¤¬configure»þ¤ËËÝÌõ¤ò̵¸ú¤Ë¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥æ¡¼¥¶¤¬¤¹¤ë¤Ù¤¤³¤È¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î¥×¥í¥°¥é¥à¤ò»È¤¦Á°¤Ë´Ä¶ÊÑ¿ô
LANG
¤ËŬÀÚ¤Ê`ll'¤òÀßÄꤹ¤ë¤À¤±¤Ç¤¹See section 7.1 ¸½ºß¤Î`ABOUT-NLS'ɽ¡£¤¿¤È¤¨
¤Ð¡¢¥É¥¤¥Ä¤Î¥µ¥¤¥È¤Î¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥æ¡¼¥¶¤Ï¥·¥§¥ë¥×¥í¥ó¥×¥È¤Ç
`setenv LANG de'(csh
¤Î¾ì¹ç)¡¢¤Þ¤¿¤Ï`export LANG;
LANG=de'(sh
¤Î¾ì¹ç)¤È¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹¡£¥æ¡¼¥¶¡¼¤Ï¤³¤ì¤òÈà¤é¤Î
`.login'¤ä`.profile'¤ÎÃæ¤Ç¹Ô¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
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
grok8.6 ¥×¥í¥°¥é¥Þ¤Î¾Ï¤Ë¤Ä¤¤¤Æ¤Î°ì»þŪ¤Ê¥á¥â
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
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!
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
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¡¢
¤â¤Ï¤ä¹çË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
catgets
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!
¤³¤³¤Ç¡¢²æ¡¹¤¬¤ªÏ乤ëÌäÂ꤬¤É¤³¤Ë¤¢¤ë¤Î¤«¤òÌÀ³Î¤Ë¤·¤Þ¤·¤ç¤¦¡£»ö¼Â¡¢¤³¤Î¥¤
¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¸½¼ÂŪ¤ÊÊýË¡¤Ç»È¤¦¤³¤È¤Ï¤Ç¤¤Þ¤¹¤¬¡¢¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¹½
Ãۤ϶ìÄˤǤ¹¡£¤³¤ÎÍýͳ¤Ïcatgests
¤ÎÂè»°°ú¿ô¡¢¤Ä¤Þ¤ê°ì°Õ¤Ê¥á¥Ã¥»¡¼¥¸
ID¤Ë¤¢¤ê¤Þ¤¹¡£¤¢¤ëñ°ì¤Î¥»¥Ã¥ÈÃæ¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤Ï¿ôÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»
¤ó¡£¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤òÊѹ¹¤·¤Æ¤¤¤ë´Ö¡¢¤º¤Ã¤È¤³¤Î¤è¤¦¤Ê¥ê¥¹¥È
¤òÊÝ»ý¤·Â³¤±¤ë¤È¤¤¤¦ÌäÂê¤Ë¤Ä¤¤¤ÆÍý²ò½ÐÍè¤ë¤Ç¤·¤ç¤¦¡£¤³¤Ã¤Á¤Ç¿·¤·¤¤¥á¥Ã¥»¡¼
¥¸¤òÄɲ䷤ơ¢¤¢¤Ã¤Á¤Ç°ì¤Äºï½ü¤·¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢¤³¤Îº®Íð¤ò¼ý½¦¤¹¤ë¤Î¤ò½õ¤±
¤ë¤¿¤á¤Î¿¤¯¤Î¥Ä¡¼¥ë¤¬³«È¯¤µ¤ì¤Æ¤Ï¤¤¤Þ¤¹¤¬¡¢¤¢¤ë¶ÉÌ̤ǻȤ¨¤ë¤â¤Î¤Ï¾¤Î¶ÉÌÌ
¤Ç¤Ï»È¤¨¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¤¹¡£²æ¡¹¤Ï¡¢Ê̤Υ¢¥×¥í¡¼¥Á¤Ë¤ÏÁ´¤¯ÌäÂ꤬¤Ê¤¤¤Î¤Ë¡¢
¤½¤ì¤é¤Ï¤º¤Ã¤È°·¤¤¤ä¤¹¤¤¤È¤Ï¸À¤¤¤¿¤¯¤¢¤ê¤Þ¤»¤ó¡£
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´Ø¿ô·²¤ÎºÇŬ²½
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏºÇÄã¸Â¤Îµ¡Ç½¤È¤·¤Æ¡¢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´Ø¿ô¤òÄ̤¸¤ÆËÝÌõ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥Ñ¥Ã
¥±¡¼¥¸¤Ï¤¢¤Ê¤¿¤Î»È¤¦¸À¸ì¤ò¤·¤ã¤Ù¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
°ì¤Ä¤Î¥É¥á¥¤¥ó¤À¤±¤ò»È¤¦¤È¤¤¤¦¼êË¡¤ÏËؤó¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç͸ú¤ËƯ¤¤Þ
¤¹¤¬¡¢Æó¤Ä°Ê¾å¤Î¥É¥á¥¤¥ó¤«¤éËÝÌõʸ»úÎó¤ò¼è¤ê½Ð¤¹É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¤â¤Á¤í¤ó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
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤È
¤¤Ï°Û¤Ê¤Ã¤¿·ë²Ì¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¥Ñ¥¹¤ò¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¾ï¤Ë°Í¸À¤ÈÉԳμÂÀ¤ò²ó
Èò¤»¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¿¤¯¤Î°Û¤Ê¤Ã¤¿¸À¸ì¤ò¿¤¯¤Î°Û¤Ê¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ë³ÊǼ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢
²¿¤é¤«¤ÎÊýË¡¤Ç¸À¸ì¤ä¥Ñ¥Ã¥±¡¼¥¸¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ËÄÉ
²Ã¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£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)
¤³¤ÎÊÕ¤ê¤Ç¡¢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'¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ÎÊÑ¿ô¤Ï¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬
¥í¡¼¥É¤µ¤ì¤¿»þÅÀ¤ÇÊѹ¹¤µ¤ì¤Þ¤¹¡£
°Ê²¼¤Ëµó¤²¤ëµÄÏÀ¤Ï¤ª¤½¤é¤¯À÷¤á¤é¤ì¤¿¾®¤µ¤Ê¥Ó¥Ã¥È(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(¥Õ¥¡¥¤¥ë)¤ò¤³¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¡£(o'¤Ï8859-2 oachte¤ò°ÕÌ£¤·¡¢¤³¤ì¤Ï¤É¤Á¤é¤«¤È¸À¤¨¤Ðaogonek¤Ë»÷¤¿okreska¤Ç¤¹)
1 plik 2,3,4 pliki 5-21 pliko'w 22-24 pliki 25-31 pliko'w
²Äǽ¤Ê¥¢¥×¥í¡¼¥Á¤Ï¡¢¤ª¤½¤é¤¯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])); } |
¤³¤ÎÊýË¡¤Ï¡¢¿ôÃͤÎÈϰϤ¬¶¹¤¤¤È¤¤Î¤ß͸ú¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤ÏÌÀ¤é¤«¤Ç¤·¤ç¤¦¡£
¥Ð¡¼¥¸¥ç¥ó0.9.4°Ê¹ß¡¢libintl.h
¤Ï¼«¸ÊÊñ³ç(self-contained)¤Ç¤Ê¤±¤ì¤Ð
¤Ê¤é¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢Äɲäδؿô¤òÍÑ°Õ¤¹¤ë¤³¤È¤Ê¤¯¤³¤ì¤ò¤¢¤Ê¤¿¼«
¿È¤Î¥×¥í¥°¥é¥à¤Ç»ÈÍѤǤ¤Þ¤¹¡£`Makefile'¤Ï¥Ø¥Ã¥À¤È¥é¥¤¥Ö¥é¥ê¤ò¡¢
$(prefix)
¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤·¤Þ¤¹¡£
HP-UX¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¾åµ¤Ë´Ø¤¹¤ëÍ£°ì¤ÎÎã³°¤¬È¯À¸¤·¤Þ¤¹¡£C¥é¥¤¥Ö¥é¥ê¤¬
alloca
´Ø¿ô¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¤¹(¤½¤·¤ÆHP¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤ò¥¤¥ó¥é¥¤
¥ó¤È¤·¤ÆŸ³«¤·¤Þ¤»¤ó)¡£¤·¤«¤·¤½¤ì¤Ï¤³¤Î¥Ð¥«¤Ê¥·¥¹¥Æ¥à¤Î¤¿¤á¤À¤±¤Ë¥é¥¤¥Ö¥é
¥êÁ´ÂΤò½ñ¤Ä¾¤¹¤È¤¤¤Ã¤¿¤³¤È¤ò°ÕÌ£¤·¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë¡¢libintl.a
¤ò»È
ÍѤ¹¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬alloca
´Ø¿ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£
gettext
grok
¥½¡¼¥¹¥³¡¼¥É¤òÆɤळ¤È¤Ï¡¢GNU gettext
¤Îµ¡Ç½¤ò´°Á´¤Ë³èÍѤ¹¤ë¤¿¤á¤Î½õ
¤±¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢(»þ¤È¤·¤Æ¹þ¤ßÆþ¤Ã¤¿ÆâÍƤÎ)¥³¡¼¥É¤òÆɤि¤á¤Ë»þ´Ö
¤òÈñ¤ä¤¹¤³¤È¤ò˾¤Þ¤Ê¤¤¿Í¡¹¤Î¤¿¤á¤Ë¡¢´ö¤Ä¤«¤Î¥³¥á¥ó¥È¤òµó¤²¤Æ¤ª¤¤Þ¤¹¡£
ÂÐÏÃŪ¤Ê¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò¼Â¹Ô»þ¤Ë¿Ò¤Í¤¿¤Û¤¦¤¬ÍÍѤǤ¢¤ë
¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢´Ø¿ô¤¬»ÈÍѤ¹¤ë¸À¸ì¤ò¤É¤Î¤è¤¦¤Ë·èÄê
¤·¤Æ¤¤¤ë¤Î¤«¤òÃΤëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤³¤Ë¼¨¤¹ÊýË¡¤ÏGNU¤Ë¤è¤ë
gettext
´Ø¿ô¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¤Î¤ßÀµ¤·¤¤¤â¤Î¤Ç¤¹¡£catgets
´Ø¿ô¤ä¥·
¥¹¥Æ¥àÉÕ°¤ÎC¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ëgettext
´Ø¿ô¤Ë¤Ä¤¤¤Æ¤ÏÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¤Ç
¤·¤ç¤¦¡£¤â¤Á¤í¤ó¡¢¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥ê¥ó¥°¤ËGNU gettext
¥é¥¤¥Ö¥é¥ê¤ò»È
ÍѤ·¤Æ¤¤¤ëGNU C¥é¥¤¥Ö¥é¥ê¤ÏÎã³°¤Ç¤¹¡£
dcgettext
´Ø¿ô¤Ï¸Æ½Ð¤·¤´¤È¤Ë¡¢´Ä¶ÊÑ¿ô¤ÎÃæ¤ÇºÇ¹â¤Î¥×¥é¥¤¥ª¥ê¥Æ¥£¤ò»ý
¤Ä¤â¤Î¤òõ¤·½Ð¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£¥×¥é¥¤¥ª¥ê¥Æ¥£¤Ï°Ê²¼¤Î¥ê¥¹¥È¤Ç¼¨¤µ¤ì¤Þ¤¹¡£¥×
¥é¥¤¥ª¥ê¥Æ¥£¤Ï²¼¤Ë¤¤¤¯¤Ë¤Ä¤ì¤ÆÄ㤯¤Ê¤ê¤Þ¤¹¡£
LANGUAGE
LC_ALL
LC_xxx
, ÁªÂò¤µ¤ì¤¿¥í¥«¡¼¥ë¤Ë¤è¤ë
LANG
¤½¤Î¸å¡¢¸¡º÷¤µ¤ì¤¿ÃͤòÍѤ¤¤Æ¥Ñ¥¹¤¬ÀßÄꤵ¤ì¡¢²Äǽ¤Ç¤¢¤ì¤ÐËÝÌõ¥Õ¥¡¥¤¥ë¤¬¥í¡¼ ¥É¤µ¤ì¤Þ¤¹¡£
¡Öº£¡×¤È¤Ï¡¢LANGUAGE
¤¬Êѹ¹¤µ¤ì¤¿¤È¤¤Ç¤¹¡£¾å¤ÇÀâÌÀ¤·¤¿²áÄø¤Ë½¾¤¤¡¢
¤³¤ÎÊÑ¿ô¤Î¿·¤·¤¤ÃͤÏdcgettext
´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Ç·èÄꤵ¤ì¤Þ¤¹¡£
¤³¤ì¤Ï(¤ª¤½¤é¤¯)°Û¤Ê¤Ã¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤¬¥í¡¼¥É¤µ¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
¨¤Á¡¢»ÈÍѤ¹¤ë¸À¸ì¤¬Êѹ¹¤µ¤ì¤ë¤Î¤Ç¤¹¡£
¤·¤«¤·¡¢¤³¤ì¤Ï°ì¤Ä¤Î¾®¤µ¤Ê¥Õ¥Ã¥¯¤Ë²á¤®¤Þ¤»¤ó¡£ gcc 2.7.0°Ê¾å¤Î¥³¡¼¥É¤Ç¤Ï´ö
ʬ¤ÎºÇŬ²½¤¬¿Þ¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎºÇŬ²½¤ÏÄ̾dcgettext
´Ø¿ô¤Î¸Æ¤Ó½Ð
¤·¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥«¥¿¥í¥°¤¬¥í¡¼¥É¤µ¤ì¤ëÁ°¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£¤·¤«¤·¡¢¤â¤·
dcgettext
¤¬¸Æ¤Ó½Ð¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤â¤Þ¤¿LANGUAGE
ÊÑ¿ô
¤ÎÃͤ¬Êѹ¹¤µ¤ì¤¿¤³¤È¤òÃΤ뤳¤È¤¬¤Ç¤¤Ê¤¤¤Ç¤·¤ç¤¦(see section 8.2.4 gettext´Ø¿ô·²¤ÎºÇŬ²½)¡£¤³¤Î²ò·èÊýË¡¤ÏÈó¾ï¤Ë´Êñ¤Ç¤¹¡£°Ê²¼¤Î¥³¡¼¥É¤ò¸À¸ìÊѹ¹´Ø¿ô¤ÎÁ°¤Ë
ÃÖ¤±¤Ð¤è¤¤¤Î¤Ç¤¹¡£
/* ¸À¸ì¤ÎÊѹ¹ */ setenv ("LANGUAGE", "fr", 1); /* Êѹ¹¤òÃΤ餻¤ë */ { extern int _nl_msg_cat_cntr; ++_nl_msg_cat_cntr; } |
ÊÑ¿ô_nl_msg_cat_cntr
¤Ï`loadmsgcat.c'Ãæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥×¥í
¥°¥é¥Þ¤Ï¡¢Ä¹»þ´ÖÆ°ºî¤·¡¢¼Â¹Ô»þ¤Ë¥æ¡¼¥¶¤Ë¸À¸ì¤òÁªÂò¤¹¤ë;ÃϤòÍ¿¤¨¤ë¤è¤¦¤Ê¥×
¥í¥°¥é¥à¤Î³«È¯Ãæ¤Ë¡¢¤³¤Î¤è¤¦¤Ê¹½Â¤¤ÎɬÍ×À¤ò´¶¤¸¤ë¤³¤È¤Ç¤·¤ç¤¦¡£ÈóÂÐÏÃŪ¤Ê
¥×¥í¥°¥é¥à(¤¢¤é¤æ¤ë¾®¤µ¤ÊUNIX¥Ä¡¼¥ë¤Î¤è¤¦¤Ê)¤Ï·è¤·¤Æ¤³¤Î¤è¤¦¤Ê¤³¤È¤òɬÍפÈ
¤·¤Þ¤»¤ó¡£
8.6.1 °ì»þŪ¤Ê¾ðÊó - Æó¤Ä¤Î¼ÂÁõ 8.6.2 °ì»þŪ¤Ê¾ðÊó - catgets
¤Ë¤Ä¤¤¤Æ8.6.3 °ì»þŪ¤Ê¾ðÊó - ¤Ê¤¼°ì¤Ä¤Î¼ÂÁõ¤Ê¤Î¤« 8.6.4 °ì»þŪ¤Ê¾ðÊó - ¥Î¡¼¥È
¸À¸ì¤Ë°Í¸¤»¤º¤Ë¥á¥Ã¥»¡¼¥¸¤ò°·¤¦Æó¤Ä¤Î¼êË¡¤¬¤¢¤ê¤Þ¤¹¡£°ì¤Ä¤Ï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)¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£
catgets
¤Ë¤Ä¤¤¤Æ
catgets
¤ò´ðÈפȤ·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ë´Ø¤¹¤ëƤµÄ¤ÎËö´ü¤Ë¤Ï¡¢´ö¤Ä¤«¤ÎµÄÏÀ
¤¬¤¢¤ê¤Þ¤·¤¿¡£¤½¤ÎµÄÏÀ¤ÎòÄ󼨤¹¤ë¤³¤È¤ÏÂçÀÚ¤À¤È»×¤¤¤Þ¤¹¤·¡¢¤³¤ì¤«¤é¡¢
»ä¤Ï¤Á¤ç¤Ã¤È¤·¤¿¤³¤È¤ËÂФ·¤Æ¡Ö°Ëâ¤ÎÊÛ¸î»Î¡×¤È¤Ê¤Ã¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£
catgets
¤Ï¤â¤Ã¤ÈÎɤ¯¥Ç¥¶¥¤¥ó½ÐÍ褿¤Ç¤À¤í¤¦¤È¤¤¤¦¤³¤È¤ÏÈÝÄꤷ¤Þ¤»¤ó¡£
¤½¤Î¼ÂÁõ¤Ë¤Ï´û¤Ë»ØŦ¤·¤¿¤è¤¦¤ÊÀ©¸Â¤¬¾¯¤Ê¤«¤é¤º¤¢¤ê¤Þ¤¹¡£
¤·¤«¤·¤Ê¤¬¤é¡¢¤½¤Î°ì´ÓÀ¤Èɸ½à²½¤ÎÅٹ礤¤Ë¤Ä¤¤¤Æ¤Ï ¿½¤·Ê¬¤¢¤ê¤Þ¤»¤ó¡£ UNIX¥½¥Õ¥È¥¦¥§¥¢¤ò½ñ¤¯¤È¤¤Ë·«¤êÊÖ¤·È¯À¸¤¹¤ë ÌäÂê¤È¤Ï¡¢UNIX¥×¥é¥Ã¥È¥Õ¥©¡¼¥à´Ö¤Ç¤Î°Ü¿¢À¤Ë´Ø¤¹¤ëÌäÂê¤Ç¤¹¡£¤½¤ì¤ÏÁ´¤Æ¤Î UNIX¥Ù¥ó¥À¤¬¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¾å¤òÄ´¤Ù¤Æ²þÎɤ¹¤ëÉôʬ¤ò¸«¤Ä¤±¤¿¤è¤¦¤Ê ¤â¤Î¤Ç¤¹¡£µ¿¤¤¤â¤Ê¤¯¡¢¤³¤ì¤é¤Î½¤Àµ¤Ï³×¿·Åª¤Ê¤â¤Î¤Ç¤¢¤ê¡¢¸½¼Â¤ÎÌäÂê¤ò²ò·è¤¹ ¤ë¤â¤Î¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¥½¥Õ¥È¥¦¥§¥¢¥Ù¥ó¥À¤¬¤³¤ì¤é¤ÎÊѹ¹¤ò¿¤¯¤Î¥×¥é¥Ã¥È ¥Õ¥©¡¼¥à¤Ç¹Ô¤¤¤Ä¤Å¤±¤ë¤Ë¤Ï¡¢Â¿¤¯¤ÎÏ«ÎϤ¬É¬ÍפǤ¹¡£
¤½¤·¤Æ¤³¤ì¤Ï³ÆUNIX¥Ù¥ó¥À¤¬¼«¼Ò¤Î¥·¥¹¥Æ¥à¤òɸ½à²½¤¹¤ë¤³¤È¤òÂ¥¿Ê¤·¤Þ¤¹¡£ Spec1170¤Ë½àµò¤¹¤ë¤¿¤á¤Ë¤Ç¤¹¡£¡¢³Æ¼çÍ×UNIX¥Ù¥ó¥À¤Ï¤³¤Îɸ½à²½¤Î¤¿¤á¤Ë°Ñ°÷²ñ ¤òÀߤ±¤Þ¤·¤¿¡£¤½¤·¤ÆÁ´¤Æ¤ÎUNIX¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤Ï¤³¤Îɸ½à¤Ë½¾¤Ã¤Æ¥½¥Õ¥È¥¦¥§ ¥¢¤òºîÀ®¤·¡¢°Û¤Ê¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ø¥½¥Õ¥È¥¦¥§¥¢¤òƳÆþ¤¹¤ëºÝ¤Ë¤Ï (autoconf¤ò»È¤¦¤³¤È¤Ê¤¯)¥ê¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤À¤±¤ÇºÑ¤à¤è¤¦¤Ë¤Ê¤ëÆü¤ò¿´ÂÔ¤Á¤Ë¤· ¤Æ¤¤¤ë¤Î¤Ç¤¹¡£
»ä¤ÎÍý²ò¤·¤Æ¤¤¤ë¤È¤³¤í¤Ç¤Ï¡¢Spec1170¤ÏX/Open Portability Guidelines¤Î¥Ð¡¼
¥¸¥ç¥ó4(XPG4)¤Ë´ð¤Å¤¤¤¿¤â¤Î¤Ç¤¹¡£catgets
¤È¤½¤ÎâÇ°¤¬XPG4¤ÇÄêµÁ¤µ¤ì
¤Æ¤¤¤ë¤Î¤Ç¡¢»ä¤Ïcatgets
¤¬Spec1170¤Î°ìÉô¤Ç¤¢¤ê¡¢¤½¤ì¤¬¤¹¤Ù¤Æ¤ÎUNIX¥·
¥¹¥Æ¥à¤Îɸ½àŪ¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ê¤ë¤³¤È¤ò¿®¤¸¤Æ¤¤¤Þ¤¹¡£
¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÆó¤Ä¤Î°Û¤Ê¤ë¥·¥¹¥Æ¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹
¤ë¤³¤È¤ÏÉԷкѤʤ³¤È¤Î¤è¤¦¤Ë»×¤¨¤Þ¤¹¡£²æ¡¹¤¬catgets
¤ÎÉÔ¤·¤Æ¤¤¤ë¤â
¤Î¤ò²þÁ±¤·¤¿¤¤¤È»×¤Ã¤¿¤Î¤Ê¤é¡¢¤Ê¤¼¿·¤·¤¤¥·¥¹¥Æ¥à¤ò¼ÂÁõ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢
catgets
¤ò(¸ß´¹À¤òÊݤÁ¤Ê¤¬¤é)³ÈÄ¥¤·¤è¤¦¤È¤·¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«? ¤¤¤º¤ì
¤Ë¤»¤è²æ¡¹¤Ï¡¢¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥·¥¹¥Æ¥à¤ò¥ª¥Ú¥ì¡¼¥Æ¥£
¥ó¥°¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÆó¤Ä¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£°ì¤Ä¤ÏGNU¥½¥Õ
¥È¥¦¥§¥¢¤Î¤¿¤á¥ë¡¼¥Á¥ó·²¤Ç¤¢¤ê¡¢¤â¤¦°ì¤Ä¤Ï¤½¤Î¾Á´¤Æ¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤¿¤á¤Î
¥ë¡¼¥Á¥ó·²(catgets)¤Ç¤¹¡£ÐþËý¤Ç¤·¤ç¤¦¤«?
¥«¥¿¥í¥°¤Ë¥¢¥¯¥»¥¹¤¹¤ëÊ̤Υ·¥¹¥Æ¥à¤¬¼ÂÁõ¤µ¤ì¤¿¤È²¾Äꤷ¤Æ¤ß¤Þ¤·¤ç¤¦¡£²æ¡¹¤¬
¤ª¾©¤á¤¹¤ë¤Î¤Ï¤É¤Á¤é¤Ç¤·¤ç¤¦¤«? ¾¯¤Ê¤¯¤È¤âLinux¥·¥¹¥Æ¥à¤ËÂФ·¤Æ¤Ï¡¢²æ¡¹¤Ï
²Äǽ¤Ê¸Â¤ê¿¤¯¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤ò¸Æ¤Ó¹þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢²æ¡¹
¤Ï¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤¬Èà¤é¤Î¥½¥Õ¥È¥¦¥§¥¢¤ò°Ü¿¢¤·¤ä¤¹¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê
¤Þ¤¹¡£¤½¤·¤Æ¤½¤ì¤Ïcatgets
¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£²æ¡¹¤Ï
glocale
¥³¡¼¥É¤òGNU libc
Ãæ¤Ë¼ÂÁõ¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢GNU
libc
¤Ë¤ÏÊ̤Υá¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ËÂФ¹¤ë¥¢¥¯¥»¥¹ÊýË¡¤òƱ¤¸¤è¤¦¤Ë¼è¤ê
¹þ¤Þ¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¤·¤ç¤¦¤«? ¤½¤·¤Æ¡¢glocale
¤ÈÈó
catgets
¥ë¡¼¥Á¥ó¤òÁȤ߹ç¤ï¤»¤Æ»È¤ª¤¦¤È¤¹¤ë¿Íã¤Ë´Ø¤·¤Æ¤Ï¤É¤¦¤Ç¤·¤ç¤¦
¤«? ¥½¥Õ¥È¥¦¥§¥¢³«È¯¼Ô¤¬Èà¤é¤Î¥½¥Õ¥È¥¦¥§¥¢¤ò¾¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë°Ü¿¢¤¹¤ë
ºÝ¡¢Èà¤é¤Ï¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ëñ¤Ëglocale
¤ò´Þ¤á¤ë¤À¤±¤Ç¤Ê¤¯¡¢¥Õ¥í¥ó¥È
¥¨¥ó¥É(glocale
)¥³¡¼¥É¤È¡¢¥Ð¥Ã¥¯¥¨¥ó¥É(Èócatgets
¥¢¥¯¥»¥¹¥ë¡¼
¥Á¥ó)¥³¡¼¥É¤òÉÕ¤±²Ã¤¨¤è¤¦¤È¤¹¤ë¤Ç¤·¤ç¤¦¡£
¤·¤«¤·¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥µ¥Ý¡¼¥È¤Ïɹ»³¤Î°ì³Ñ¤Ë²á¤®¤Þ¤»¤ó¡£Â¾¤Î¥í¥«¡¼¥ë¥«
¥Æ¥´¥ê¤Î¥Ç¡¼¥¿¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£¤½¤ì¤é¤â¤Þ¤¿¡¢Â¿¤¯¤ÎÁê°ãÅÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
²æ¡¹¤Ï¤½¤ì¤ËÂн褹¤ë¤³¤È¤òÄü¤á¤Æ¡¢½ÅÊ£¤·¤¿¥ë¡¼¥Á¥ó·²¤òÊÌ¡¹¤Ë³«È¯¤»¤Í¤Ð¤Ê¤é
¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«(glocale
¤ò¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥µ¥Ý¡¼¥È°Ê¾å¤Î¤â¤Î¤Ë¤¹
¤Ù¤¤Ê¤Î¤Ç¤·¤ç¤¦¤«)?
UNIX¾å¤Î²þÎɲÄǽ¤Ê¿¤¯¤ÎÉôʬ¤ÈƱ¤¸¤è¤¦¤Ë¡¢²æ¡¹¤Ï¾Íè¤Ë¸þ¤±¤Æ²þÎɤò²Ã¤¨¤Ä¤Ä ¤â¡¢²áµî¤Î¤â¤Î¤ËÂФ¹¤ë¸ß´¹À¤òÍî¤È¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤·¤¿¡£
¿¤¯¤Î¼ÂÁõ¤¬ºÇ½ª·Á¼°¤«¤é¤«¤±Î¥¤ì¤¿¤â¤Î¤Ç¤¢¤Ã¤¿¤¿¤á¡¢X/Open¤¬É¸½à·Á¼°¤ò¾µÇ§ ¤¹¤ë¤Î¤ÏÈó¾ï¤ËÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¡£»ä¤Î»È¤Ã¤Æ¤¤¤ëξÊý¤Î¥·¥¹¥Æ¥à(¸Å¤¤Linux catgets¤ÈUltrix-4)¤Ë¤Ï´ñ̯¤Ê¥Ð¥ê¥¨¡¼¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£
ºÇ¸å¤ÎÊѹ¹¤ò²Ã¤¨¤¿¸å¡¢»ä¤ÏGNU/Linux libc
¤Îgettext
´Ø¿ô·²¤òºî
À®¤¹¤ë¤¿¤á¤Ë»þ´Ö¤ò³ä¤«¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£½¾¤Ã¤Æ¡¢¾ÍèŪ¤Ë¤ÏSolaris¤¬
gettext¤òÈ÷¤¨¤¿Í£°ì¤Î¥·¥¹¥Æ¥à¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
9.1 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó0 9.2 ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó1 9.3 µÄÏÀ 9.4 ÁÈ¿¥ 9.5 ¾ðÊó¤Îή¤ì
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]'¤Ëºî¶È¤¹¤ë¤³ ¤È¤Î½ÐÍè¤ë¸À¸ì¤òÌÀµ¤·¤Æ¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
¸½ºß¸ø¼°¤Ë¡¢GNU¤Ï¹ñºÝ²½¤·¤Ä¤Ä¤¢¤ê¤Þ¤¹! °Ê²¼¤Ï1995ǯ1·î¤Î GNU Bulletin¤Ç½Ò ¤Ù¤é¤ì¤¿À¼ÌÀ¤Ç¤¹¡£
°ì°®¤ê¤ÎGNU¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï´ö¤Ä¤«¤Î¸À¸ì¤ËÂФ¹¤ë¥á¥Ã¥»¡¼¥¸¤ÎËÝÌõ¤¬Å¬ÍÑ¡¦Äó¶¡ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥Á¡¼¥à¤ÏÁÈ¿¥²½¤µ¤ì»Ï¤á¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤òµ¯ÅÀ¤È ¤·¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Þ¤À¤Þ¤À¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ê¡¢Â¿¤¯¤Î¸À¸ì¤Ë¤Ä¤¤¤Æ ¤Ï¥Ü¥é¥ó¥Æ¥£¥¢¤ÎËÝÌõ¼Ô¤¬¤¤¤Þ¤»¤ó¡£¤â¤·ËÝÌõ¥Á¡¼¥à¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤È¤·¤Æºî¶È¤· ¤¿¤¤¤È»×¤¦¤Î¤Ç¤·¤¿¤é¡¢`[email protected]'¤Ëºî¶È¤¹¤ë¤³ ¤È¤Î½ÐÍè¤ë¸À¸ì¤òÌÀµ¤·¤Æ¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
Ëܥɥ¥å¥á¥ó¥È¤Ï¤½¤Î²áÄø¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤ê¡¢¹×¸¥¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¿Í¡¹¤¬»ý¤Ä ¿¤¯¤Îµ¿Ìä¤ËÅú¤¨¤Þ¤¹¡£´ê¤ï¤¯¤Ð¤¶¤Ã¤ÈÌܤòÄ̤·¡¢GNU¤Î¹ñºÝ²½¤ËÂФ¹¤ë¤³¤Î½¸¹ç ŪÅØÎϤ«¤é»º¤ß½Ð¤µ¤ì¤ëÂçÎ̤Υ᡼¥ë¤Î´ö¤Ð¤¯¤«¤Ç¤â¤òôÅö¤·¤Æ²¼¤µ¤¤¡£
¹¤¯¶¦ÍѤµ¤ì¤ë¿¤¯¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ï±Ñ¸ì¤Ç¹Ô¤ï¤ì¤Æ¤¤ ¤Þ¤¹¡£¤½¤·¤Æ¸½ºß¤Î¤È¤³¤í¡¢±Ñ¸ì¤ÏGNU¥×¥í¥¸¥§¥¯¥È¤Ë¶¨ÎϤ¹¤ë¹ñ²ÈŪ¥³¥ß¥å¥Ë ¥Æ¥£´Ö¤Ç¤Î¼çÍפʥ³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¸À¸ì¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥É¥¥å¥á ¥ó¥È¤Ç¤µ¤¨¤â±Ñ¸ì¤Ç½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏÅöÌÌÊѤï¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£
¤·¤«¤·¤Ê¤¬¤é¡¢Â¿¤¯¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ç¼«¹ñ¸ì¤ä¼«¹ñ¤Î½¬´·¤òÍѤ¤¤¿¤¤¤È¤¤¤¦¡¢¹ñ²È Ū¥³¥ß¥å¥Ë¥Æ¥£¤«¤é¤Î¶¯¤¤Íߵ᤬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢GNU¥½¥Õ¥È¥¦¥§¥¢¤ò¤½¤Î¤è¤¦¤Ë ¤¹¤ë¤¿¤á¤ÎÅØÎϤ¬¸½ºß¤â¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î»î¤ß¤Ïº£¤Þ¤Ç¤Î¤È¤³¤í¥×¥ê¥Æ¥¹¥¿¤« ¤é¤ÎÇ®¿´¤ÊÈ¿±þ¤Î¸þ¾å¤Ë¤è¤Ã¤ÆÆ°¤«¤µ¤ì¤Æ¤ª¤ê¡¢²æ¡¹¤ÏGNU¤Î¹ñºÝ²½¤ÏÀ®¸ù¤¹¤ë¤È ¿®¤¸¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥É¥¥å¥á¥ó¥È¤ËÂФ¹¤ëÆâÍƤÎÌÀ³Î²½¡¢Äɲá¢ÄûÀµ¤Ë´Ø¤¹¤ëÄó°Æ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ `[email protected]'¤Þ¤Ç¥á¡¼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
¤³¤Î¹ñºÝ²½¤Î¸ú²Ì¤òÌܤÎÅö¤¿¤ê¤Ë¤·¤Æ¡¢´ö¿Í¤«¤Î¥æ¡¼¥¶¤¬Èà¤é¤Î¹Í¤¨¤òɽÌÀ¤·¤Æ¤¤ ¤Þ¤¹¡£¾Ò²ð¤µ¤ìµÄÏÀ¤µ¤ì¤¿¤³¤ì¤é¤Îµ¿Ìä¤Î´ö¤Ä¤«¤ò¤³¤³¤Ëµó¤²¤Æ¤ß¤Þ¤·¤ç¤¦¡£
´ö¤Ä¤«¤Î¸À¸ì¤Ï¿¤¯¤Î¿Í¡¹¤Ë¤è¤Ã¤ÆÏ䵤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤½¤Î¸À¸ì¤òÏ乿͡¹¤Ï¥Õ ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤ÎÅö³º¸À¸ìÈǤËÂФ¹¤ëɬÍ×À¤Ï¤¢¤Þ¤ê¤Ê¤¤¤È¹Í¤¨¤Æ¤¤ ¤Þ¤¹¡£¹¹¤Ë¡¢´ö¤Ä¤«¤Î¹ñ¤Ë¤¤¤ë¥³¥ó¥Ô¥å¡¼¥¿¤ÎÃæ¤Ë¤¤¤ë¿¤¯¤Î¿Í¡¹¤Ï°ìÈÌ Åª¤Ë±Ñ¸ìÈÇ¥½¥Õ¥È¥¦¥§¥¢¤Î¤Û¤¦¤ò¹¥¤à¤è¤¦¤Ç¤¹¡£
°ìÊý¤Ç¡¢¿Í¡¹¤Ï¼«Ê¬Ã£¤Î¸À¸ì¤òÈó¾ï¤Ë¹¥¤¤Ç¤¹¤·¡¢Èà¤é¤Î¤ªµ¤¤ËÆþ¤ê¤Î¥Õ¥ê¡¼¥½¥Õ ¥È¥¦¥§¥¢¤¬Èà¤é¤ÎÊì¹ñ¸ì¤òÃý¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤ËÅØÎϤ·¤Þ¤¹¡£Èà¤é¤Ï¸Ä¿ÍŪ¤Ê³Ú ¤·¤ß¤Î¤¿¤á¤Ë¤½¤ì¤ò¹Ô¤¤¤Þ¤¹¡£¤½¤·¤Æ¤É¤Î¤¯¤é¤¤¤Î¿Í´Ö¤¬¤½¤Îºî¶È¤Ë¤è¤Ã¤ÆÊرפò ÆÀ¤ë¤«¤Ê¤É¤È¤¤¤Ã¤¿¤³¤È¤Ï¹Í¤¨¤Þ¤»¤ó¡£
¤¢¤ë¼ï¤Î¸í¤Ã¤¿¥×¥í¥Ñ¥¬¥ó¥À¤Î¤»¤¤¤«¡¢°ìÉô¤Î¥æ¡¼¥¶¤Ï¼«¿È¤Î¸À¸ì¤ò²¡¤·½Ð¤¹¤³¤È ¤Ë¤Ä¤¤¤Æ²²É¤ˤʤäƤ¤¤Þ¤¹¡£¤¢¤ë¿Í¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤Î¸þ¤³¤¦Â¦¤Ë¤Ï¤½¤Î¸À¸ì¤ò ¤¦¤ë¤µ¤¯¤»¤¬¤à¥æ¡¼¥¶¤¬¤¤¤ë¤Ë°ã¤¤¤Ê¤¤¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£
¤·¤«¤·¤¢¤é¤æ¤ë¸À¸ì¤Ë¤ÏÃÏ°è²½¤µ¤ì¤ë²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡£¤Ê¤¼¤Ê¤é¡¢¤½¤Î¸À¸ì¤¬ÂçÀÚ ¤Ç·É°¦¤µ¤ì¤ë¤â¤Î¤Ç¤¢¤ë¤È¹Í¤¨¤ë¿Í¡¹¤¬¤½¤Î¸À¸ì¤Î¸þ¤³¤¦¤Ë¤¤¤ë¤«¤é¤Ç¤¹¡£
ï¤â¤¬¥á¥Ã¥»¡¼¥¸¤òÍý²ò½ÐÍè¤ë¤¿¤á¤Ë¤Ï¡¢Àµ¤·¤¤ËÝÌõ¤ò¸«¤Ä¤±½Ð¤¹¤³¤È¤¬¤â¤Ã¤È¤â Â礤ÊÌäÂê¤È¤Ê¤ê¤Þ¤¹¡£ËÝÌõ¤ÏÄ̾¾¯¤·ÊѤʤâ¤Î¤Ê¤Î¤Ç¤¹¡£°ìÉô¤Î¿Í¡¹¤Ï¡¢¡Ö¤É ¤Á¤é¤«¤È¤¤¤¨¤Ð²¡¤·¤¬¶¯¤¯¡¢·ù¤Ç¤È¤¤É¤³ê·Î¤Ê¡×Èà¤é¤Î¸À¸ì¤ËÂФ¹¤ëËÝÌõ¤ò¹Ô¤¦ ¤³¤È¤¬½ÐÍè¤ëÄøÅ٤ˤϱѸì¤ò°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¥Õ¥é¥ó¥¹¸ì¤òÏ乿ʹ֤Ȥ·¤Æ¡¢ »ä¤Ï´Ú¹ñ¤Þ¤¿¤ÏÂæÏѤˤª¤¤¤Æ¾¦Éʤμ谷ÀâÌÀ½ñ¤òÉϼå¤Ê¥Õ¥é¥ó¥¹¸ì¤Ø¤ÈËÝÌõ¤·¤¿·Ð ¸³¤¬¤¢¤ê¤Þ¤¹¡£...
²æ¡¹¤Ï¤È¤¤É¤¤¢¤ë¼ï¤Î¹ñ²ÈŪ·×»»µ¡Ê¸²½¤òºî¤ê¾å¤²¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤Î¤Ï»ö¼Â ¤Ç¤¹¡£¤½¤·¤Æ¡¢¤½¤Îºî¶È¤ÏÈà¤é¤ÎÊì¹ñ¸ì¤Ë¤è¤Ã¤Æ·Ò¤¬¤Ã¤Æ¤¤¤ë¿¤¯¤Î¿Í´Ö¤Î¶¨Ä´ºî ¶È¤Ê¤·¤Ë´Êñ¤Ë½ÐÍè¤ë¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ËÝÌõ¤ÏÈà¤é¼«¿È¤Î¸À¸ì¤òÃΤꤽ¤·¤Æ°¦ ¤¹¤ë¿Í¡¹¤Ë¤è¤Ã¤Æ¤è¤êÎɤ¯¹Ô¤ï¤ì¡¢¤è¤êÎɤ¤·ë²Ì¤òÆÀ¤ë¤È¤¤¤¦ÅÀ¤Ë¤ª¤¤¤Æ°ì½ï¤Ëºî ¶È¤µ¤ì¤ë¤â¤Î¤Ê¤Î¤Ç¤¹¡£
²¿¿Í¤«¤Î¿Í¡¹¤Ï¡¢Èà¤é¤¬Èà¤é¤Î¥×¥í¥°¥é¥à¤ò¥Õ¥ê¡¼¤Ë¤·¤¿¤¯¤Ê¤¤¾ì¹ç¡¢Ëô¤ÏÊ̤μï
Îà¤Î¼«Í³¤òÍ¿¤¨¤¿¤¤¾ì¹ç¤Ë¡¢GNU gettext
¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆÈà¤é¤Î¥Ñ¥Ã¥±¡¼
¥¸¤òGNU°ìÈ̸ø͵öÂú½ñ(GNU General Public License)¤ÎÊݸî¤Î¸µ¤ÇÇÛÉÛ¤¹¤ëɬÍ×
¤¬¤¢¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×°Æ¤·¤Þ¤¹¡£¤³¤ì¤ËÂФ¹¤ëñ½ã¤ÊÅú¤¨¤Ï¡Ö¤Ï¤¤¡×¤Ç¤¹¡£
¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î¶Ï¤«¤ÊÃÏ°è²½¤µ¤ì¤¿Ê¸»úÎó¤Î¥Þ¡¼¥¥ó¥°¡¢Ëô¤Ï¹ñºÝ²½¤Î¤¿¤á¤Î¾ò·ï ¤Ä¤¤Î¿ô¹Ô¤ÎÊñ´Þ¤ÏGPL¤Î¥³¡¼¥É¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£¤·¤«¤·¤Ê¤¬¤é¡¢ÃÏ°è²½¥ë¡¼¥Á ¥ó¤½¤ì¼«¿È¤ÏGPL¤Î¸µ¤Ë¤¢¤ê¡¢¤â¤·¥Ñ¥Ã¥±¡¼¥¸¤Î»Ä¤ê¤ÎÉôʬ¤¬ÃÏ°è²½¥ë¡¼¥Á¥ó¤È¶¦ ¤ËÇÛÉÛ¤µ¤ì¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢»Ä¤ê¤ÎÉôʬ¤âGPL¤Î¸µ¤ÇÇÛÉÛ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ »ä¤Ï¡¢ÌäÂê¤È¤Ê¤ë¤â¤Î¤È¤·¤Æ¡¢ÃÏ°è²½¥ë¡¼¥Á¥ó¤½¤ì¼«¿È¤ò½àÈ÷¤·¤Ê¤¤¤¬¡¢ÃÏ°è²½¤ò ½àÈ÷¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò¡¢¥¨¥ó¥É¥¤¥ó¥¹¥È¡¼¥é¤Ë¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤³¤È¤Î½Å²Ù¤òÉé¤ï¤» ¤ë¤³¤È¤Ë¤è¤Ã¤Æ²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤È²¾Äꤷ¤Þ¤¹¡£
Â礤ʼÜÅ٤Ǹ«¤ì¤Ð¡¢¿¿¤Î²ò·èÊýË¡¤Ïͻ֤¬»²²Ã¤Ç¤¤ë¤è¤¦¤Ê¤¢¤ë¼ï¤ÎÀµ¤·¤¯¸·Ì© ¤Ê½¸¹ç¤òÁÈ¿¥²½¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£»ä¤Ï¡¢ºÇ¶á¤³¤Î¥¢¥¤¥Ç¥£¥¢¤Ë¤Ä¤¤¤Æ´ö¤Ä¤«¤Î¹Í »¡¤ò¹Ô¤¤¡¢´ö¤Ä¤«¤ÎÈù̯¤Ê¥Ý¥¤¥ó¥È¤¬¤¢¤ë¤Ç¤¢¤í¤¦¤³¤È¤òǧ¼±¤·¤Æ¤¤¤Þ¤¹¡£»ä¤Ï¡¢ ¤½¤Î¤è¤¦¤Ê¥×¥í¥¸¥§¥¯¥È¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë¡¢Richard Stallman¤ËÏ¢Íí¤¹¤ë¤³¤È¤ò¹Í ¤¨¤Þ¤·¤¿¤¬¡¢¤Þ¤ººÇ½é¤Ë²æ¡¹¤Î´Ö¤Ç¥¢¥¤¥Ç¥£¥¢¤òÍɤêÍî¤È¤¹¤³¤È¤¬Îɤ¤¤À¤í¤¦¤È´¶¤¸ ¤Þ¤·¤¿¡£¤ª¤½¤é¤¯¡¢Linux International¤Ï´û¤Ë¤³¤ÎʬÌî¤Ë¤ª¤±¤ë´ö¤é¤«¤Î·Ð¸³¡¢ ¤Þ¤¿¤Ï¡¢Í»Ö¤Îºî¶È¤Î¥ª¡¼¥±¥¹¥È¥é¤Î¤è¤¦¤Ê¤â¤Î¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤é¤æ¤ë¾ì¹ç¤Ë¡¢ »×¹Í¤Î¤¿¤á¤Î¿©Êª¤ò!
²æ¡¹¤ÏÁ᡹¤Ë²¿¤é¤«¤ÎÊýË¡¤Ç²¿¤«¤ò¥»¥Ã¥È¥¢¥Ã¥×¤»¤Í¤Ð¤Ê¤é¤Ê¤¤¤È¹Í¤¨¤Þ¤¹¡£Æ±¤¸ ¸À¸ì¤ËÂФ¹¤ëºî¶È¤Î¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤È½ÅÊ£¤òÈò¤±¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢¤½¤ì¤Ï¿¤¯¤Î¸À¸ì ¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿¤ò½õ¤±¤ë¤Ç¤·¤ç¤¦¡£¤½¤·¤Æ¡¢¹¹¤Ë¤½¤ì¤é¤Î¸À¸ì(ÂçÉôʬ¤Î¸À¸ì ¤Ç¤Ïµ»½ÑŪ¤Ê±Ñ¸ì¤ÎËÝÌõ¤Ë¤Ä¤¤¤ÆÆÈÆäÊ¿¤¯¤ÎÌäÂêÅÀ¤¬¤¢¤ê¤Þ¤¹)¤Ë¤Ä¤¤¤Æ¤ÎÆÈÆà ¤ÊÌäÂê¤ò¶¦¤Ë²ò·è¤¹¤ë¤è¤¦¤ËÏ¢Íí¤¬¼è¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¥¹¥¦¥§¡¼¥Ç¥ó¤Î¥³¥ó¥È¥ê ¥Ó¥å¡¼¥¿¤Ï¤³¤ì¤é¤ÎÌäÂêÅÀ¤òǧ¤á¡¢¤½¤·¤Æ»ä¤Ï¥Õ¥é¥ó¥¹¸ì¤Ë¤ª¤¤¤Æ¤Î¤½¤ì¤é¤ÎÌäÂê ÅÀ¤ËÁêÅö¤Ëµ¤¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£
³Î¤«¤Ë¤³¤ì¤Ïµ»½ÑŪÌäÂê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¢¤·¤«¤·²æ¡¹¤Ï¡¢¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿¡¢µÚ¤Ó ´ÉÍý¼Ô´Ö¤Î¹ñ²È¥Á¡¼¥àÁؤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤ï¤é¤º¡¢¥í¥«¡¼¥ë¥³¥ó¥È¥ê¥Ó¥å¡¼ ¥¿¤ÎÅØÎϤ¬ºÇÂç¸Â¤Ëͱפˤʤë¤è¤¦¤Ë´ÉÍý¤¹¤ë¤Ù¤¤Ç¤¹¡£
ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Ï¸À¸ì¥³¡¼¥Ç¥£¥Í¡¼¥¿¤òÅý¹ç¤¹¤ë¤¿¤á¤Ë¤¢¤ë½àÈ÷¤òɬÍפȤ·¤Þ¤¹¡£
°ìÅÙ¤³¤Îºî¶È¤¬»Ï¤á¤é¤ì¤¿¤Ê¤é¡¢È¯Å¸Ãæ¤Î¥×¥í¥°¥é¥à¤Î¥í¡¼¥«¥é¥¤¥º¤Ï¡¢³Î¤«¤Ë¥Õ
¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥³¥ß¥å¥Ë¥Æ¥£¤Ë¤ª¤¤¤Æ±Êµ×¤Î¡¢¤½¤·¤Æ¡¢Ï¢Â³Åª¤ÊÆ°¤¤Ë¤Ê¤ë¤Ç¤·¤ç
¤¦¡£ GNU gettext
¤¬¸ø¼°¤Î¸½¼Â¤Ë¤Ê¤ëÁ°¤Ë¡¢ºÇ¾®¸Â¤Î½àÈ÷¤¬´°Î»¤·¡¢¤½¤·
¤Æ¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤ë¤Ù¤¤Ç¤¹¡£ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹
`[email protected]'¤Ï¡¢¤³¤ì¤é¤ÎÏÃÂê¤Ë´ð¤Å¤¯¥Ü¥é¥ó¥Æ¥£¥¢¡¢
µÚ¤Ó¡¢°ìÈÌŪ¤ÊÅŻҥ᡼¥ë¤«¤é¿½¤·½Ð¤ò¼õ¤±¤ë¤¿¤á¤Î½àÈ÷¤Ç¤·¤¿¡£¤³¤Î¥¢¥É¥ì¥¹¤Ï¡¢
ËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿¤ËÆϤ¤Þ¤¹¡£
9.4.1 Ãæ±û¤Ë¤è¤ëÄ´À° 9.4.2 ¹ñ²È¥Á¡¼¥à 9.4.3 ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
¤½¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë¤è¤ê¤â¹¹¤ËÁ᤯¡¢GNU¤Ï狼¤¬¤½¤ì¤é¤Î¥°¥ë¡¼¥×¤òÁÈ¿¥²½ ¤·Ä´À°¤¹¤ëÊýË¡¤ò½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ë¤È»ä¤â¤Þ¤¿¹Í¤¨¤Þ¤¹¡£¤¢¤ë¼ï¤Î¥°¥ë¡¼¥×¤Î¥° ¥ë¡¼¥×¤Ç¤¹¡£GNU¤Ïľ¤Á¤Ë¶¦Æ±¤ÇƯ¤¤¤Æ¤¤¤ë¥Ü¥é¥ó¥Æ¥£¥¢¤Î¾®¤µ¤Ê¥°¥ë¡¼¥×¤Ë¤³¤Î ¥¿¥¹¥¯¤ò°ÑÂ÷¤¹¤ë¤³¤È¤¬Îɤ¤¤À¤í¤¦¤È¡¢»ä¤Ï¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ ¤ª¤½¤é¤¯¡¢¤³¤Î¹ñ²È °Ñ°÷²ñŪ¤Ê¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤Ï`gnu.announce'¤Ë¤ª¤¤¤Æ¸øɽ¤µ¤ìÆÀ¤Þ¤¹¡£
¥³¡¼¥Ç¥£¥Í¡¼¥¿¤È¤·¤Æ¤Î»ä¤ÎÌò³ä¤Ïñ¤Ë¡¢Ulrich¤ò¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤ÎÃÏ°è²½¤Ë ¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¥É¥¤¥Ä¸ì¤òÏ乥ܥé¥ó¥Æ¥£¥¢¤Ë¾Ò²ð¤¹¤ë¤³¤È¡¢¤½¤·¤Æ¹ñ²ÈŪ¥°¥ë¡¼ ¥×¤Î½àÈ÷¤¬½ÐÍè¤ë¤Þ¤Ç¤Î¹ñ²ÈŪÅÐÏ¿µ¡´Ø¤Î¥á¥ó¥Æ¥Ê¥ó¥¹Ãæ¤Ë¡¢¹ñ²ÈŪ¥°¥ë¡¼¥×¤ÎºÇ ½é¤ÎÁÈ¿¥²½¤ò½õ¤±¤ë¤³¤È¤Ç¤¹¡£¼ÂºÝ¡¢¥³¡¼¥Ç¥£¥Í¡¼¥¿¤Ï¡¢¥Ü¥é¥ó¥Æ¥£¥¢¤¬¹ñ²È¥Á¡¼ ¥à(¸À¸ì¤Þ¤¿¤Ï¹ñ(¶ÉÃÏŪ¸À¸ì)¤Ë¤Ä¤¤¤Æ1¿Í¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿¤òÁªÂò¤¹¤ë¤Ù¤¤Ç¤¹) ¤òºîÀ®¤¹¤ë¤¿¤á¤ËÁê¸ß¤ÈÏ¢Íí¤ò¼è¤ê¤ä¤¹¤¯¤»¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤¬Àµ¤·¤¯¹Ô¤ï¤ì ¤¿¤Ê¤é¤Ð¡¢¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó¤ÏÉԲĹ³ÎÏŪºî¶È¤ò½ü¤¤¤ÆÊØÍø¤Ê¤â¤Î¤È¤Ê¤ê¡¢ÂåÍý ¿Í¤Ë»þ´Ö¤òǤ¤»¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
»ä¤Ï¡¢²æ¡¹¤¬¸Ä¡¹¤Î¸À¸ì¤Î¤¿¤á¤Îͻ֤Υ³¡¼¥Ç¥£¥Í¡¼¥¿/¥¨¥Ç¥£¥¿¤òÁܤ¹¤³¤È¤òÄó °Æ¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¿Í¡¹¤ÏÈà¤é¼«¿È¤Î¸À¸ì¤Î¤¿¤á¤Ë¡¢ÍÍ¡¹¤Ê¥×¥í¥°¥é¥à¤ÎËÝÌõ¥Õ¥¡ ¥¤¥ë¤òõ¤·½Ð¤·¡¢¤½¤·¤Æ¡¢¸ìË¡¤ËÂФ¹¤ë¹âÅ٤ǰìÄê¤Îɸ½à¤òÊݾڤ¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç ¤·¤ç¤¦¡£
º£¤Þ¤Ç¤Î¾¤Î¿Í¡¹¤È¤Î´Ö¤Î»ä¤Î¸½ºß¤Î·Ð¸³¤Ë¤è¤ì¤Ð¡¢ÃÏ°è²½¤ò¼Â¸½¤¹¤ë¿Í¡¹¤Ï¤³¤Î ¥×¥í¥»¥¹¤ËÂФ·¤ÆÈó¾ï¤ËÇ®¿´¤Ç¤¢¤ê¡¢Èà¤é¤Ï¼«Ê¬¼«¿È¤¬ÃÏ°è²½¤¹¤ë¥×¥í¥°¥é¥à¤è¤ê ¤âÃÏ°è²½¤Î¥×¥í¥»¥¹¤Ë¤Û¤¦¤Ë¶½Ì£¤ò»ý¤Á¡¢¤½¤ì¤À¤±¤Ç¤Ê¤¯Â¿¤¯¤Î¥×¥í¥°¥é¥à¤òÃÏ°è ²½¤·¤¿¤¤¤È»×¤¦¤â¤Î¤Ç¤¹¡£¤³¤Î»ö¼Â¤Ï¡¢³Æ¸À¸ì¤Î¤¿¤á¤Î¥³¡¼¥Ç¥£¥Í¡¼¥¿/¥¨¥Ç¥£¥¿ ¤ò»ý¤Ä¤³¤È¤ÏÎɤ¤¥¢¥¤¥Ç¥£¥¢¤Ç¤¢¤ë¤³¤È¤ò³Î¿®¤µ¤»¤Þ¤¹¡£
²æ¡¹¤Ï¡¢ÌäÂê¤È¤Ê¤ë¸À¸ì¤Ë¤ª¤¤¤ÆÌÀÎƤ«¤Ä´Ê·é¤Êʸ¾Ï¤ò½ñ¤¯ºÝ¡¢Å¬Ç¤¤È¤Ê¤ë¿Íʪ¤ò ÁªÂò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ÏÆñ¤·¤¤ºî¶È¤Ç¤¹---²æ¡¹¤Ï¡¢¼«Ê¬¼«¿È¤Ç¤½¤ì¤ò¥Á¥§¥Ã ¥¯¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£½¾¤Ã¤Æ¡¢²æ¡¹¤Ï¿ô¿Í¤Î¿Í´ÖÂФ·¤Æ¤Ë¸ß¤¤¤Îµ½Ò¤òȽÃǤ¹ ¤ë¤è¤¦¤ËÍ×ÀÁ¤·¡¢¤½¤·¤ÆºÇŬǤ¼Ô¤òÁªÂò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
»ä¤Ï»ä¤Î¥×¥ì¥ê¥ê¡¼¥¹¤ò20¿Í¤«¤é30¿Í¤Î¿Í¡¹¤Ëȯɽ¤Þ¤·¤¿¤¬¡¢¤½¤Î¥×¥ì¥ê¥ê¡¼¥¹¤¬ ´û¤ËÀ¸¤ß½Ð¤·¤¿Á´¤Æ¤ÎµÄÏÀ¤ò¤¢¤Ê¤¿¤Ï¿®¤¸¤Ê¤¤¤Ç¤·¤ç¤¦¡£»ä¤Ï¡¢¿¿¤Ë¡¢¸ø¼°¤Ë¡¢À¤ ³¦Ãæ¤Ç¤³¤Îºî¶È¤¬³«»Ï¤µ¤ì¤ë¤È¤¤Ëµ¯¤³¤ë¤Ç¤¢¤í¤¦¤³¤È¤òÁÛÁü¤¹¤ë¤È¿È¿Ì¤¤¤¬¤·¤Þ ¤¹¡£Î㤨¤Ð¡¢Áê¸ß¤ËÈ¿ÏÀ¤·¤¢¤¦Æó¿Í¤Î¥Á¥§¥³¥¹¥í¥ô¥¡¥¥¢¤Î¥æ¡¼¥¶¡¼¤Î´Ö¤òÃçºÛ¤¹ ¤ë¤Î¤Ï»ä¤Ê¤Î¤Ç¤·¤ç¤¦¤«?
»ä¤¬¤³¤ì¤é¤Î¸ø¼°²½¤Ë¤Ä¤¤¤ÆȽÃǤ¹¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¤è¤¦¤Ë¡¢¤¢¤Ê¤¿¤Î¥É¥¤¥Ä¸ì¤¬ »ä¤Î¥Õ¥é¥ó¥¹¸ì¤è¤ê¤Ï¤ë¤«¤ËÎɤ¤¤È¤Ï¸Â¤é¤Ê¤¤¤È¿ä¬¤·¤Þ¤¹¡£»ä¤¬Äó°Æ¤¹¤ë¤â¤Î¤Ï¡¢ ³Æ¸À¸ì¤ËÂФ·¤ÆPO¥Õ¥¡¥¤¥ë¤ò¥á¥ó¥Æ¥Ê¥ó¥¹¤·¤½¤ÎÊѹ¹¤òȽÄꤹ¤ë¿Í¡¹¤Î¥°¥ë¡¼¥×¤ò ÃÖ¤¯¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤½¤Î¤è¤¦¤Ê¿Í¡¹¤Î¥°¥ë¡¼¥×¤¬¤É¤Î¤è¤¦¤Ë¹ÔÆ°¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¡¢ ¥°¥ë¡¼¥×´Ö¤Ë¤Ïʸ²½Åª¤ÊÁê°ãÅÀ¤¬¤¢¤ë¤È¹Í¤¨¤Þ¤¹¡£´ö¤Ä¤«¤Î¥°¥ë¡¼¥×¤Ï¤Ï´Ë¤¤ÊýË¡ ¤òºÎÍѤ·¡¢´Êñ¤Ë¥³¥ó¥»¥ó¥µ¥¹¤Î°ìÃפË㤷¡¢¥°¥ë¡¼¥×Ãæ¤Îï¤â¤¬Êݼé¼Ô¤Ë´Ø¤ï¤ë ¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°ìÊý¤Ï»à¤Ì¤Þ¤ÇÀ襤¡¢½Å¤¤´ÉÍý¤ò¹ñ²È¤Îɸ½à¤Ë¤Þ¤ÇÁÈ¿¥²½¤·¡¢¸· Ì©¤Ê¥Á¥ã¥Í¥ë¤ò»ÈÍѤ¹¤ë¤Ç¤·¤ç¤¦¡£
¥É¥¤¥Ä¤Î¥Á¡¼¥à¤ÏÎɤ¤Îã¤ò½Ð¤·¤Æ¤¤¤Þ¤¹¡£Ä¾¤Á¤Ë¡¢Èà¤é¤Ï¤ª¤½¤é¤¯¤ª¸ß¤¤¤ÎËÝÌõ¤ò ÄûÀµ¤¹¤ëȾ¿ô¤Î¿Í¡¹¤È¸À¸ì¾å¤ÎÏÀÅÀ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ëȾ¥À¡¼¥¹¤Î¿Í¡¹¤Ç¤¹¡£»ä¤ÏÁ´ ¤Æ¤Î̾Á°¤òÃΤäƤ¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ulrich Drepper¤Ï¥É¥¤¥Ä¤Î¥Á¡¼¥à¤Î¥³¡¼ ¥Ç¥£¥Í¡¼¥È¤òôÅö¤·¤Æ¤¤¤Þ¤¹¡£Èà¤Ï»ä¤Î¥×¥ì¥Æ¥¹¥È¤Î¥ê¥¹¥È¤Î¹ØÆɤò¿½¤·¹þ¤ß¤Þ¤· ¤¿¡£½¾¤Ã¤Æ¡¢»ä¤ÏÈà¤ËÂФ·¤Æ¡¢Ï¢Íí¤µ¤ì¤ë¥ê¥ê¡¼¥¹¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ëɬÍ×¤Ï Æäˤ¢¤ê¤Þ¤»¤ó¡£
³Æ¸À¸ì¤òôÅö¤¹¤ëËÝÌõ¥Á¡¼¥à¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤ì¤Ï¤è¤¤¥¢¥¤¥Ç¥£¥¢¤À¤È»×¤¤¤Þ¤¹¡£ ËÝÌõ¤ò¹¹¤ËÎɤ¯¼óÈø°ì´Ó¤·¤¿¾õÂ֤ˤ¹¤ë¤Ç¤·¤ç¤¦¡£
9.4.2.1 ¥µ¥Ö¥«¥ë¥Á¥ã¡¼ 9.4.2.2 ÁÈ¿¥²½¤Ø¤Î¥¢¥¤¥Ç¥£¥¢
¥Õ¥é¥ó¥¹¸ì¤òÎã¤Ë¼è¤Ã¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥³¥ó¥Ô¥å¡¼¥¿¤ÎÀ¤³¦¤Ç¤Ï¡¢°ÕÌ£¤¬°Û¤Ê¤ë¸ì×à ¤ò»ý¤Ä´ö¤Ä¤«¤Î¥µ¥Ö¥«¥ë¥Á¥ã¡¼¤¬¤¢¤ê¤Þ¤¹¡£ÁÈ¿¥²½¤µ¤ì¤¿ÊýË¡¤Ç¤³¤ÎÌäÂê¤òÄ󵯤¹ ¤ë¤³¤È¤Ê¤·¤Ë¤¢¤Á¤³¤Á¤Ç¥Ü¥é¥ó¥Æ¥£¥¢¤òÁª¤ó¤Ç¤¤¤ë¤È¡¢¥×¥í¥¸¥§¥¯¥È¤Ë¤Ï¤¹¤°¤Ë¹ñ ºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¤´¤Á¤ãº®¤¼¾õÂÖ¤¬È¯À¸¤·¤Þ¤¹¡£¤½¤·¤Æ¤³¤È¤Ë¤è¤ë¤È¡¢¼ÂºÝ ¤Ë¤³¤ÎÌäÂê¤òµ¤¤Ë¤¹¤ë¿Í¡¹¤Î´Ö¤Ç½ª¤ê¤Ê¤¸ýÏÀ¤¬»Ï¤Þ¤ë¤Ç¤·¤ç¤¦¡£
¹ñºÝ²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò¥Õ¥é¥ó¥¹¸ì¤ØÃÏ°è²½¤¹¤ë²áÄø¤Ë¤ª¤¤¤Æ¡¢¤¢¤ë¼ï¤ÎÅý°ì¤ò
ÊݤĤ³¤È¤ÏÆñ¤·¤¤(¤½¤·¤Æ¥Ç¥ê¥±¡¼¥È¤Ê)»Å»ö¤Ç¤¹¡£¥Õ¥é¥ó¥¹¿Í¤Î¥é¥Æ¥ó¤Ê¿ÍÊÁ
(:-)¤òÃΤäƤ¤¤Æ¤â¡¢¤â¤·²æ¡¹¤¬¤³¤Î¤³¤È¤ò´Ö°ã¤Ã¤¿ÊýË¡¤Çª¤¨¤ì¤Ð¡¢²æ¡¹¤Ï¤É¤³
¤È¤âÃΤì¤Ì¾ì½ê¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤«¡¢Â¿¤¯¤Î¥¨¥Í¥ë¥®¡¼¤ò̵Â̤ˤ·¤Æ¤·¤Þ¤¦¤³¤È¤Ç
¤·¤ç¤¦¡£¤ª¤½¤é¤¯²æ¡¹¤Ï¡¢gettext
¤¬¸ø¼°¤Ëȯɽ¤µ¤ì¤ëÁ°¤Ë¿¿·õ¤Ë
¤³¤ÎÌäÂê¤Ë¼è¤êÁȤޤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£
»ä¤Ï¡¢¸ø¼°¥ê¥ê¡¼¥¹¸å¤Ë¼¡¤ÎÂ礤ÊÊѹ¹¤¬¤¢¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£¤É¤¦¤«¡¢»ä¤¬Ã»¤¤ GPL¥á¥Ã¥»¡¼¥¸¤Î¥É¥¤¥Ä¸ìËÝÌõ¤òÍѤ¤¤ë¤³¤È¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£²æ¡¹¤Ï¡¢¥Õ¥ê¡¼ ¥½¥Õ¥È¥¦¥§¥¢¥³¥ß¥å¥Ë¥Æ¥£¤Ë¤ª¤±¤ë¿¿¤ÎÃÏ°è²½¤¬¾Ã¤¨µî¤Ã¤Æ¤·¤Þ¤¦Á°¤Ë2¡¢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¤Ë¤ª¤¤¤Æ³Æ¹ñ¤Î¥Á¡¼ ¥à¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÄ󶡤¹¤ë¤³¤È¤Ï³Î¤«¤ËͱפǤ·¤ç¤¦¡£¤½¤¦¤Ç¤¹¡¢»ä ¤Ë¤É¤Î¤è¤¦¤Ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤·°·¤¨¤Ð¤è¤¤¤«¤òÀâÌÀ¤·¤Æ²¼¤µ¤¤¡£
²æ¡¹¤Ï°ì»þŪ¤Ê¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¡¢¿Í¡¹¤òÁÈ¿¥²½¤·¤ä¤¹¤¤¤è¤¦¤Ë¹ñ¤´¤È¤Ë°ì¤Ä¤Å ¤Äºî¤é¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤Ê¤¼°ì»þŪ¤«¡¢¤Ê¤¼¤Ê¤é°ìÅٺƹ½À®¤µ¤ì¤¿¤Ê¤é¡¢³Æ¹ñ¤Î¥Ü ¥é¥ó¥Æ¥£¥¢¤ÏÈà¤é¤Î¥ê¥¹¥È¤Ø¤ÈÌá¤Ã¤Æ¤¤Æ¡¢¤½¤·¤Æ¼«Ê¬Ã£¤¬Ë¾¤à¤è¤¦¤Ë´É Íý¤¹¤ë¤À¤í¤¦¤«¤é¤Ç¤¹¡£¤³¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸Ä¡¹¤Î¥Á¡¼¥à¤Ï¼«Ê¬Ã£¤Î¹ñ¤ÎÃ椫¤é ¼«Ê¬Ã£¤Î¥ê¥¹¥È¤òÆ°¤«¤¹¤À¤í¤¦¤È»×¤¤¤Þ¤¹¡£Á´¤Æ¤Î¥Á¡¼¥à¤¬¹ØÆɤ¹¤ë¤³¤È¤Î½ÐÍè¤ë¡¢ Ãæ±û¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âºî¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
¥Ñ¥Ã¥±¡¼¥¸¤¬ºÇ½ªÅª¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¸å¡¢¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ë¤Ä¤¤¤Æ¤Î´ö¤Ä¤«¤ÎµÄÏÀ ¤¬¤¢¤ë¤³¤È¤Ç¤·¤ç¤¦¡£º£¡¢¿Í¡¹¤¬¹¹¤ËÎɤ¤´ö¤Ä¤«¤Î¥á¥Ã¥»¡¼¥¸¤òÄó°Æ¤·¤¿¤È¤·¤¿¤é¡¢ ¤¢¤Ê¤¿¤Ï¤É¤¦¤·¤Þ¤¹¤«? ¥¸¥à¡¢»ä¤¬Ä󶡤¹¤ë1¥À¡¼¥¹¶á¤¤ÃÏ°è²½¤µ¤ì¤¿¥×¥í¥°¥é¥à ¤ÈƱÍÍ¡¢¤É¤¦¤«Ä¾¤Á¤Ë¤½¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤ËÃíÌܤ·¤Æ²¼¤µ¤¤¡£»ä¤ÏËÝÌõ¤È¤½¤ì¤é¤Ë ´Ø¤¹¤ëÄ´À°¤ÎξÊý¤ò¼õ¤±¼è¤ë¤Î¤Ç¤¹¡£
»ä¤¬»öÁ°¤Ë¥Æ¥¹¥È¤¹¤ë¤â¤Î¤ò°ì¤ÄÃÖ¤¤¤¿¤Ê¤é¤Ð¡¢Ulrich¤Ï¤½¤Î¹ðÃΤò¼õ¤±¼è¤ê¡¢¤½ ¤·¤Æ¤½¤ì¤òºÇ¸å¤Ë½¤Àµ¤¹¤ë¥É¥¤¥Ä¸ì¤Î¥Á¡¼¥à¤ËÅϤ·¤Þ¤¹¡£¤½¤·¤ÆÈà¤ÏÊݼé¼Ô ¤È¤·¤Æ»ä¤ËËÝÌõ¥Õ¥¡¥¤¥ë¤ò°ú¤ÅϤ·¤Þ¤¹¡£»ä¤¬Êݼ餷¤Æ¤¤¤Ê¤¤¥Õ¥ê¡¼¤Î¥Ñ¥Ã¥±¡¼ ¥¸¤Ë¤Ä¤¤¤Æ¤Ï²¿¤âʹ¤¤Þ¤»¤ó¡£»ä¤¬»×¤¦¤Ë¡¢Á´¤Æ¤ÎËÝÌõ¥×¥í¥¸¥§¥¯¥È¤Ë¤ª¤¤¤Æ¤³¤Î ¥¹¥¡¼¥à¤¬ºî¤é¤ì¤ë¤Ç¤·¤ç¤¦¡£¥»¥¥å¥ê¥Æ¥£¤Ë´Ø¤ï¤ëÍýͳ¤Î¤¿¤á¤Ë¡¢¤ª¤½¤é¤¯ Ulrich(¼ÂºÝ¤Î¹ñ²ÈŪ¥³¡¼¥Ç¥£¥Í¡¼¥¿)¤Ï»þÀÞËÝÌõ¥×¥í¥¸¥§¥¯¥È(Jim¡¢»ä¡¢Ëô¤Ï Len¤Î¿·¿Í)¤Ë¤è¤Ã¤ÆÊÝ»ý¤µ¤ì¤ëÃæ±û¤Î¥ì¥¸¥¹¥È¥ê¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤Ù¤¤Ç¤¹¡£
»ä¤Ï¾®¤µ¤ÊGNU¥Ñ¥Ã¥±¡¼¥¸¤Ï°ì½µ´Ö¤Ë°ì¤Ä¤º¤Ä¡¢¤è¤êÂ礤ʥѥ屡¼¥¸¤Ï¿ô½µ´Ö¤« ¿ô¥õ·î¤ò¤«¤±¤ë¤È¤¤¤¦ÀÕ̳¤ò»ä¼«¿È¤Ë²Ý¤·¡¢12·î¤«1·î¤Ë¤Ï»ä¤Ï¤ËGNU¤ÎÁ´¥Ñ¥Ã¥±¡¼ ¥¸¤ò¹ñºÝ²½¤¹¤ë½àÈ÷¤òÀѶËŪ¤ËÀ°¤¨¤Æ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¡¢¤½¤ì¤Ï¤½¤Î¤è¤¦¤Ë¤ÏÆ°¤ ¤Þ¤»¤ó¡£»ä¤ÏºÇ½é¤Ë¡¢»ä¤¬ÀÕǤ¤ò»ý¤ÄÁ´¤Æ¤Î¤³¤È¤ò¹Ô¤¤¤Þ¤·¤¿¡£»ä¤Ï¾¤ÎÊݼé¼Ô¤Î ´ö¤é¤«¤ÎÅÁÆ»ºî¶È¤ËÂФ·¤Æ²¿¤â»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤·¤«¤·»ä¤â¤Þ¤¿Â¿¤¯¤Î¥¨¥Í ¥ë¥®¡¼¤ò¼º¤¤¤Þ¤·¤¿---Ʊ¤¸µÄÏÀ¤ò·«¤êÊÖ¤·¤Þ¤¹¡£
¤½¤·¤Æ¡¢ºÇ½é¤ËÃÏ°è²½¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¤¡¢²æ¡¹¤Ï¡¢½¹°¤ÊËÝ Ìõ:- )¤Ë¤Ä¤¤¤Æ¤Î¿¤¯¤ÎÈ¿±þ¤òÆÀ¤ë¤Ç¤³¤È¤·¤ç¤¦¡£³Î¤«¤Ë¡¢¤½¤·¤Æ²æ¡¹¤Ï»öÁ°¤Ë¡¢ ¥Ñ¥Ã¥±¡¼¥¸Êݼé¼Ô¤È¹ñ²È¥Á¡¼¥à¤Î´Ö¤Î¾ðÊó¤Îή¤ì¤òÀ©¸æ¤¹¤ë¤³¤È¤Ë´Ø¤¹¤ëÎɤ¤¥¢¥¤ ¥Ç¥£¥¢¤ò»ý¤ÄɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤É¤¦¤«¤É¤³¤«¤Ë³ÆPO¥Õ¥¡¥¤¥ë¤Î¿×®¤Ê¥Ò¥¹¥È¥ê¤òÊݸ¤·»Ï¤á¤Æ²¼¤µ¤¤¡£¥³¥á¥ó¥È¤ò ǧ¤á¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¤¤¤º¤ìÊѹ¹¤µ¤ì¤ë¤Ç¤¢¤í¤¦¤³¤È¤ò»ä¤Ï ÃΤäƤ¤¤Þ¤¹¡£³Æ¥Õ¥¡¥¤¥ë¤¬¥í¥°¤Î¤è¤¦¤Ê¤â¤Î¡¢¤½¤·¤Æ¥³¥á¥ó¥È¤äÉÔÊ¿¤Î¿½¤·Î©¤Æ¡¢ Ëô¤Ï¤½¤Î¾¤Î¹×¸¥¤ò¤·¤¿¤¤¤È»×¤¦¿Í¡¹¤Ø¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ý¤Ä¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£ »ä¤Ï¹â®¤Ç¥Õ¥ì¥¥·¥Ö¥ë¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë´Ø¤¹¤ë¿½¤·Î©¤Æ¤ò¤·¤Þ¤·¤¿¤¬¡¢¤·¤«¤·¤½ ¤ì¤Ï¤Þ¤ÀGNU¤Î°Õ»×·èÄê¼Ô¤Ë¤è¤Ã¤Æ¼õ¤±Æþ¤ì¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£»ä¤¬¤³¤ì¤Ë¤Ä¤¤¤Æ¤è ¤ê¿¤¯¤Î¾ðÊó¤òÆÀ¤¿¤Ê¤é¡¢¤³¤Î¤³¤È¤Ë¤Ä¤¤¤Æ¤ªÏä·¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
¥Ñ¥Ã¥±¡¼¥¸¤ÎÊݼéôÅö¼Ô¤Ï¿¤¯¤ÎÀÕǤ¤ò»ý¤Á¤Þ¤¹¡£°ì¤Ä¤Ï¿¤¯¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç ¥Ñ¥Ã¥±¡¼¥¸¤ò´Êñ¤Ë¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡¢¤½¤·¤Æ´û¤Ë½Ò¤Ù¤¿ËâË¡ (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 ºîÀ®¤¹¤ë¤«Êѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë
´ö¤Ä¤«¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï°ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥êÃæ¤ËŸ³«¤µ¤ì¤ë
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
¤ò¥Õ¥é¥Ã¥È¤ÊÇÛÉÛʪ¤ËÂФ·¤ÆŬ±þ¤µ¤»¤ë·Ð¸³¤òº£¸åÀѤó¤À¤Ê¤é¡¢¥Õ
¥é¥Ã¥È¤Ê¹½Â¤¤ò½èÍý¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¿·¤¿¤Ëµ½Ò¤¹¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£
¥Ñ¥Ã¥±¡¼¥¸¤ËGNU gettext
¤òŬÍѤµ¤»¤ëÁ°¤Ë¡¢¤ä¤Ã¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
´ö¤Ä¤«¤Îºî¶È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Îºî¶È¤Ï¡¢¤³¤Î¾Ï¤Ç¤ÎÃí°Õ¤òÃà°ìµ½Ò¤»¤º¤ËºÑ¤Þ
¤»¤ë¤¿¤á¤Î°ì¼ï¤Î°ìÈÌˡ§¤Ç¤¹¡£¤½¤ì¤é¤Îºî¶È¤Ë¤Ä¤¤¤Æµ½Ò¤·¤Þ¤¹¡£
m4
¡¢GNU Autoconf¤½¤·¤ÆGNU gettext
¤ÎºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤¬´û
¤Ë¤¢¤Ê¤¿¤Î¥µ¥¤¥È¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£¤â¤·¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê
¤¤¤Ê¤é¤Ð¡¢ºÇ½é¤Ë¤½¤ì¤é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤é¤¬Á´¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ
¤ì¤Æ¤¤¤ë¤Ë¤·¤Æ¤â¡¢GNU Autoconf¤¬¹½À®¤µ¤ì¤ëÁ°¤ËGNU m4
¤¬´°Á´¤Ë
¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Í¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ëµ¤¤ò¤Ä¤±¤Æ²¼¤µ¤¤¡£
automake
¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¼Ô¤Îºî¶È¤¬¤è¤ê´Êñ¤Ë¤Ê¤ë¤è¤¦¤Ë
À߷ס¦¼ÂÁõ¤µ¤ì¤Þ¤·¤¿¡£¸½ºß¡¢GNU gettext
¤Ï¤³¤Î¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¤ª¤ê¡¢
`intl/'¤È`po/'¤Ë¤¢¤ë`Makefile'¤Ïautomake
µÚ¤Ó¥×¥í¥¸¥§
¥¯¥ÈÃæ¤Ë¤¢¤ë`libintl'¤ò»ÈÍѤ¹¤ë¤¿¤á¤ËɬÍפÊÁ´¤Æ¤Î¥´¡¼¥ë¤Ë¤Ä¤¤¤ÆÃΤäÆ
¤¤¤Þ¤¹
¤³¤ì¤é4¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÏÊݼéôÅö¼Ô¤À¤±¤¬É¬ÍפȤ·¤Þ¤¹¡£¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼
¥é¤ä¥¨¥ó¥É¥æ¡¼¥¶¤Ë¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤¬Å¬ÀÚ¤ËÊÑ´¹¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼
¥ë¤·Æ°ºî¤µ¤»¤ë¤¿¤á¤Ë¡¢GNU m4
¡¢GNU Autoconf¡¢GNU gettext
¤½¤·
¤Æautomake
¤¬ËÜÅö¤ËɬÍפÀ¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¤â¤·¥Ñ¥Ã
¥±¡¼¥¸Ãæ¤Ë¹ñºÝ²½¤µ¤ì¤¿¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤Ê¤éÏäÏÊѤï¤Ã¤Æ¤¤Þ¤¹¡£
¤â¤·¥¨¥ó¥É¥æ¡¼¥¶¤¬¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î¥á¥Ã¥»¡¼¥¸¤òËÝÌõ¤·¤Æ»È¤¤¤¿¤¤¤È»×¤¦¾ì¹ç
¤Ï¡¢GNU gettext
¤¬¥æ¡¼¥¶¤Î¥µ¥¤¥È¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ
¤¹¡£
ÊݼéôÅö¼Ô¤¬PO¥Õ¥¡¥¤¥ë¤ÎÄ󶡤ËÂФ·¤É¤Î¤è¤¦¤ËÍýÁÛŪ¤Ë¿¶Éñ¤¦¤Ù¤¤«¤Ë¤Ä¤¤¤Æ¡¢ ¾¯¤·ÀâÌÀ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£ÊݼéôÅö¼Ô¤È¤·¤Æ¤ÎÌò³ä¤Ï¡¢ËÝÌõ¥×¥í¥¸¥§¥¯¥È ¤ÎŬÀÚ¤ÊËÝÌõ¥Á¡¼¥à¤ÎÂåɽ¼Ô(µ¿Ì䤬¤¢¤ë¾ì¹ç¤ÏÄó½Ðʪ¤ò `[email protected]'¤ËžÁ÷¤·¤Þ¤¹)¤È¤·¤Æ¤ÎÄ󶡸µ¤ò¾µÇ§¤¹¤ë ¤³¤È¤Ç¤¹¡£PO¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬·ã¤·¤¯²õ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¡¢Àµ¾ï¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤ò˸ ¤²¤Ê¤¤¤³¤È¤¬ÊݾڽÐÍ褿¤é¡¢ºÇ¸å¤Ï¤¿¤Àñ¤Ë¤³¤ì¤é¤ÎPO¥Õ¥¡¥¤¥ë¤òÇÛÉÛʪ¤Î `po/'¥Ç¥£¥ì¥¯¥È¥ê¤ËÆþ¤ì¤ë¤À¤±¤Ç¤¹¡£
ÊݼéôÅö¼Ô¤È¤·¤Æ¡¢¤¢¤Ê¤¿¤ÏËÝÌõ¤¬Å¬ÀÚ¤«´°Á´¤«¤È¤¤¤¦¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤ÎÊó¹ð¤Ë¤Ä ¤¤¤ÆÀÕǤ¤òÉ餦ɬÍפϤʤ¯¡¢¸À¸ì¾å¤ÎÌäÂê¤ËË×Ƭ¤¹¤ë¤³¤È¤ÏÈò¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤» ¤ó¡£ËÝÌõ¥Á¡¼¥à¤Ï¼«¤éÆ°¤¡¢¤½¤·¤ÆËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ËÂФ¹¤ë¸À¸ì¤ÎÁªÂò¤Ë¤Ä¤¤¤Æ ½¼Ê¬¤ËÀÕǤ¤òÉé¤Ã¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥Á¡¼¥à¤ÏÊݼéôÅö¼Ô¤Ë¤è¤Ã¤ÆÆ°¤«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç ¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò¿´¤Ë»ß¤á¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ÊݼéôÅö¼Ô¤Ï¸À ¸ì¾å¤ÎÌäÂê¤Ë´Ø¤ï¤ë¥æ¡¼¥¶¤È¤Î¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¤ä¡¢¥æ¡¼¥¶¤«¤é¤ÎÊó¹ð¤ÎÁ´¤Æ¤ò Ãí°Õ¿¼¤¯Å¾Á÷¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Å¬ÀÚ¤ÊËÝÌõ¥Á¡¼¥à¤ò½õ¤±¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤Þ¤¿¡¢ ¤½¤ì¤é¤ò¤¤¤«¤Ë¤·¤ÆËÝÌõ¥Á¡¼¥à¤ËÆϤ±¤ë¤«¡¢¤¢¤ë¤¤¤Ï¤É¤Î¤è¤¦¤Ë¤·¤ÆËÝÌõ¥Á¡¼¥à¤Ë ²Ã¤ï¤ì¤Ð¤è¤¤¤«¤ò¥æ¡¼¥¶¤ËÂФ·¤ÆÀâÌÀ¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£¤â¤Ã¤È¤âñ½ã¤ÊÊýË¡¤Ï¡¢ ¥æ¡¼¥¶¤Ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤òÁ÷¤ë¤³¤È¤Ç¤·¤ç¤¦¡£
ÊݼéôÅö¼Ô¤Ï·è¤·¤ÆËÝÌõ¥Á¡¼¥à¤ò̵»ë¤·¤ÆPO¥Õ¥¡¥¤¥ë¤Î¥Ð¥°¥ì¥Ý¡¼¥È¤òŬ ÍѤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤â¤·²¿¿Í¤«¤ÎËÝÌõ¼Ô¤¬Èà½÷¤Î¥Á¡¼¥à¤ÎÃæ¤ÇÏäγﮤòÄϤळ ¤È¤¬Æñ¤·¤¤¤È¤¤¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢Èà½÷¤Ïľ¤ËÊݼéôÅö¼Ô¤ÈËÝÌõ¤ò¼è¤ê·è¤á¤Æ¤â¤è¤¤¤Ç ¤·¤ç¤¦¡£¤·¤«¤·Ä̾ËÝÌõ¥Á¡¼¥à¤Ï¥Á¡¼¥à¼«¿È¤Ç¤½¤ì¤é¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Ù¤¤Ç¤¹¡£ ÊݼéôÅö¼Ô¤¬ËÝÌõ¥Á¡¼¥à¤Ë´Ø¤·¤ÆËÜÅö¤ËÌäÂ꤬¤¢¤ë¤È¹Í¤¨¤Æ¤¤¤ë¤È¤·¤Æ¤â¡¢Êݼéô Åö¼Ô¤Ï·è¤·¤Æ¥Á¡¼¥à¤ÎÌäÂê¤ò²ò·è¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¡£
gettextize
¥×¥í¥°¥é¥à¤Îµ¯Æ°
GNU gettext
¤ò»È¤Ã¤Æ¹ñºÝ²½¤µ¤ì¤¿Á´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢´ö¤Ä¤«¤Î¥Õ¥¡¥¤
¥ë¤¬¾ï¤Ë¤½¤·¤ÆƱ¤¸¤è¤¦¤ËɬÍפǤ¹¡£°·¤¤¤ä¤¹¤¤¤è¤¦¤Ë¡¢gettextize
¥×¥í
¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ËÀµ¤·¤¯ÃÖ¤¤Þ¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï°Ê
²¼¤Î½ñ¼°¤ò¼è¤ê¤Þ¤¹¡£
gettextize [ option... ] [ directory ] |
°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬»ÈÍѲÄǽ¤Ç¤¹¡£
gettext
¥³¡¼¥É¤ò»ÈÍѤǤ¤Þ¤¹¤¬¡¢ÊݼéôÅö¼Ô¤¬¥½¡¼¥¹¤ËŬÍѤ¹¤ë´ö¤Ä¤«¤Î
¥á¥«¥Ë¥º¥à¤ò˸³²¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£gettextize
¤ò¼Â¹Ô¤¹¤ë¤Î¤Ï´Êñ¤Ê
¤³¤È¤Ç¤¹¤Î¤Ç¡¢¥³¥Ô¡¼¤ò»È¤¦¤³¤È¤Ë´Ø¤¹¤ëÌäÂ꤬ȯÀ¸¤¹¤ë¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
directory¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤ÏGNU gettext
¤¬»È¤ï¤ì¤ë¥Ñ¥Ã
¥±¡¼¥¸¤ÎºÇ¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£
¥ì¥¯¥È¥ê¤¬¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤Þ¤¹¡£
gettextize
¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÍÑ°Õ¤·¤Þ¤¹¡£--force
(-f
)¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤¬ÃÖ¤´¹¤¨¤é
¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
gettextize
¤¬½àÈ÷¤¹¤ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤è¤ê¤â¿·
¤·¤¤¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥±¡¼¥¸¤ËÆþ¤ì¤¿¤¤¤È¹Í¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ºÇ¿·¤Î
`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤ÏËؤó¤É¤ÎGNU¥¢¡¼¥«¥¤¥Ö¥µ¥¤¥È¤«¤é¼ê¤ËÆþ¤ì¤ë¤³¤È¤¬
¤Ç¤¤Þ¤¹¡£
gettext
ÇÛÉۥѥ屡¼¥¸Ãæ¤Î
`po/Makefile.in.in'¥Õ¥¡¥¤¥ë¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¹(¥Õ¥¡¥¤¥ë̾¤ËÆó¤Ä
¤Î.in¤¬¤Ä¤¤¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤)¡£¤â¤·`po/'¥Ç¥£¥ì¥¯¥È¥ê¤¬´û¤Ë¸
ºß¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢po¥Ç¥£¥ì¥¯¥È¥ê¤È¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¤Þ¤Þ¤Ë¤·¤Æ¡¢
`Makefile.in.in'¤Î¤ß¤¬¾å½ñ¤¤µ¤ì¤Þ¤¹¡£
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'¤ÏÁ´¤Æ¤Î¥Ñ¥Ã
¥±¡¼¥¸¤Ë¤ª¤¤¤ÆƱ¤¸¤Ç¤¢¤êÆÀ¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£
gettextize
¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë²Ã¤¨¤é¤ì¤ë¥Õ¥¡¥¤¥ë°Ê³°¤Ë¤â¡¢ GNU
gettext
¤È¶¦¤ËŬÀڤ˻ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¿¤¯¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÊѹ¹¤ò²Ã¤¨
¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Makefile¤ÎÀ߷פ䥪¡¼¥È¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó
(auto-configuration)¤¬GNUɸ½à¤ËÌ©Àܤ˽¾¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢Êѹ¹ºî¶È¼«ÂΤϹ¹¤Ë´Ê
ñ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï¡¢¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆɬÍפȤʤëÊѹ¹¤Ë¤Ä¤¤¤Æ°ì¤Ä°ì
¤ÄÀâÌÀ¤·¤Þ¤¹¡£
°Ê²¼¤Ë¥Õ¥¡¥¤¥ë¤Î°ìÍ÷¤ò¼¨¤·¤Þ¤¹¡£¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëɬÍפÊÁ´¤Æ¤ÎÊѹ¹¤Ë¤Ä
¤¤¤Æ¤Ï¡¢¤½¤ì¤Ë³¤¤¤Æµ½Ò¤·¤Þ¤¹¡£Â¿¤¯¤ÎÎã¤Ï¡¢GNU gettext
0.10¤½¤ì¼«¿È¤«¤éºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£gettext
¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼
¥¹¥³¡¼¥É¤ò»²¾È¤¹¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£GNU gettext¥Ñ¥Ã¥±¡¼¥¸¤ÏÎɤ¤Îã¤Ç¤¢¤ê¡¢¤½
¤·¤Æ¤½¤ì¼«¿È¤Îµ¡Ç½¤ò»È¤¦¤¿¤á¤Î¼ÂÁõ¤Î¸¶ËܤȤ·¤Æ»È¤¨¤ë¤«¤é¤Ç¤¹¡£
`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'¥Õ¥¡¥¤¥ë¤«¤é¤ÎÁêÂаÌÃ֤ǤϤʤ¯¡¢¥Ñ¥Ã¥±¡¼¥¸¤ÎºÇ ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂаÌÃ֤ǵ½Ò¤·¤Þ¤¹¡£
Àë¸À¤¬¹Ô¤ï¤ì¤¿Îã¤ò¼¨¤·¤Þ¤¹¡£
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'¤È¤Ê¤ê¤Þ¤¹)¡£
ÍøÍѲÄǽ¤Ê¸À¸ì¤Ï¡¢¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿°úÍÑʸ»úÎó¤È¤·¤ÆALL_LINGUAS
¤Ë°ì¹Ô
¤ÇÄêµÁ¤·¤Þ¤¹¡£Î㤨¤Ð¤³¤Î¤è¤¦¤Ë¡£
ALL_LINGUAS="de fr" |
¤³¤ÎÎã¤Ï¡¢¥É¥¤¥Ä¸ì¤È¥Õ¥é¥ó¥¹¸ì¤¬¥Ñ¥Ã¥±¡¼¥¸¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Ù¤¯¡¢¤³¤ÎÆó¤Ä¤Î
¸À¸ì¤ÎPO¥Õ¥¡¥¤¥ë¤¬»ÈÍѲÄǽ¤Ê¤³¤È¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥¤¥ó¥¹¥È¡¼
¥ë¸À¸ì¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¹¹¤Ê¤ëÀ©¸Â¤ò¤«¤±¤¿¤¤¤È¤·¤Æ¤â¡¢¤½¤ì¤Ï
`configure.in'Ãæ¤ÎALL_LINGUAS
¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¦¤Ù¤¤Ç
¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤½¤ÎÂå¤ï¤ê¤Ë´Ä¶ÊÑ¿ôLINGUAS
¤ò»ÈÍѤ·¤Þ¤¹
(see section 7.2 ¥¤¥ó¥¹¥È¡¼¥é¤Ø¤ÎËâË¡)¡£
¤³¤ì¤Ï¡¢¹ñºÝ²½¥µ¥Ý¡¼¥È¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥á¥¤¥ó¤Îm4
¥Þ¥¯¥í¤Ç¤¹¡£
`configure.in'¤Ë¼¡¤Î¹Ô¤òÄɲ䷤Ʋ¼¤µ¤¤¡£
AM_GNU_GETTEXT |
¤³¤ì¤Ë¤è¤Ã¤Æ¥Á¥§¥Ã¥¯¤ä¥¢¥¯¥·¥ç¥ó¤Î¤¿¤á¤Ëconfigure¤ËŤ¤»þ´Ö¤¬¤«¤«¤ë¤è¤¦¤Ë ¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤Î¸Æ½Ð¤½¤Î¤â¤Î¤Ï¼Â¤Ë´Êñ¤Ç¤¹¡£
`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'¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£
¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Ë`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
¤ò»ÈÍѤ¹¤ëÁ´¤Æ
¤Î¥×¥í¥¸¥§¥¯¥È¤ÇƱ¤¸¤â¤Î¤Ë¤Ê¤ë¤È»×¤ï¤ì¤ë¤«¤é¤Ç¤¹¡£
ÇÛÉÛʪÃæ¤Ë`acconfig.h'¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤â¤Ã¤È¤â´Êñ¤Ê²ò·èºö¤Ï
GNU gettext
¤«¤é`acconfig.h'¤ò¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¤¹¡£¤·¤«¤·¸·Ì©¤Ë
¤Ï¡¢É¬ÍפȤʤë¤Î¤ÏENABLE_NLS
¡¢HAVE_CATGETS
¡¢
HAVE_GETTEXT
¡¢HAVE_LC_MESSAGES
¡¢HAVE_STPCPY
¡¢
PACKAGE
¡¢VERSION
¤¬´Þ¤Þ¤ì¤¿¹Ô¤È¥³¥á¥ó¥È¤À¤±¤Ç¤¹¡£½¾¤Ã¤Æ¡¢¥¨¥Ç¥£
¥¿¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆɬÍפȤ·¤Ê¤¤Éôʬ¤òÁ´¤Æ¼è¤ê½ü¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
´û¤Ë`acconfig.h'¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¡¢Á°½Ò¤ÎÄêµÁ¤ò¤¢¤Ê¤¿¤Î
`acconfig.h'¤Ë¥Þ¡¼¥¸¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¸ºß¤¹¤ë¤Î`Makefile.in'¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë´ö¤Ä¤«¤Î½¤ÀµÅÀ¤Ë ¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£
PACKAGE = @PACKAGE@ VERSION = @VERSION@ |
DISTFILES
ÄêµÁ¤Ë`ABOUT-NLS'¥Õ¥¡¥¤¥ë¤òÄɲ䷤Ʋ¼¤µ¤¤¡£
¤³¤ì¤Ë¤è¤Ã¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤ÏÇÛÉÛÂоݤȤʤê¤Þ¤¹¡£
automake¤«¤éÀ¸À®¤µ¤ì¤ë¤«¡¢°¿¤¤¤ÏGNU¥³¡¼¥Ç¥£¥ó¥°µ¬Ìó¤ËÃí°Õ¿¼¤¯½¾¤Ã¤¿¼ê½ñ¤ ¤ÎMakefile¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ë¥´¡¼ ¥ë¤È¤·¤Æ¡¢`installdirs'¡¢`install'¡¢`uninstall'¡¢ `clean'¡¢`distclean'¤ò´Þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤³¤Ë¸·Ì©¤Ê½èÍý¤Î½çÈÖ¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÎã¤Ç¤Ï¸å¤Û¤É`dist:'¥´¡¼¥ë¤Ç
»È¤¨¤ë¤è¤¦¤Ë¡¢Makefile.in
¤ÇSUBDIRS
¤ò¤â¤Þ¤¿ÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
SUBDIRS = doc lib @INTLSUB@ src @POSUB@ |
¤³¤ì¤¬¡¢¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤ÆŬÍѤ»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ç¤¹¡£
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) |
¥á¥¤¥ó¤Î`Makefile.in'¤ËÂФ·¤Æ¹Ô¤ï¤ì¤¿´ö¤Ä¤«¤Î½¤Àµ¤Ï¡¢¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼ ¥¸¥½¡¼¥¹(¤³¤³¤Ç¤Ï`src/'¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¤È²¾Äꤵ¤ì¤ë)¤Î `Makefile.in'¤ËÂФ·¤Æ¤âɬÍפˤʤë¤Ç¤·¤ç¤¦¡£`src/Makefile.in'¤Ëɬ ÍפȤʤëÁ´¤Æ¤Î½¤Àµ¤ò¼¨¤·¤Þ¤¹¡£
PACKAGE = @PACKAGE@ VERSION = @VERSION@ |
top_srcdir
¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Ê
¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ïcpp
¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ë¹×¸¥¤¹¤ë¤Ç¤·¤ç¤¦¡£
¤³¤Î¹Ô¤òÄɲ乤ë¤À¤±¤Ç¤¹¡£
top_srcdir = @top_srcdir@ |
subdir
¤È¤·¤Æ`src'¤â¤Þ¤¿ÄêµÁ¤·¤¿¤¤¤È¹Í¤¨¤ë¤Ç¤·¤ç¤¦¡£¸å¤«¤é½Ò¤Ù
¤ë`dist:'¥´¡¼¥ë¤Ë´Ø¤¹¤ë¹à¤Ç¤Ï¡¢¼¡¤ÎÄêµÁ¤¬¤Ê¤µ¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Þ¤¹¡£
subdir = src |
@INTLLIBS@
¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë
¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ì¤òLIBS
¤ËÄɲ䷤Ƥ·¤Þ¤¦¤Î¤¬´Êñ¤Ç¤¹¡£¤³¤Î
¤è¤¦¤Ë¤·¤Þ¤¹¡£
LIBS = @INTLLIBS@ @LIBS@ |
GNU gettext
¤Ë¤è¤Ã¤Æ¹ñºÝ²½¤µ¤ì¤¿Â¿¤¯¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢¥Ó¥ë¥ÉÍѤÎÊä½õ
´Ø¿ô·²¤¬´Þ¤Þ¤ì¤ë¥é¥¤¥Ö¥é¥ê¤òÃÖ¤¯¤¿¤á¤Î`lib/'¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤Ç¤·¤ç
¤¦(¾¯¤Ê¤¯¤È¤â¡¢GNU gettext
¥é¥¤¥Ö¥é¥ê¼«¿È¤¬É¬ÍפȤ¹¤ë´ö¤Ä¤«¤Î´Ø¿ô¤¬
ɬÍפˤʤê¤Þ¤¹)¡£¤·¤«¤·`lib/'Ãæ¤Î´ö¤Ä¤«¤Î´Ø¿ô¤Ï¡¢ÅöÁ³¤Ê¤¬¤éËÝÌõ¤µ¤ì¤ë
¤Ù¤¥á¥Ã¥»¡¼¥¸¤ò¤â¤Þ¤¿´Þ¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Êä½õ¥é¥¤¥Ö
¥é¥ê(`libsupport.a'¤È¤·¤Þ¤·¤ç¤¦)¤òÁ°½Ò¤ÎÎã¤Ë¤ª¤±¤ë
@INTLLIBS@
¤È@LIBS@
¤Î´Ö¤ËÃÖ¤¯¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¹¡£¤½¤ÎÂå¤ê
¤Ë¡¢¤³¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
LIBS = ../lib/libsupport.a @INTLLIBS@ ../lib/libsupport.a @LIBS@ |
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist: Makefile $(DISTFILES) for file in $(DISTFILES); do \ ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \ done |
²æ¡¹¤Ï¤³¤ÎGNU gettext
¥Þ¥Ë¥å¥¢¥ë¤òËÝÌõ¥×¥í¥¸¥§¥¯¥È¤ÎÎò»Ë¤Ç¤â¤Ã¤Æ
Äù¤á¤¯¤¯¤í¤¦¤È»×¤¤¤Þ¤¹¡£ºÇ¸å¤Ë¥Í¥¤¥Æ¥£¥Ö¥é¥ó¥²¡¼¥¸¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤ÆÆɤó¤À
¤ê¡¢Ä´¤Ù¤¿¤ê¤·¤¿¤¤¿Í¤Î¤¿¤á¤Ë´ö¤Ä¤«¤Î¥Ý¥¤¥ó¥¿¤ò¼¨¤·¤Þ¤¹¡£
11.1 GNU gettext
¤ÎÎò»Ë11.2 »²¹Íʸ¸¥
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¥Þ¥Ë¥å¥¢¥ë¤â´ó£¤·¤Æ¤¤¤Þ¤¹¡£
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/ |
ISO 639¤Ï¿¤¯¤Î¹ñ²È¤ËÂФ·¤Æ2ʸ»ú¤Î¥³¡¼¥É¤òµ¬Äꤷ¤Æ¤¤¤Þ¤¹¡£ËÝÌõ¥×¥í¥¸¥§ ¥¯¥È¤¬¹ñ²È¤ä¸À¸ì¤ËÂФ·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¾Êά·Á¤Ë¤Ï¡¢¤³¤Îɸ½à¤¬ºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£
[Top] | [Contents] | [Index] | [ ? ] |
¤³¤ÎÀ©¸Â¤ÏGNU gettext
¤Ë¤è¤Ã¤Æ¶¯À©¤µ¤ì
¤¿¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢Solaris¤Îmsgfmt
¤Î¼ÂÁõ¤«¤éÍè¤Æ¤¤¤Þ¤¹¡£
Ultrix¤Ê¤É¤Î°ìÉô¤Î¥·¥¹¥Æ¥à¤Ç¤ÏLC_MESSAGES
¤ò»ý¤Ã¤Æ
¤¤¤Ê¤Þ¤»¤ó¡£¤³¤³¤Ç²æ¡¹¤Ï¤³¤Î¤¿¤á¤Ë×ó°ÕŪ¤ÊÃÍ(arbitrary value)¤ò»È¤¤¤Þ¤¹¡£
¥·¥¹¥Æ¥à¤¬setlocale
¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤È¤¡¢¥í¥«¡¼¥ë¤ÎÃÍ
¤òÀßÄꤹ¤ëÆ°ºî¤Ï´Ä¶ÊÑ¿ô¤ò»²¾È¤¹¤ë¤³¤È¤Ë¤è¤ê¥·¥ß¥å¥ì¡¼¥È¤µ¤ì¤Þ¤¹¡£
[Top] | [Contents] | [Index] | [ ? ] |
gettext
¤ÎÌÜŪ
gettext
¤Î³µÍ×
gettext
¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò´°Î»¤¹¤ë
gettext
¤Î½èÍý¤ò¥È¥ê¥¬¤¹¤ë
xgettext
¥×¥í¥°¥é¥à¤Îµ¯Æ°
msgmerge
¥×¥í¥°¥é¥à¤Îµ¯Æ°
msgfmt
¥×¥í¥°¥é¥à¤Îµ¯Æ°
catgets
¤Ë¤Ä¤¤¤Æ
catgets
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤ª¤±¤ëÌäÂêÅÀ¤È¤Ï?!
gettext
¤Ë¤Ä¤¤¤Æ
gettext
grok
catgets
¤Ë¤Ä¤¤¤Æ
gettextize
¥×¥í¥°¥é¥à¤Îµ¯Æ°
gettext
¤ÎÎò»Ë
[Top] | [Contents] | [Index] | [ ? ] |
1. ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó
2. PO¥Õ¥¡¥¤¥ë¤ÈPO¥â¡¼¥É¤Î´ðËÜ
3. ¥×¥í¥°¥é¥à¥½¡¼¥¹¤Î½àÈ÷
4. ºÇ½é¤ÎPO¥Õ¥¡¥¤¥ë¤Î½àÈ÷
5. ´û¸¤ÎPO¥Õ¥¡¥¤¥ë¤Î¹¹¿·
6. MO¥Õ¥¡¥¤¥ë¤ÎºîÀ®
7. ¥æ¡¼¥¶¤È¤·¤Æ¤Î»ëÅÀ
8. ¥×¥í¥°¥é¥Þ¤È¤·¤Æ¤Î»ëÅÀ
9. ËÝÌõ¼Ô¤È¤·¤Æ¤Î»ëÅÀ
10. ÊݼéôÅö¼Ô¤È¤·¤Æ¤Î»ëÅÀ
11. ·ëÏÀ
A. ¹ñ²È¥³¡¼¥É
[Top] | [Contents] | [Index] | [ ? ] |
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 |