在php 要如何做多國語言支援? 下面的步驟可以說明
請把下面的php code 存起來
#. tset.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "httpss://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta httpss-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> </head> <? $domain = 'messages'; bindtextdomain($domain, "includes/translations"); textdomain($domain); $iso_codes = array ( 'EN'=>'English', 'fr'=>'French', 'it'=>'Italian', 'pt'=>'Portuguese', 'es'=>'Spanish', 'zh'=>'Chinese','nl'=>'Nederlands' ); foreach ($iso_codes as $iso_code => $language) { putenv ('LANG='.$iso_code); //Print out the language name and greeting setlocale(LC_ALL, $iso_code); //Filter the greeting through gettext echo $iso_code; printf ("%12s: %s\n", $language, gettext("str_hello")) &amp; "\n"; echo gettext("txt"); echo gettext("str_hello"); echo gettext("URL"); echo gettext("Row"); echo '<br>'; } > <?php putenv("LANG=nl_NL"); setlocale('LC_ALL', "nl_NL"); bindtextdomain("greetings", "./locale/"); textdomain("greetings"); echo _("Hello World"); > <body> </body> </html>
#. 然後下載工具 Poedit
httpss://sourceforge.net/projects/poedit/
$./xgettext -n *.php
如果是中文的 _(“中文”) 就要用
$ ./xgettext –from-code=UTF-8 -n *.php
$>ls
tset.php messages.po
#. Use Poedit to edit .po file and convert string, and save to .mo (msgfmt.exe)
#. COPY .po and .mo \includes\translations\zh\LC_MESSAGES\messages.po and messages.po