天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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


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

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

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



三、初始化i18n環(huán)境 這個主要是在程序端進(jìn)行簡單的設(shè)置,下面給個簡單的例子:

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

//設(shè)置翻譯文本域,下面的代碼就會讓程序去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文件檔

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

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



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

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

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

主站蜘蛛池模板: 殴美黄色网 | 一区三区三区不卡 | 午夜亚洲动漫精品AV网站 | 国产亚洲精品久久久久久国模美 | 香蕉精品国产高清自在自线 | 四虎免费影院 | 国产三级多多影院 | 京香在线观看 | 午夜AV内射一区二区三区红桃视 | 国产精品视频人人做人人爽 | 嫩草伊人久久精品少妇AV网站 | 无套日出白浆在线播放 | 欧洲美女高清一级毛片 | 国产高清精品国语特黄A片 国产高清国内精品福利色噜噜 | 含羞草传媒在线观看 | 小p孩玩成年女性啪啪资源 小777论坛 | 2017天天拍天天拍香蕉视频 | 国产偷国产偷亚州清高 | 免费观看国产视频 | 乌克兰粉嫩摘花第一次 | 九九热视频免费 | CHINESE老阿姨免费视频 | 青柠在线观看免费完整版 | 欧美一区二区视频高清专区 | 草草色 | 啊灬啊灬啊灬快高潮视频 | 城中村快餐嫖老妇对白 | 中文有码中文字幕免费视频 | 动漫H片在线观看播放免费 动漫H片在线播放免费高清 | 九九热视频在线观看 | 蜜臀AV精品久久无码99 | 95国产精品人妻无码久 | 日本在线免费播放 | 蜜桃传媒在线播放 | 日本精品久久久久中文字幕 1 | 国产99久久亚洲综合精品西瓜tv | 粗壮挺进邻居人妻无码 | 国产精品热久久高潮AV袁孑怡 | 成人在线免费视频 | 俄罗斯freeⅹ性欧美 | 美女挑战50厘米长的黑人 |