<?php define('ROOT', realpath(dirname(__FILE__))); $locale = "ru-RU"; $dir = ROOT . DIRECTORY_SEPARATOR . "locale"; putenv("LC_ALL=" . $locale); putenv("LANG=" . $locale); putenv("LANGUAGE=" . $locale); setlocale(LC_ALL, $locale); bindtextdomain("application", $dir); bind_textdomain_codeset("appllication", "UTF-8"); textdomain("application"); var_dump($locale, $dir, gettext("Hello"));Результат:
string 'ru-RU' (length=5) string 'D:\OpenServer\domains\sp.loc\locale' (length=28) string 'Hello' (length=5)В папке locale такая структура:
locale: ru LC_ALL application.po application.mo ru-RU LC_ALL application.po application.mo ru_RU LC_ALL application.po application.mo Russian_Russia LC_ALL application.po application.moСобственно, в файле application.po единственный перевод строки "Hello".
Получалось ли у кого заставить работать нормально gettext?
P.S. Для Windows подходят локали "ru-RU" и "Russian_Russia", но не "ru" или "ru_RU".
P.P.S. Во вложении собственно сам мини-проект.