2012-03-01 418 views
5

我使用PHP Gettext擴展來定位Web應用程序。當你這樣做:PHP Gettext:如何在設置域的路徑後更改默認的MO路徑?

bindtextdomain("example", "/locales"); 

如果你設置的區域設置爲fr_FR,它會尋找在MO:

/locales/fr_FR/LC_MESSAGES/example.mo 

有沒有一種方法來定製這條道路?例如,我想要使用以下結構:

/locales/example.fr_FR.mo 

回答

7

目錄結構由gettext修復。

由於許多不同的包需要存儲許多不同的語言,所以我們需要一些方法將這些信息添加到文件消息目錄文件中。 Unix環境中通常使用的方式是在文件名中使用這種編碼。這也是在這裏完成的。在bindtextdomains第二個參數給出的目錄名稱(或默認目錄),其次是語言環境,locale類別和域名的名字被級聯:

DIR_NAME /區域/ LC_category/domain_name.mo

+1

謝謝!我尋找這個來源,這裏是供將來參考的:http://www.gnu.org/software/gettext/manual/gettext.html#Locating-Catalogs – gou1 2012-03-01 13:38:53

+0

這很好理解,儘管與WordPress不一致,它允許你在任何目錄下執行此操作:dir_name/domain-xx_XX.mo – daveagp 2012-08-29 19:16:49

+0

似乎在wordpress中他們在php中實現了他們自己的'gettext' - 他們不依賴php的gettext模塊,所以他們可以使用任何目錄樹喜歡 – itsmeee 2013-06-18 09:15:20