我似乎無法得到gettext的工作,在這裏。PHP:Gettext問題
我使用MAMP Pro和phpinfo();
表示gettext已啓用。
我跟着這個教程:http://zez.org/article/articleview/42/1/
- 我在我的代碼中聲明這樣我的琴絃:
_('test string');
- 然後我跑
xgettest -L PHP test.php
,即生成我messages.po
文件。 - 我在poedit打開這個文件並翻譯了我的字符串,然後保存了這個文件,這個文件製作了一個
messages.mo
文件。 - 我把
.po
和.mo
文件都和他們搬到[webroot]/locale/es/LC_MESSAGES/
(在這種情況下,我的翻譯是西班牙語) 在我的代碼,我設置如下:
$lang = $_SESSION['lang']; // available to all views that include this file
putenv('LC_ALL='.$lang);
bindtextdomain('messages','./locale');
textdomain('messages');
...其中
$_SESSION['lang']
我可以很容易地在en
和es
之間切換。我重新加載我的頁面,然後點擊我的鏈接切換到
es
,但我的字符串仍顯示爲英文版本而不是西班牙文版本。切換回en
顯示沒有變化;它總是英文版本。
我沒有收到任何錯誤消息,所以我有點失落,爲什麼我有這個問題。任何人都可以給我一些指導/幫助嗎?我錯過了什麼?
嘗試硬編碼「es」,然後我們就會知道這是i18n的問題還是隻是一個會話messup。 – 2009-11-21 18:07:43
或嘗試修改英文翻譯。 – erenon 2009-11-21 18:10:54
「es」硬編碼效果不變。 – neezer 2009-11-21 18:11:40