【发布时间】:2011-03-10 09:12:21
【问题描述】:
以下示例适用于带有 Apache 的 Mac OS X,即我得到了回显的翻译字符串。但是在带有 lighttpd 的 Ubuntu 上,我得到了原始文本“非活动帐户”。我已经尝试了各种环境变量的组合,但没有任何运气。这也不是文件权限,因为我可以回显 .mo 文件的内容。
<?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");
?>
有人有什么想法吗?
【问题讨论】:
-
操作系统本身是否正确设置了语言?看看我之前的问题也许可以帮助stackoverflow.com/questions/1431354/php-gettext-in-norwegian
-
您是否为 sv_SE 生成了语言环境?如果不是,则将包含
sv_SE.UTF-8的行添加(或取消注释)到/etc/locale.gen,然后运行sudo locale-gen。 -
sudo locale-gen sv_SE.UTF-8(然后重新启动 lighttpd)工作。您能否将其发布为该问题的答案,以便我将其标记为正确?谢谢!
标签: php ubuntu gettext php-gettext