Здравствуйте, вчера целый день боролся с gettext, выясннил, что переводит только компилированные файлы с расширением .mo и после изменений данных надо перезапускать сервер, но реагирует на перевод только по такому пути locale\ru\LC_MESSAGES или locale\ru_RU\LC_MESSAGES указываю en или любое другое не видит... и // Работает только с русским языком и на это не реагирует //putenv('LC_ALL=uk'); //setlocale (LC_ALL,"English"); листинг файла PHP: <?php // Работает только с русским языком и на это не реагирует //putenv('LC_ALL=uk'); //setlocale (LC_ALL,"English"); /* // Указываем путь к таблицам переводов bindtextdomain("myPHPApp", "./locale"); // Выбираем домен textdomain("myPHPApp"); // Теперь поиск переводов будет идти в ./locale/ru_RU/LC_MESSAGES/myPHPApp.mo // Выводим тестовое сообщение echo gettext("hello<br>"); echo _('How are you?'); */ bindtextdomain("eng", "./locale"); textdomain("eng"); echo _('федя'); ?> подскажите как работать с этим gettext?
@Lion777 // Работает только с русским языком и на это не реагирует //putenv('LC_ALL=uk'); //setlocale (LC_ALL,"English"); а в мануале так мб както en_EN putenv('LC_ALL=de_DE'); setlocale(LC_ALL, 'de_DE');
да делал так, в этих строчка что не пиши, ищет только в папке ru, их вообще закоментил, а оно работает.
Потому что соответствующая локаль должна быть установлена в системе Например, в системе не установлена локаль de_DE вот и не работает gettext если указать эту локаль В linux например это может быть исправлено так (зависит от дистрибутива, конечно) Код (Text): # от root пользователя # отредактируй /etc/locale.gen # найди в списке и раскомментируй de_DE.UTF-8 # сохрани и выполни команду locale-gen # может быть не помешает перезагрузить сервер