Gettext有时有效

Jul*_*_he 1 php translation gettext

我正在做一个项目,需要用户翻译。因此,我决定在php中使用gettext,但有时它可以正常工作。

所以我有一个名为lng的文件夹,在这个文件夹中,我有一个php文件,该文件调用我的lang文件来翻译我的页面。

这是代码:

<?php
if(isset($_GET['lang']) != '')
{
    setcookie('lang',$_GET['lang'], time() + 365*24*3600, null, null, false, true);
    $_SESSION['lang'] = $_GET['lang'];
    $language = $_GET['lang'];
}
else if(isset($_SESSION['lang']) != '' )
{
    $language = $_SESSION['lang'];
}
else if(isset($_COOKIE['lang']) != '')
{
    $_SESSION['lang'] = $_COOKIE['lang'];
    $language = $_SESSION['lang'];
}else{
    $language = 'fr';
}

  putenv("LANG=$language");
  setlocale(LC_MESSAGES, $language);

  $domain = 'trad';
  bindtextdomain($domain, 'locale/');
  textdomain($domain);
?>
Run Code Online (Sandbox Code Playgroud)

所以我可以检查我的$ _SESSION和$ _COOKIE,他给我“ en”或“ fr”没有问题,但是他不翻译我的文件,我也不知道为什么。

对于lng中的文件夹,它是:locale / en / LC_MESSAGES / trad.po(或.mo)。我尝试使用LC_ALL和LC_MESSAGES,但这不会改变结果。

我错过了一些东西或做错了什么吗?

非常感谢!

J.

小智 5

我有同样的问题。重新启动Apache Service为我解决了它