Next: , Previous: System Functions, Up: Writing C   [Contents]


5.8 ¹ñºÝ²½

GNU¤Ï¤¢¤ë¥×¥í¥°¥é¥à¤Î¥á¥Ã¥»¡¼¥¸¤òÍÍ¡¹¤Ê¸À¸ì¤ËËÝÌõ¤¹¤ë¤Î¤òÍÆ°×¤Ë¤¹¤ëGNU gettext¤È¸Æ¤Ð¤ì¤ë¥é¥¤¥Ö¥é¥ê¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤¢¤é¤æ¤ë¥×¥í¥°¥é¥à¤Ç¤³¤Î¥é¥¤¥Ö ¥é¥ê¤ò»È¤¦¤Ù¤­¤À¡£¥á¥Ã¥»¡¼¥¸¤¬¥×¥í¥°¥é¥à¤Ë¸½¤ì¤ë¤È¤­¡¢¤½¤ì¤é¤Ë±Ñ¸ì¤ò»È¤¤ ¤Ê¤µ¤¤¡£¤½¤·¤Æ¡¢¤½¤ì¤é¤ò¾¤Î¸À¸ì¤ËËÝÌõ¤¹¤ë¤¿¤á¤ÎÊýË¡¤ògettext¤ÇÄ󶡤·¤Ê ¤µ¤¤¡£

GNU gettext¤Î»ÈÍѤÏËÝÌõ¤¬É¬Íפ«¤â¤·¤ì¤Ê¤¤¡¢¤½¤ì¤¾¤ì¤Îʸ»úÎó¤Î¼þ¤ê¤Ë gettext¥Þ¥¯¥í¤Î¸Æ¤Ó½Ð¤·¤òÉÕ¤±¤ë¤³¤È¤ò´Þ¤à —¼¡¤Î¤è¤¦¤Ë¡£

printf (gettext ("Processing file `%s'..."));

¤³¤¦¤¹¤ë¤È¡¢GNU gettext¤¬Ê¸»úÎó"Processing file `%s'..."¤òËÝÌõ¤µ ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¡£

°ìÅÙ¥×¥í¥°¥é¥à¤¬gettext¤ò»È¤¦¤³¤È¤Ë¤Ê¤Ã¤¿¤é¡¢ËÝÌõ¤¬É¬Íפʿ·¤·¤¤Ê¸»úÎó¤ò ²Ã¤¨¤ë¤È¤­¡¢gettext¤Ø¤Î¸Æ¤Ó½Ð¤·¤ò½ñ¤¯ÃÏÅÀ¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£

¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ç¤ÎGNU gettext¤Î»ÈÍѤϡ¢¤½¤Î¥Ñ¥Ã¥±¡¼¥¸¤ËÂФ·¤Æ¥Æ¥­¥¹ ¥ÈÎΰè̾¤ò»ØÄꤹ¤ë¤³¤È¤ò´Þ¤à¡£¥Æ¥­¥¹¥ÈÎΰè̾¤Ï¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎËÝÌõ¤ò¾ ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎËÝÌõ¤ÈʬΥ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£Ä̾¥Æ¥­¥¹¥ÈÎΰè̾¤Ï¥Ñ¥Ã¥±¡¼ ¥¸¤Î̾Á°¤ÈƱ¤¸¤Ç¤¢¤ë¤Ù¤­¤À —Î㤨¤Ð¡¢GNU file utility¤Î¤¿¤á¤Ë ‘fileutils’¤¬»È¤ï¤ì¤ë¡£

gettext¤¬¾å¼ê¤¯Æ¯¤¯¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¡¢Ã±¸ì¤äʸ¤Î¹½Â¤¤Ë²¾Äê¤òÀߤ±¤ë¥³¡¼¥É ¤ò½ñ¤«¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡£Ê¸¤ÎÀµ³Î¤Ê¥Æ¥­¥¹¥È¤¬¥Ç¡¼¥¿¤Ë¤è¤Ã¤ÆÊѤï¤ë¤Î¤è¤¦ ¤Ë¤·¤¿¤¤¤È¤­¡¢¾ò·ïÉÕ¤±¤é¤ì¤¿Ã±¸ì¤ä¶ç¤òñ°ì¤Îʸ̮¹½À®¤Ë²¡¤·¹þ¤à¤è¤ê¤â¡¢¤½ ¤ì¤¾¤ì´°Á´¤Êʸ¤ò´Þ¤àÆó¤Ä°Ê¾å¤Îʸ»úÎóÄê¿ô¤ò»È¤¤¤Ê¤µ¤¤¡£

