国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP中使用gettext解決國(guó)際化問題的例子(i18n)

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

2020-07-06 15:04junjie PHP教程

這篇文章主要介紹了PHP中使用gettext解決國(guó)際化問題的例子,即實(shí)現(xiàn)i18n,需要的朋友可以參考下

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

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


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

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

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


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

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

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

 

復(fù)制代碼 代碼如下:


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

 

//設(shè)置翻譯文本域,下面的代碼就會(huì)讓程序去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)然可以手動(dòng)建立,不過這樣子一個(gè)最大的缺點(diǎn)就是你不知道項(xiàng)目中哪些字符串需要翻譯,這里推薦下一個(gè)軟件——PoEdit,Windows平臺(tái)和Linux都是適用的。

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩福利 | 欧美午夜视频 | 色爱区成人综合网 | 久久久久久国产 | 精品国产乱码久久久久久牛牛 | 黄色美女在线观看 | 综合久久99 | 亚洲精品成人av | 一区二区高清 | 91在线一区| 精品国内| 日韩欧美在线观看 | 日韩av在线一区 | 亚洲福利一区二区 | 精品无码久久久久国产 | 福利片在线| 国产在线观看一区二区 | 久久精品国产v日韩v亚洲 | 亚洲男性天堂 | 久久懂色精品99综一区合 | 日本一区二区免费在线观看 | 精品国产免费久久久久久尖叫 | 亚洲在线一区 | 国产欧美精品区一区二区三区 | 中文字幕在线第一页 | 少妇精品久久久久久久久久 | 啪啪伊人网 | 亚洲一区二区中文 | 亚洲三级av | 黄视频在线免费看 | 日韩精品极品视频在线观看免费 | 国产精品第十页 | 黄色av影院 | 成人精品一区二区 | 久久成人免费视频 | 在线观看欧美 | 成人免费视频网址 | 日韩一区二区在线播放 | 亚洲第1页| 欧美日韩精品一区二区三区 | 午夜黄色 |