我使用gettext本地化這樣Gettext的不能得到的setlocale()工作
$lang = $_GET['lang'];
echo $lang;
putenv("LANG=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("messages", realpath("../locale"));
bind_textdomain_codeset("messages", "utf-8");
textdomain("messages");
...
echo _("Welcome!") etc.
我能看到的本地化工作,因爲該網站可以看到翻譯在斯洛伐克。然而,沒有什麼mather $ lang變量,該網站只翻譯斯洛伐克或根本不翻譯。
斯洛伐克語意思是我在'sk'文件夾中的任何.po和.mo文件。我曾嘗試在「sk」文件夾中放入不同的語言,它的工作原理和我得到不同的翻譯。但我不能讓它採取不同的文件夾,如'EN'或'CS'。所有其他文件夾都被忽略。我究竟做錯了什麼?
P.S. setlocale()返回false,我不知道爲什麼,但這可能導致麻煩。
你看看的http://www.php.net/manual/en/book.gettext.php中的評論? – iblue 2012-02-08 14:08:26
好吧,我沒有看到一個解決方案,我試着重命名文件夾和$ lang變量en_US,我仍然有'sk'翻譯。 – 2012-02-08 14:23:17
如果我必須猜測你的標準語言環境是sk,那就是它的用途,因爲語言環境變化從未發生過。你指出你的setlocale調用返回false。你通過了什麼? '$ lang'的內容是什麼? – Dan 2012-02-08 14:33:56