我在/en_GB/LC_MESSAGES/
文件夹中有两个文件domain.po和domain.mo.我在使用Windows 7的本地计算机上使用xampp。
当我设置我的默认语言$lang='it'
时,如果$lang== 'en'
它返回意大利语,我的页面将以英语翻译,反之亦然。
这是我的代码:
if ($lang == 'it') {
$str_language = 'it_IT';
}
else if ($lang == 'en') {
$str_language = 'en_GB';
}
$this->lang = $lang;
putenv("LANG=$lang");
putenv("LANGUAGE=$str_language");
if (defined('LC_ALL')) {
setlocale(LC_ALL, $str_language);
}
else {
putenv( "LC_ALL={$str_language}");
}
// locale path
$directory = realpath("../dev") . "/lib/lang";
$domain = 'domain';
if ( $lang != 'it') {
$filename = "$directory/$str_language/LC_MESSAGES/$domain.mo";
$mtime = filemtime($filename); // check its modification time
// our new unique .MO file
$filename_new = "$directory/$str_language/LC_MESSAGES/{$domain}_{$mtime}.mo";
if (!file_exists($filename_new)) { // check if we have created it before
// if not, create it now, by copying the original
copy($filename,$filename_new);
}
// compute the new domain name
$domain_new = "{$domain}_{$mtime}";
}
else {
$domain_new = $domain;
}
if (function_exists('bindtextdomain')) {
bindtextdomain( $domain_new , $directory);
bind_textdomain_codeset($domain_new, 'UTF-8');
textdomain($domain_new);
}`
我该如何解决这个问题? 感谢
编辑:msgid是意大利文,msgstr是英文版 我希望这个问题很清楚。