6.5 ʹÓà GNU gettext

6.5.1 »ù±¾Ó÷¨

¡¡¡¡Èç¹ûÄúµÄ port ÐèҪʹÓà gettext£¬ Ö»Òª½« USE_GETTEXT ÉèÖÃΪ yes£¬ ÄúµÄ port ¾Í»áÔö¼Ó¶Ô devel/gettext µÄÒÀÀµ¡£ USE_GETTEXT Ò²¿ÉÒÔÖ¸¶¨ÎªËùÐèµÄ libintl ¿âµÄ°æ±¾£¬ ËüÊÇ gettext µÄ»ù±¾×é³É²¿·Ö£¬ ¾¡¹ÜÈç´Ë£¬ Ç¿ÁÒ½¨ÒéÄú²»Òª ʹÓÃÕâ¸ö¹¦ÄÜ£º ÄúµÄ port Ó¦ÄÜÓëĿǰ°æ±¾µÄ devel/gettext ÅäºÏ¹¤×÷¡£

¡¡¡¡ÔÚ port ÖÐÏ൱³£¼ûµÄÇé¿öÏ£¬ »áÐèҪͬʱʹÓà gettext ºÍ configure¡£ Ò»°ã¶øÑÔ£¬ GNU configure Äܹ»×Ô¶¯¶¨Î»µ½ gettext¡£ Èç¹ûËüûÓгɹ¦µØÍê³ÉÕâÏ×÷£¬ Ôò¿ÉÒÔͨ¹ýÀàËÆÏÂÃæÕâÑùµÄ CPPFLAGS ºÍ LDFLAGS ½« gettext µÄλÖøæËßËü£º

USE_GETTEXT=    yes
CPPFLAGS+=      -I${LOCALBASE}/include
LDFLAGS+=       -L${LOCALBASE}/lib

GNU_CONFIGURE=  yes
CONFIGURE_ENV=  CPPFLAGS="${CPPFLAGS}" \
                LDFLAGS="${LDFLAGS}"

¡¡¡¡µ±È»£¬ ²»ÐèÒª´«²ÎÊý¸ø configure ʱ£¬ ´úÂë¿ÉÒÔ¸üΪ¼òÁ·£º

USE_GETTEXT=    yes
GNU_CONFIGURE=  yes
CONFIGURE_ENV=  CPPFLAGS="-I${LOCALBASE}/include" \
                LDFLAGS="-L${LOCALBASE}/lib"

6.5.2 ¿ÉÑ¡Ó÷¨

¡¡¡¡Ò»Ð©Èí¼þ²úÆ·ÌṩÁ˽ûÓà NLS µÄÄÜÁ¦£¬ ÀýÈ磬 ÔÚ configure ʱ£¬ Ö¸¶¨ --disable-nls ²ÎÊý¡£ Èç¹ûÄú port µÄÈí¼þÖ§³ÖÕâÖÖÅäÖ㬠ÔòÓ¦¸ù¾Ý WITHOUT_NLS µÄÉèÖÃÀ´ÓÐÌõ¼þµØÊ¹Óà gettext¡£ ¶ÔÓڱȽϼòµ¥ºÍ²»Ì«¸´Ô port£¬ Äú¿ÉÒÔʹÓÃÏÂÁнṹ£º

GNU_CONFIGURE=          yes

.if !defined(WITHOUT_NLS)
USE_GETTEXT=            yes
PLIST_SUB+=             NLS=""
.else
CONFIGURE_ARGS+=        --disable-nls
PLIST_SUB+=             NLS="@comment "
.endif

¡¡¡¡ÄúÒª×öµÄÏÂÒ»¼þÊÂÊǺÏÀíµØ°²ÅÅ×°Ïäµ¥Îļþ£¬ ʹÆä¸ù¾ÝÓû§ÅäÖÃÀ´¾ö¶¨ÊÇ·ñ½«ÏûÏ¢±à¼ (message catalog) Îļþ·ÅÈë×îÖÕµÄ×°Ïäµ¥¡£ Ç°ÃæÒѾ­½éÉÜÁËÔÚ Makefile ÖÐËùÐèµÄд·¨£¬ ÕâÖÖ×ö·¨ÔÚ ¸ß¼¶ pkg-plist Ó÷¨ Õâ½ÚÖнøÐÐÁ˽éÉÜ¡£ ¼òµ¥µØËµ£¬ ÔÚ pkg-plist ÖгöÏÖµÄ %%NLS%% ¾ù»áÔÚ½ûÓà NLS ʱ×Ô¶¯Ì滻Ϊ ¡°@comment ¡±£¬ ·´Ö®ÔòÌæ»»Îª¿Õ´®¡£ ÕâÑù£¬ ÔÚ×îÖÕµÄ×°Ïäµ¥Öдø %%NLS%% µÄÐУ¬ ÔÚ NLS ¹Ø±ÕµÄÇé¿öϾͻá±äΪעÊÍ£¬ ·´Ö®£¬ ÕâЩǰ׺¾Í»á×Ô¶¯É¾µô¡£ ÏÖÔÚÐèÒª×öµÄÊÂÇé¾ÍÊÇ°Ñ %%NLS%% ²åµ½ pkg-plist ÖеÄÏûÏ¢±à¼ÎļþµÄÄÇЩÐпªÍ·£¬ ÀýÈ磺

%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo
%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo

¡¡¡¡ÔڱȽϸ´ÔÓµÄÇéÐÎÖУ¬ Äú¿ÉÄÜÐèҪʹÓøü¸ß¼¶µÄ¼¼Êõ£¬ ÀýÈç ¶¯Ì¬Éú³É×°Ïäµ¥ µÈ¡£

6.5.3 ´¦ÀíÏûÏ¢±à¼Ŀ¼

¡¡¡¡ÔÚ°²×°ÏûÏ¢±à¼Îļþʱ»¹ÓÐÒ»¸öÐèҪעÒâµÄµØ·½¡£ ÕâЩÎļþ»á·Åµ½ LOCALBASE/share/locale ÏÂÓëÓïÑÔ¶ÔÓ¦µÄĿ¼ÖУ¬ ÕâЩĿ¼һ°ãÄúµÄ port ²»ÐèÒª´´½¨ºÍɾ³ý¡£ ×î³£ÓõÄÓïÑÔµÄĿ¼ÒѾ­ÔÚ /etc/mtree/BSD.local.dist ÖÐÁгö£» Ò²¾ÍÊÇ˵£¬ ËüÃÇÊÇ»ù±¾ÏµÍ³µÄÒ»²¿·Ö¡£ ÆäËûһЩÓïÑÔµÄĿ¼£¬ ÔòÓÉ devel/gettext ¿ØÖÆ¡£ Äú×îºÃ²é¿´Ò»Ï pkg-plist£¬ ÒÔÈ·¶¨ÊÇ·ñÕýÔÚ°²×°Ä³ÖÖ²»³£ÓÃÓïÑÔµÄÎļþ¡£

ÈôÄúÓйØÓÚ FreeBSD ports ϵͳµÄÎÊÌ⣬ Çë·¢Ë͵ç×ÓÓʼþÖÁ <ports@FreeBSD.org>¡£
¹ØÓÚ´ËÎĵµµÄÈκÎÎÊÌ⣬ ÇëÖº¯ <doc@FreeBSD.org>¡£