【发布时间】:2010-05-26 16:49:57
【问题描述】:
我有一个网站。我正在尝试让 gettext 工作,以便我的英语、瑞典和挪威网站可以出现。我无法让它工作。我做错了什么?
这是我的配置代码:
// define constants ( defualt - danish )
$lang = 'da_DA';
$lang_short = '';
$lang_prefix = 'da';
if ( isset( $_GET['lang'] ) )
{
switch( $_GET['lang'] )
{
case 'en':
$lang = 'en_EN';
$lang_short = 'en/';
$lang_prefix = 'en';
break;
case 'se':
$lang = 'se_SE';
$lang_short = 'se/';
$lang_prefix = 'se';
break;
case 'no':
$lang = 'no_NO';
$lang_short = 'no/';
$lang_prefix = 'no';
break;
}
}
define( 'LANG', $lang_short );
define( 'LANG_PREFIX', $lang_prefix );
putenv("LC_ALL=". $lang );
bindtextdomain('messages', ROOT .'lang/');
我的路径是/var/www/rssbot.dk/lang/。我应该正确设置 chmod,还是...?
【问题讨论】:
-
lang下的 .mo 文件放在哪里?你有/var/www/rssbot.dk/lang/en_EN/LC_MESSAGES/messages.mo吗?也可以试试locale -a看看是否所有的语言环境都可用。 -
对“路径”和区域设置是 -a 它的返回 (C en_GB.utf8 en_US.utf8 POSIX)
-
如果我错了,请纠正我,但我不确定 en_EN 是一个有效的语言环境。试试
en_US或者只是en,这应该是区域中立的。您可能还必须在操作系统上安装英语以外的其他语言环境才能使其他语言正常工作。 -
只是出于好奇,您的代码中的 message ids 是用其中一种语言编写的,还是只是占位符字符串?
-
嗯,它仍然无法正常工作:/我如何测试我有麻烦?