一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP中使用gettext解決國際化問題的例子(i18n)

實現國際化的方式比較多,很多php framework都內置i18n支持,但大部分是基于php的數組實現的,這種方法并不推薦。目前最為流行也最通用的方法是gettext。

Gettext 用于系統的國際化(I18N)和本地化(L10N),可以在編譯程序的時候使用本國語言支持(Native Language Support(NLS)),其可以使程序的輸出使用用戶設置的語言而不是英文. 關于gettext的更多資料請參見: 下面說說如何利用gettext在你的php程序中實現國際化。


一、檢查環境需求 首先查看phpinfo(),確保你的php啟用了gettext擴展。如果啟用了gettext,在phpinfo頁面中應該能看到以下信息:

如果沒有找到,請修改php.ini以啟用該擴展

二、為你的項目新建locale文件夾 gettext涉及到兩個文件,*.po是翻譯源文件,里面儲存了項目中所有待翻譯的字符串和翻譯后的結果;*.mo文件是po文件編譯后二進制文件,真正讀取翻譯信息的時候是從mo文件中讀取的,所以這個文件也是必不可少的。 gettext對目錄要求比較死,你必須把國際化文件放在指定目錄,大部分使用gettext不成功都是由于po文件和mo文件沒有放對位置導致的,下面舉例看一個典型項目目錄樹:



三、初始化i18n環境 這個主要是在程序端進行簡單的設置,下面給個簡單的例子:

復制代碼 代碼如下:
< ?php
//定義要翻譯的目標語言及po文件的編碼
$locale = "zh_CN.utf8";
setlocale(LC_ALL, $locale);

//設置翻譯文本域,下面的代碼就會讓程序去locale/zh_CN/LC_MESSAGES/default.mo去尋找翻譯文件
bindtextdomain("default", dirname(__FILE__)."/locale");
textdomain("default");
?>

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
< ?php echo _("Hello/n");; ?>


四、建立po文件檔

到這一步方法就比較多了,當然可以手動建立,不過這樣子一個最大的缺點就是你不知道項目中哪些字符串需要翻譯,這里推薦下一個軟件――PoEdit,Windows平臺和Linux都是適用的。

選擇文件->新建消息目錄文檔,填好一些必要信息,注意如果目標語言是中文的話,由于中文是雙字節字符,所以最好在“復數形式”填上 “nplurals=2; plural=(n!=1);”(沒有引號),如下圖



然后將項目所在文件夾加入到“路徑”中,設置好翻譯所用的關鍵字,PoEdit就會自動搜索項目中所有待翻譯的字符串,生成po文件。翻譯完成后選擇“保存”,PoEdit會自動生成mo文件。以后每次項目中待翻譯字符串有更新,只要打開PoEdit選擇類目->從源更新,就好了 這樣的思路不僅適用于php,其他語言都大同小異,前段時間做django一個項目的翻譯,也僅僅是建立po文件更加方便了,其他步驟十分類似。大家舉一反三就好了,尤其注意下目錄結構,這個是最容易出現問題的地方。

php技術PHP中使用gettext解決國際化問題的例子(i18n),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊人久久综合谁合综合久久 | 亚洲精品视频区 | 婷婷亚洲国产成人精品性色 | 97夜色| 无码中文字幕日韩专区 | 国产视频一二区 | 最新国产毛片 | 色资源在线 | 国产自愉自愉全免费高清 | 婷婷六月久久综合丁香可观看 | 在线观看国产黄色 | 国产欧美日韩haodiaose | 一区二区三区不卡在线 | 在线观看91精品国产剧情免费 | 国产一区中文字幕在线观看 | 亚洲最黄视频 | 精品日韩欧美国产一区二区 | 精品久久久久免费极品大片 | 色综合色狠狠天天综合色 | 免费一区二区三区免费视频 | xxxx日日摸夜夜添夜夜添视频 | 伊人久久大香线 | 奇米第四狠狠777高清秒播 | 日本高清视频wwww色 | 两性午夜刺激性视频 | 美女无遮挡免费网站 | 国产主播一区二区 | 永久免费精品视频 | 夜色成人免费观看 | 一区在线视频 | 222aaa精品影院 | 99国产在线观看 | 欧美日本一二三区 | 亚洲六月丁香六月婷婷花 | 国产成人精品久久一区二区小说 | 女人被免费视频网站 | 精品国产日韩亚洲一区二区 | 亚洲人成人77777网站 | 国产精品影视 | 久热福利| 国产成人禁片免费观看 |