2011-12-19 3 views
0

Теперь он заставит много недель попробовать, чтобы он работал, но это не на Ubuntu. (хотя он работает на локальном хосте ...)Gettext: ubuntu? (но не на локальном хосте)

Вот код PHP, в котором сделан выбор языка. Этот код по следующему пути: /srv/d_disk/www/www.domaine.com/htdocs/www/mainsite/index.php

putenv("LANG=$langage"); 
$directory = dirname(__FILE__).'/locale'; 

$domain = 'traductions'; 
$locale=$langage . '.utf8'; 

setlocale(LC_MESSAGES, $locale); 
bindtextdomain($domain, $directory); 
textdomain($domain); 
bind_textdomain_codeset($domain, 'UTF-8'); 

переменного $ язык сайт заполняется либо: fr_FR, или en_US (я сделал эхо, и оно изменилось правильно), но язык не меняется на экране.

локаль -a дает мне показывает, что локаль установлены fr_FR.utf8 и fr_FR (то же самое для en_US) .po и .mo можно найти здесь: /srv/d_disk/www/www.domaine. ком/HTDOCS/mainsite/локаль/fr_FR.utf8/LC_MESSAGES

я перекомпилировал .po файлы с: msgfmt -o traductions.mo -v traductions.po

.po файла имеет следующий вид:

msgid "" 
msgstr "" 
"Project-Id-Version: test\n" 
"Report-Msgid-Bugs-To: \n" 
"POT-Creation-Date: 2011-11-17 19:41+0100\n" 
"PO-Revision-Date: 2011-11-22 20:45+0100\n" 
"Last-Translator: \n" 
"Language-Team: \n" 
"MIME-Version: 1.0\n" 
"Content-Type: text/plain; charset=UTF-8\n" 
"Content-Transfer-Encoding: 8bit\n" 
"X-Poedit-KeywordsList: _;gettext;gettext_noop;{t}\n" 
"X-Poedit-Basepath: ../../../mainsite/presentation/templates\n" 
"X-Poedit-SourceCharset: utf-8\n" 
"X-Poedit-SearchPath-0: /srv/d_disk/www/www.domaine.com/htdocs/mainsite/presentation/templates\n" 
"X-Poedit-SearchPath-1: ../../../mainsite/presentation/templates\n" 

#: /srv/d_disk/www/www.domaine.com/htdocs/mainsite/presentation/templates/about-us.c:1 
msgid "About Us" 
msgstr "A Propos de Nous" 

но ничего не изменилось ...

В phpinfo у меня есть метка, в которой включена поддержка GETTEXT.

Идея?

EDIT: С помощью Трассирования я получаю следующее =>

PHP Warning: PHP Startup: Unable to load dynamic library 
'/usr/lib/php5/20090626+lfs/gettext.so' - /usr/lib/php5/20090626+lfs/gettext.so: 
cannot open shared object file: No such file or directory in Unknown on line 0 
Bienvenue<br />Bonne journ?e<br /> 

EDIT 2: Удаляя gettext.so, я следующее при использовании Трассирования: Strace -e следа = файл -o test.txt PHP test_hasher.php Bienvenue
Bonne Journ? е


Это означает, что он переведен на французский язык в strace, но NOT при повторной настройке страницы (даже после очистки кеша и перезапуска apache)

+0

Почему ваш файл .po начинается с 'msgid" " msgstr" "'? – hakre

+0

Возможно, проблема кэширования? http://www.php.net/manual/en/book.gettext.php#105413 – Mimikry

+0

Я не знаю. Я просто удалю эти две строки и перезапустил apache, но это не помогло. –

ответ

0

Что произойдет, если вы измените каталог локали на /srv/d_disk/www/www.domaine.com/ htdocs/mainsite/locale/fr_FR/LC_MESSAGES? то есть удаление «.utf8»

+0

, она не изменилась. Еще проблема. –

Смежные вопросы