¤³¤ì¤¬¤ä¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¤â¤Î¤ÎÎã¤À¡£

printf ("%d file%s processed", nfiles,
        nfiles != 1 ? "s" : "");

¤³¤ÎÎã¤ÎÌäÂê¤ÏÊ£¿ô·Á¤¬‘s’¤ò²Ã¤¨¤ë¤³¤È¤Ç¹Ô¤ï¤ì¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¤³¤È¤À¡£¤â ¤·½ñ¼°Ê¸»úÎó¤Ëgettext¤òŬÍѤ¹¤ë¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ë¡¢¥á¥Ã¥»¡¼¥¸¤¬°Û¤Ê¤ëñ¸ì ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢

printf (gettext ("%d file%s processed"), nfiles,
        nfiles != 1 ? "s" : "");

Ê£¿ô·Á¤¬‘s’¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ª¶¯À©¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤¬¤è¤êÎɤ¤ÊýË¡¤À¡£

printf ((nfiles != 1 ? "%d files processed"
         : "%d file processed"),
        nfiles);

¤³¤Î¤ä¤êÊý¤Ç¡¢Æó¤Ä¤Îʸ»úÎ󤽤줾¤ì¤ËÆÈΩ¤·¤Ægettext¤òŬÍѤǤ­¤ë¡£

printf ((nfiles != 1 ? gettext ("%d files processed")
         : gettext ("%d file processed")),
        nfiles);

¤³¤¦¤¹¤ë¤È¡¢“file”¤È¤¤¤¦Ã±¸ì¤ÎÊ£¿ô·Á¤òºî¤ë¡¢¤¤¤«¤Ê¤ëÊýË¡¤Ç¤â¼Â¸½¤Ç¤­¡¢ “processed”¤ËÂФ·¤Æ¡¢Ã±¸ì¤¬°ìÃפ·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¸À¸ì¤ò°·¤¦¤³¤È¤â¤Ç¤­¤ë¡£

Ʊ¤¸¤è¤¦¤ÊÌäÂê¤Ï¼¡¤Î¥³¡¼¥É¤Çʸ̮¤Î¹½Â¤¤Î¿å½à¤Ç¸½¤ì¤ë¡£

printf ("#  Implicit rule search has%s been done.\n",
        f->tried_implicit ? "" : " not");

¤³¤Î¥³¡¼¥É¤Ëgettext¸Æ¤Ó½Ð¤·¤òÍ¿¤¨¤Æ¤â¡¢¤¹¤Ù¤Æ¤Î¸À¸ì¤ÇÀµ¤·¤¤·ë²Ì¤ò ÆÀ¤é¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¤¤¤¯¤Ä¤«¤Î¸À¸ì¤ÇÈÝÄê¤ÏÊ¸Ãæ¤Ë°ì¤Ä¤è¤ê¤â¤¿ ¤¯¤µ¤ó¤Î¾ì½ê¤Çñ¸ì¤ò²Ã¤¨¤ëɬÍפ¬¤¢¤ë¤«¤é¤À¡£ÂоÈŪ¤Ë¡¢gettext¸Æ¤Ó ½Ð¤·¤ÎÄɲäϡ¢¤â¤·¤½¤Î¥³¡¼¥É¤¬¼¡¤Î¤è¤¦¤Ë»Ï¤Þ¤ë¤Ê¤é¡¢´Êñ¤Ë¹Ô¤¨¤ë¡£

printf (f->tried_implicit
        ? "#  Implicit rule search has been done.\n",
        : "#  Implicit rule search has not been done.\n");