Gettext俄语

时间:2014-02-05 21:48:30

标签: php gettext

我管理自己的网站与gettext合作。目前只有英语到匈牙利语的翻译,它的工作就像一个魅力,一个半完成的俄语翻译,只是没有加载。

我通过url传递变量,比如url.php?lang = hu。如果我将俄语翻译加载到匈牙利语翻译的文件夹中,它会做一些但只显示???字符。我知道,我需要将它设置为utf-8,我在这里找到了一堆与此主题相关的问题,但我无法解决这个问题。我的文件夹是:

hu_HU> LC_MESSAGES> messages.po / mo
ru_RU> LC_MESSAGES> messages.po /月

代码是:(也许这会更容易替换为“$ locale = $ _GET ['lang'];”:))

    switch ($lang) {

  case 'hu':
  $locale = "hu_HU";
    if (isSet($_GET["locale"])) $locale = $_GET["locale"];
    putenv("LC_ALL=$locale");
    setlocale(LC_ALL, $locale);
    bindtextdomain("messages", "./locale");
    textdomain("messages");
  break;

  case 'ru':
  $locale = "ru_RU";
    if (isSet($_GET["locale"])) $locale = $_GET["locale"];
    putenv("LC_ALL=$locale");
    setlocale(LC_ALL, $locale.'.utf8');
    bindtextdomain("messages", "./locale");
    textdomain("messages");
  break;

}

** 编辑* **

在我读完这么多之后,我打电话给我的托管公司。他们打开了所要求的语言。现在俄罗斯人正在工作,但它不承认这些信件。放置元字符集正在解决问题,但在这种情况下,特殊字符,如öüóőúéáű不能正确显示。我试图在setlocal周围将代码更改为utf8,但没有成功。什么可以解决方案?

$locale = "ru_RU.UTF-8";
    if (isSet($_GET["locale"])) $locale = $_GET["locale"];
    putenv("LC_ALL=$locale");
    setlocale(LC_ALL, $locale, 'UTF-8');
    bindtextdomain("messages", "locale");
    textdomain("messages");

我的文件夹结构是:ru_RU.UTF-8> LC_MESSAGES> messages.po /月

0 个答案:

没有答案