我有一個的.po和的.mo文件,其地址爲/區域/ nld_nld/LC_MESSAGES/一個文件夾中。這兩個文件的名字都是消息。我一直在嘗試使用下面的代碼:如何在php中使用po/pot文件?
try.php:
<?php
require_once("Localization.php");
echo _("Hello World!");
?>
的Localization.php放在這裏:
<?php
$locale = "nld_nld";
if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", 'UTF-8');
textdomain("messages");
?>
無論是try.php和本地化文件在同一個目錄中。另外,我使用xampp
。我也執行了phpinfo();
。在表格中,在「GetText支持」前面,提到了啓用。 messages.po和messages.mo文件是我使用poEdit創建的有效文件。我是一個Windows用戶。但是,當我打開try.php時,它只是回顯Hello World! (而不是它的翻譯字符串。另外,我(根據poEdit
)。不過,我沒有得到的結果翻譯的.po文件100%。在這一點幫助,將不勝感激。
謝謝!提前
textdomain()通常是最後一個函數調用(實際上,如果使用多個域,每次調用gettext之後可能需要調用_())。首先綁定所有域,然後選擇一個域。 – eckes
在你的例子中,你使用了兩個不同的域名'es'和'messages-es'。這可能不起作用(並且通常您沒有文件名中的語言標識符,因爲它是由目錄定義的)。因此「/full/path/here/application/locale/es_ES/LC_MESSAGES/messages.mo」將是域「messages」和LC_TYPE es_ES的文件名。 – eckes