Здравствуйте,
Пытаюсь сделать перевод сайта с помощью 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.