现在它会花费很多周时间才能使其正常运行,但它不会在Ubuntu上运行。 (即使它适用于localhost ......)
这是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');
变量$ langage由以下任一方式填充:fr_FR或en_US(我做了一个回声并且它已正确更改)但语言在屏幕上没有变化。
locale -a给出了我安装的语言环境fr_FR.utf8和fr_FR(en_US相同) .po和.mo可以在这里找到: /srv/d_disk/www/www.domaine.com/htdocs/mainsite/locale/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支持的标签。
一个想法?
编辑:通过使用strace,我得到以下=>
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 />
编辑2 :通过删除gettext.so,我在使用strace时有以下内容:
strace -e trace = file -o test.txt php test_hasher.php
Bienvenue
Bonne journ?e
这意味着它在strace中用法语翻译,但在重新编写页面时却没有(甚至在缓存清理和重启apache之后)
答案 0 :(得分:0)
如果将区域设置目录更改为/srv/d_disk/www/www.domaine.com/htdocs/mainsite/locale/fr_FR/LC_MESSAGES,会发生什么?即删除“.utf8”