Gettext有时可以工作 [英] Gettext works sometimes

查看:53
本文介绍了Gettext有时可以工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在一个项目上,需要对其进行用户翻译.因此,我决定在php中使用gettext,但有时它可以正常工作.

I'm working on a project and I need to user translation for it. So I decided to use gettext in php but it's working sometimes.

因此,我有一个名为lng的文件夹,并且在此文件夹中有一个php文件,该文件调用我的lang文件来翻译我的页面.

So I have a folder named lng and in this on I have a php file who call my lang file to translate my page.

这是代码:

<?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"没问题,但是他不翻译我的文件,我也不知道为什么.

So I can check my $_SESSION and $_COOKIE, no problem he give me 'en' or 'fr' but he doesn't translate my file and I don't know why.

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

For the folder in lng it's : locale/en/LC_MESSAGES/trad.po (or .mo). I try with LC_ALL and LC_MESSAGES but that doesn't change the result.

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

Did I miss something or made a wrong stuff?

非常感谢!

J.

推荐答案

我遇到了同样的问题.重新启动Apache Service为我解决了该问题

I've got the same problem. Restart Apache Service solved it for me

这篇关于Gettext有时可以工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