亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:24:00
字體:
來源:轉載
供稿:網友

實現國際化的方式比較多,很多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文件沒有放對位置導致的,下面舉例看一個典型項目目錄樹:

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



三、初始化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);”(沒有引號),如下圖

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



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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av一卡二卡| 亚洲综合第一页| 青草成人免费视频| 69视频在线免费观看| 日韩精品中文字幕久久臀| 原创国产精品91| 日韩av大片在线| 亚洲精美色品网站| 久久亚洲国产成人| 亚洲精品按摩视频| 欧美日韩一区二区在线| 国产精品视频xxxx| 精品国内产的精品视频在线观看| 久久久久久国产精品三级玉女聊斋| 成人自拍性视频| 97超级碰在线看视频免费在线看| 国产精品pans私拍| 正在播放国产一区| 欧美做受高潮电影o| 亚洲精品国产电影| 欧美黑人一级爽快片淫片高清| 久久久噜噜噜久久中文字免| 91欧美激情另类亚洲| 91精品国产综合久久香蕉922| 亚洲欧美日韩成人| 欧美成人网在线| 久久精品成人欧美大片| 亚洲女人天堂色在线7777| 91久久久久久久久久久| 欧美成人精品激情在线观看| 亚洲精品av在线播放| 国产精品爽黄69天堂a| 国产精品1区2区在线观看| 日本老师69xxx| 亚洲精品免费一区二区三区| 国产精品看片资源| 日韩电影在线观看永久视频免费网站| 国内精品中文字幕| 九九热这里只有在线精品视| 狠狠躁夜夜躁人人躁婷婷91| 日韩精品在线观看网站| 国产日韩精品入口| 亚洲精品国产成人| 国产精品 欧美在线| 亚洲人成网站999久久久综合| 久久亚洲精品一区二区| 日韩大陆毛片av| 国产日韩精品一区二区| 久久激情五月丁香伊人| 久久亚洲精品国产亚洲老地址| 成人午夜一级二级三级| 亚洲国内精品视频| 久久久久久久久网站| 91精品国产色综合久久不卡98口| 国产精品第1页| 日韩中文字幕精品视频| 国产精品69久久| 亚洲二区中文字幕| 深夜成人在线观看| 欧美裸体xxxx| 国产精品欧美日韩一区二区| 欧美老女人xx| 国产97在线观看| 久久久久久综合网天天| 色偷偷av一区二区三区乱| 亚洲一级免费视频| 国产成人精品亚洲精品| 国产精品一区二区av影院萌芽| 午夜精品美女自拍福到在线| 亚洲欧美日韩国产中文专区| 97不卡在线视频| 97av在线视频免费播放| 亚洲欧洲黄色网| 欧美精品videos性欧美| 亚洲日本成人女熟在线观看| 精品精品国产国产自在线| 日韩精品视频在线播放| 日韩视频免费观看| 欧美日韩国产91| 国产欧美一区二区白浆黑人| 国产精品一区二区久久久| 成人黄色在线免费| 欧美一级黑人aaaaaaa做受| 欧美最猛性xxxxx(亚洲精品)| 日韩午夜在线视频| 亚洲激情视频在线| 福利一区福利二区微拍刺激| 亚洲天天在线日亚洲洲精| 国产亚洲精品va在线观看| 国产亚洲精品久久久久久| 国产在线观看精品一区二区三区| 国产有码在线一区二区视频| 成人高清视频观看www| 欧美激情videoshd| 久久午夜a级毛片| 欧美日韩精品在线视频| 自拍偷拍免费精品| 国产精品久久久久久久电影| 国产成人精品在线观看| 国产一区二区三区精品久久久| 欧美巨乳在线观看| 国产精品久久久久久久app| 亚洲乱码国产乱码精品精天堂| 国产精品高清免费在线观看| 久久99热精品这里久久精品| 成人性生交大片免费观看嘿嘿视频| 色樱桃影院亚洲精品影院| 亚洲精品一区二区在线| 91成人国产在线观看| 亚洲性猛交xxxxwww| 欧美性猛交xxxx乱大交蜜桃| 亚洲影院色在线观看免费| 欧美性猛交xxxxx水多| 欧美亚洲国产成人精品| 一本色道久久88精品综合| 日韩av不卡在线| 久久久久久中文字幕| 国产午夜精品全部视频在线播放| 国产99视频精品免视看7| 色偷偷888欧美精品久久久| 久久欧美在线电影| 欧美最顶级丰满的aⅴ艳星| 久久久亚洲成人| 亚洲欧美日韩中文在线| 国内揄拍国内精品| 亚洲欧洲在线免费| 日韩av在线免费观看一区| 欧美中文在线免费| 亚洲美女性生活视频| 久久天天躁狠狠躁夜夜躁2014| 亚洲专区在线视频| 青青草99啪国产免费| 亚洲欧美精品一区| 97久久精品国产| 亚洲高清不卡av| 欧美成人免费va影院高清| 久久精品在线视频| 亚洲精品女av网站| 91深夜福利视频| 97婷婷大伊香蕉精品视频| 亚洲精品免费一区二区三区| 国产精品嫩草影院久久久| 亚洲美女又黄又爽在线观看| 亚洲国产精品成人精品| 亚洲片在线资源| 国产手机视频精品| 色悠悠久久88| 欧美高清第一页| 亚洲精品国产成人| 91影院在线免费观看视频| 日韩久久免费视频| 韩国美女主播一区| 亚洲一区第一页| 国产精品久久久久久久久影视| 亚洲国产精品成人va在线观看| 欧美日韩国产精品一区二区三区四区| 美女扒开尿口让男人操亚洲视频网站| 久久精品国产免费观看| 日韩亚洲综合在线| 亚洲乱码一区av黑人高潮| 亚洲福利视频专区| 欧美视频免费在线观看| 北条麻妃久久精品| 日韩理论片久久|