Php gettext()-在3种语言上2适用于1种不适用
我有一个网页,包含3种语言-波尔西语,英语和德语。英语和德语的翻译很完美,但波兰语根本不起作用。问题出在哪里?下面是gettext的配置:Php gettext()-在3种语言上2适用于1种不适用,php,gettext,Php,Gettext,我有一个网页,包含3种语言-波尔西语,英语和德语。英语和德语的翻译很完美,但波兰语根本不起作用。问题出在哪里?下面是gettext的配置: $locale = "pl_PL"; if (isSet($_GET["lg"])) $locale = $_GET['lg']."_". strtoupper($_GET['lg']); putenv("LC_ALL=$locale"); setlocale(LC_ALL, $locale.'.UTF-8'); b
$locale = "pl_PL";
if (isSet($_GET["lg"])) $locale = $_GET['lg']."_". strtoupper($_GET['lg']);
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale.'.UTF-8');
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", 'UTF-8');
textdomain("messages");
您的测试代码不是特别有用。我们将通过以下方式对其进行简化:
var_dump( setlocale(LC_ALL, 'pl_PL.UTF-8') );
你在评论中含糊不清地暗示你得到了FALSE
。这是什么意思?根据(我想你已经检查过了,我只是为了完整性把它贴在这里):
返回新的当前区域设置,如果区域设置功能不可用,则返回FALSE
未在您的平台上实现,指定的区域设置不存在
存在或类别名称无效
那么,如何获得可用区域设置的列表?正如你所说:
echo `locale -a`;
检查
locale-a | grep-ipl
以查看是否有pl.UTF-8
。您可能还想看看这个主题:这可能是个问题,我没有访问命令行的权限…基本调试:var_dump()检查变量并检查相关函数的返回值。不要只信任.setlocale(LC_ALL,$locale.'.UTF-8')返回false@Maciej-好的,给你。我们仍然不确定$locale
包含什么,但我们确定它不包含有效的locale。