以下示例在帶有Apache的Mac OS X上工作,即,我得到翻譯後的字符串回顯。但在使用lighttpd的Ubuntu上,我得到了原始文本'Inactive account'。我嘗試過各種各樣的環境變量組合,沒有任何運氣。這不是文件權限,因爲我可以回顯.mo文件的內容。在Ubuntu上無法獲取gettext(php)
<?php
//$locale = 'sv_SE.UTF-8';
$locale = 'sv_SE';
$dir = dirname(__FILE__);
// File permission is apparantly not a problem as this works...
//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL=$locale");
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
setlocale(LC_MESSAGES, $locale);
//setlocale(LANG, $locale);
//setlocale(LANGUAGE, $locale);
bindtextdomain('flattr', $dir);
//bind_textdomain_codeset("flattr", 'UTF-8');
textdomain('flattr');
echo _("Inactive account");
?>
任何人有什麼想法?
先後在OS本身正確設置了語言?看到我以前的問題也許可以幫助http://stackoverflow.com/questions/1431354/php-gettext-in-norwegian – fabrik 2011-03-10 09:16:04
您是否爲sv_SE生成語言環境?如果不是,則將包含'sv_SE.UTF-8'的行添加(或取消註釋)到'/ etc/locale.gen'中,然後運行'sudo locale-gen'。 – 2011-03-10 09:16:16
sudo locale-gen sv_SE.UTF-8(然後重新啓動lighttpd)工作。你可以把它作爲這個問題的答案張貼,所以我可以將其標記爲正確的?謝謝! – pthulin 2011-03-10 09:48:13