@Cels

Почему не работает gettext в windows?

Здравствуйте,
Пытаюсь сделать перевод сайта с помощью gettext, но ничего не получается. Мой код:

private function setLocale()
    {
        echo '$_SESSION[\'lang\']=' . $_SESSION['lang'] . '<br>';
        echo setlocale(LC_ALL, ['English', 'en', $_SESSION['lang'], $_SESSION['lang'] . '.utf8', $_SESSION['lang'] . '.utf-8', $_SESSION['lang'] . '.UTF8', $_SESSION['lang'] . '.UTF-8']); // Linux
        echo '<br>';
        echo putenv('LANG=' . $_SESSION['lang']);
        echo putenv('LANGUAGE=' . $_SESSION['lang']);
        echo putenv("LC_ALL={$_SESSION['lang']}"); // windows
        echo '<br>';
        echo bind_textdomain_codeset($_SESSION['lang'], 'UTF-8');
        echo '<br>';
        echo bindtextdomain($_SESSION['lang'], 'locale');
        echo '<br>';
        echo textdomain($_SESSION['lang']);
        echo '<br>';
        echo gettext("Привет");
    }

вывод:
$_SESSION['lang']=en_US
English_United States.1252
111
UTF-8
D:\Projects\XAMPPv7.2\htdocs\locale
en_US
Привет

структура файлов:
-locale
--en_US
---LC_MESSAGES
----en_US.mo
----en_US.po
--ru_RU
---LC_MESSAGES
----ru_RU.mo
----ru_RU.po

Часть файла en_US.po:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-23 10:42+0300\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: \n"
"X-Generator: Poedit 2.2.3\n"
"Last-Translator: Celsius\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: en_US\n"

#: d:\Projects\XAMPPv7.2\htdocs\core\page\page_header.php:10
msgid "Привет"
msgstr "Hello"


Помогите разобраться, что не так - уже все перепробовал, ничего не помогает (
Файлы созданы с помощью Poedit.
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы