2017-05-03 84 views
0

通过gettext进行文本翻译不起作用。请帮助我gettext问题php

$translate = 'messages'; 

putenv("LC_ALL=en_US"); 
T_setlocale(LC_ALL, "en_US"); 

bindtextdomain($translate, _ROOT_DIR_."locale/"); 
textdomain($translate); 
bind_textdomain_codeset($translate, 'UTF-8'); 

文件夹结构:

区域设置 - > EN_US - > LC_MESSAGES - > messages.mo messages.po

脚本messages.po:

msgid "" 
msgstr "" 
"POT-Creation-Date: 2017-05-03 15:53+0300\n" 
"PO-Revision-Date: 2017-05-03 15:54+0300\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-Generator: Poedit 2.0.1\n" 
"X-Poedit-Basepath: .\n" 
"Plural-Forms: nplurals=2; plural=(n != 1);\n" 
"Language: en_US\n" 

#: index.php:5 
msgid "Bonjour tout le monde" 
msgstr "Hello world" 
+1

欢迎来到SO。请澄清在哪个方面gettext“不起作用”。包含任何错误消息并解释您想要达到的目标。 –

+0

如果你在Windows上,我敢肯定你会成为SOL ......如果你在* nix中,记住你需要在.po文件中进行任何修改后重新启动Apache。 – CD001

+0

我调整了:.po和.mo文件,语言环境,域名和文本仍然没有翻译 没有错误显示 每次修改.po后,我重新启动打开的服务器 –

回答

0

您只需在php.ini文件中注释掉一行即可。像这样 -

;extension=php_gettext.dll