php gettext·½Ê½ÊµÏÖUTF 8¹ú¼Ê»¯¶àÓïÑÔ(i18n)
½ü
À´Ëæ×Åi18n(¹ú¼Ê»¯)µÄÖð½¥±ê×¼»¯£¬ÎÒÒ²À´½²Ò»½²ÔÚPHPÖÐÈçºÎʵÏÖ¹ú¼Ê»¯Ö§³Ö¡£¸úÆäËû³ÌÐòÓïÑÔÒ»Ñù£¬ÔÚ PHP Ò²¿ÉÒÔÀûÓà gettext
Ì×¼þд×÷ i18n ³ÌÐò£¬ÊµÏÖ NLS(Native Language Support) ¹ú¼Ê»¯Ö§³Ö£¬¾ßÌåÇë²Î¿¼¹Ù·½Îĵµ(
http://www.gnu.org/software/gettext/manual/gettext.html
)
ÕâÀïÎÒÃÇÖ÷Òª½éÉÜwindowƽ̨ÏÂʹÓÃphpµÄÀ©Õ¹gettextʵÏÖ³ÌÐòµÄ¹ú¼Ê»¯¡£
gettext¼ò½é£º
GNU
gettextÊÇ·ÒëÏîÄ¿µÄÖØÒªÒ»²½£¬ËüÌṩÁËÒ»¸ö¹¤×÷¿ò¼Ü£¬ÓÉһЩ¼¯³ÉµÄ¹¤¾ßºÍÎĵµ×é³É£¬°ïÖú³ÌÐòÔ±¡¢·ÒëÈËÔ±ºÍ×îÖÕÓû§ÊµÏÖ³ÌÐòµÄ¹ú¼Ê»¯ºÍ±¾µØ»¯¡£ÓÃ
GettextµÄ·½Ê½ÊµÏÖ¶àÓïÑԵõ½Á˹㷺µÄÖ§³Ö£¬ÖøÃûµÄBLOG³ÌÐòwordpressµÄ¹ú¼Ê»¯¾ÍÊÇÓõÄGNU gettext¡£
´óÖÂÔÀí£º
GNU
gettextʹÓÃPO»òMOÎļþÀ´ÊµÏÖ¹ú¼Ê»¯ºÍ±¾µØ»¯¡£POµÄÒâ˼ÊÇPortable
Object£¬ÊÇÒ»ÖÖÎı¾½á¹¹£¬¿ÉÒÔ·½±ãµÄÓÉÈËÃÇÔĶÁºÍÐ޸ġ£MOÊÇMachine
ObjectµÄ¼òд£¬MOÎļþÊÇPOÎļþµÄ¶þ½øÖÆÐÎ̬¡£Ò»°ãÀ´Ëµ£¬Ò»¸öPO»òMOÎļþ¶ÔÓ¦ÓÚÒ»ÖÖÓïÑÔ£¬Èç¹ûÒ»¸ö³ÌÐòÒªÖ§³Ö¶àÖÖÓïÑÔ£¬Ã¿Ò»ÖÖÓïÑÔ¶¼ÐèÒª×Ô¼º
µÄPO»òMOÎļþ¡£
¿ªÊ¼Ó¦Óãº
²½ÖèÒ»£º´î½¨»·¾³(·þÎñÆ÷ÒѾÍê³É£¬»·¾³ÒѾ´î½¨ºÃÁË)
1¡£Ê×ÏȲ鿴ÄãµÄphpÀ©Õ¹Ä¿Â¼ÏÂÊÇ·ñÓÐphp_gettext.dllÕâ¸öÎļþ£¬Èç¹ûûÓУ¬Õâ¾ÍÐèÒªÄãÏÂÔØÒ»¸ö»òÊÇ´ÓÆäËûµØ·½¿½±´Ò»¸ö£¬È»ºó·Åµ½phpÀ©Õ¹Ä¿Â¼¡£
2¡£´ò¿ªphp.ini£¬²éÕÒ”;extension=php_gettext.dll“ £¬È»ºóÈ¥³ý×¢ÊÍ£¬ÖØÆôapache¡£
ÈôÒ»ÇÐ˳Àû£¬¾Í¿ÉÒÔÔÚ phpinfo() Öп´µ½ gettext ×ÖÑù£¬ÖÁ´Ë·þÎñÆ÷»·¾³ÅäÖÃÍê±Ï¡£
²½Öè¶þ£º¼ÙÈçÎÒÃÇÒª·Òëtest.phpÒ³ÃæÀïµÄhello word!Õâ¾ä»°¡£
±à¼test.php£¬½«Òª·Òë µÄÎÄ×ÖÓÃgettextº¯Êý°üº¬£¬±íʾÕâЩ±»°üº¬µÄÎÄ×ÖÊÇÐèÒªÓÃÀ´·ÒëµÄ¡£
view plain
copy to clipboard
print
?
<?
include_once
(
'inc/setLan.php'
);
$domain
=
'test'
;
bindtextdomain
(
$domain
,
"locale/"
);
//ÉèÖÃij¸öÓòµÄmoÎļþ·¾¶
bind_textdomain_codeset($domain
,
'UTF-8'
);
//ÉèÖÃmoÎļþµÄ±àÂëΪUTF-8
textdomain($domain
);
//ÉèÖÃgettext()º¯Êý´ÓÄĸöÓòÈ¥ÕÒmoÎļþ
?>
<html>
<head>
<meta http-equiv="Content-Type"
&
Ïà¹ØÎĵµ£º
Ϊ PHP Ìí¼ÓÀ©Õ¹¿âÊÇÒ»¼þ¼òµ¥µÄÊÂÇé¡£²»¹ýÊ×ÏÈÄã×îºÃ»áÒ»µãµãC/C++±à³Ì¼¼Êõ£¬²¢ÇÒ¶ÔMakefileÓÐÒ»¶¨µÄÁ˽⡣
ÒÔÏÂÊÇÔÚ Linux ϵÄÒ»¸ö¼òµ¥Àý×Ó£º
Ê×ÏÈ£¬½øÈë php Ô´´úÂëĿ¼£¨¼ÙÉèΪ PHP_SRC£¬ÒÔÏÂͬ£©£¬Ê¹Óà php ×Ô´øµÄ ext_skel ¹¤¾ßÉú³ÉÒ»¸öÐÂÀ©Õ¹ mk4php£º
cd PHP_SRC/etc;
./ext_skel --extname=mk4php
Õý³£Ç ......
PHP ÖÐÓÉÓÚÊý×éºÍ×Ö·û´®ÕâÁ½ÖÖ±äÁ¿ÀàÐÍÊÇÈç´Ë³£Óã¬ÒÔÖÁÓÚ PHP ¾ßÓÐÁ½¸öº¯Êý£¬¿ÉÒÔÔÚ×Ö·û´®ºÍÊý×éÖ®¼ä»¥Ïà½øÐÐת»»¡£
¡¡¡¡$array=explode(separator,$string);
¡¡¡¡$string=implode(glue,$array);
¡¡¡¡Ê¹ÓúÍÀí½âÕâÁ½¸öº¯ÊýµÄ¹Ø¼üÖ®´¦ÊÇ·Ö¸ô·û£¨separator£©ºÍ½ººÏ·û£¨glue£©¹Øϵ¡£µ±°ÑÒ»¸öÊý×éת»»³ÉÒ»¸ö×Ö·û´®Ê±£¬½«»áÉ ......
ÏÂÃæÊÇһЩ·Ç³£ÓÐÓõÄPHPÀà¿â£¬ÏàÐÅÒ»¶¨¿ÉÒÔΪÄãµÄWEB¿ª·¢Ìṩ¸üºÃºÍ¸üΪ¿ìËٵķ½·¨¡£
ͼ±í¿â
ÏÂÃæµÄÀà¿â¿ÉÒÔÈÃÄãºÜ¼òµÄ´´½¨¸´ÔÓµÄͼ±íºÍͼƬ¡£µ±È»£¬ËüÃÇÐèÒªGD¿âµÄÖ§³Ö¡£
pChart - Ò»¸ö¿ÉÒÔ´´½¨Í³¼ÆͼµÄ¿â¡£
Libchart - ÕâÒ²ÊÇÒ»¸ö¼òµ¥µÄͳ¼Æͼ¿â¡£
JpGraph - Ò»¸öÃæÏò¶ÔÏóµÄͼƬ´´½¨Àà¡£
Open Flash Chart - ÕâÊ ......
PHP³ÌÐòÔ±×îÒ×·¸10ÖÖ´íÎó
PHPÊǸöΰ´óµÄweb¿ª·¢ÓïÑÔ£¬Áé»îµÄÓïÑÔ£¬µ«ÊÇ¿´µ½php³ÌÐòÔ±Öܶø¸´Ê¼µÄ·¸µÄһЩ´íÎó¡£ÎÒ×öÁËÏÂÃæÕâ¸öÁÐ±í£¬ÁгöÁËPHP³ÌÐòÔ±¾³£·¸µÄ10ÖдíÎ󣬴ó¶àÊýºÍ°²È«Ïà¹Ø¡£¿´¿´Äã·¸Á˼¸ÖÖ
1.²»×ªÒâhtml entities
Ò»¸ö»ù±¾µÄ³£Ê¶£ºËùÓв»¿ÉÐÅÈεÄÊäÈ루ÌرðÊÇÓû§´ÓformÖÐÌá½ ......
×î½üÔÚѧϰphp£¬Ò³ÃæÒѾ×öºÃÁË£¬ÏÖÔÚ¾ÍÊǺÍÐéÄâ»úÀïC´úÂëµÄͨÐÅ£¬socket±à³Ì»¹¿ÉÒÔ£¬¾ÍÊÇÄÃÊý¾ÝµÄ´¦Àí£¬ÄÑ£¬¡£
ÀàµÄ±à³ÌÎÒ²»»á£¬Ã»ÓÐѧ¹ýC++¡£±¾À´´òËãÓýṹÌåµÄ£¬¿ÉÊÇPHPÀïÃæ¾ÓȻûÓнṹÌ壬Ôõô°ìÄØ£¿¼ÌÐøŬÁ¦°É
......