php - Gettext 有时工作

标签 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);
?>

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

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

我是不是遗漏了什么或做错了什么?

非常感谢!

J.

最佳答案

我也遇到了同样的问题。重启 Apache 服务为我解决了这个问题

关于php - Gettext 有时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508305/

相关文章:

javascript - 如何使用poedit从js文件生成po文件

php - PHP gettext 中的变量

PHP/MYSQL - 使用准备好的语句删除数据库

php - 根据数据库值更改选择框值

php - mysqli_query()预期为1

.net - 翻译大量文本数据的最佳方法是什么?

translation - 全局化管道中的韩语翻译

php - Pusher 应用程序事件未触发

c++ - 在另一个坐标系中查找点的坐标

localization - gettext 如何处理 a/an 或 d'/de?