PHP细枝翻译文件
我正在使用细枝模板引擎。我添加了用于翻译的I18n扩展,但它不起作用。它总是显示“密码” 这是我的密码:PHP细枝翻译文件,php,internationalization,twig,translation,Php,Internationalization,Twig,Translation,我正在使用细枝模板引擎。我添加了用于翻译的I18n扩展,但它不起作用。它总是显示“密码” 这是我的密码: // index.php putenv('LC_ALL=fr_FR'); setlocale(LC_ALL, 'fr_FR'); bindtextdomain('app', 'locale'); bind_textdomain_codeset('app', 'UTF-8'); textdomain('app'); require_once 'lib/vendor/autoload.php
// index.php
putenv('LC_ALL=fr_FR');
setlocale(LC_ALL, 'fr_FR');
bindtextdomain('app', 'locale');
bind_textdomain_codeset('app', 'UTF-8');
textdomain('app');
require_once 'lib/vendor/autoload.php';
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array(
'charset' => 'utf-8',
'cache' => false,
'debug' => true
));
$twig->addExtension(new Twig_Extensions_Extension_I18n());
// templates/index.html
{% include 'header.html' %}
Translate that: {% trans "password" %}
{% include 'footer.html' %}
// locale/fr_FR/app.yml
password: mot de passe
有什么想法吗?
我没有使用symfony框架。1。创建正确的采购订单文件。或者试试这个app.po
:
2.基于app.po
生成app.mo
。例如使用工具。
3.将
app.mo
放置到locale/fr\u fr/LC\u消息中
dir.是否区分大小写?“密码”!=“密码”。。。!?哦,对不起。我纠正了它。问题仍然存在。我认为language.yml文件未加载。您确定此扩展名支持yml吗?仅说明gettext(据我所知是MO/PO文件)。嗯,如果我使用locale/fr\u fr/app.PO内容msgid和msgstr,它也不起作用。谢谢!!我按照您的指示添加了UTF-8,现在它可以工作了:putenv('LC_ALL=fr_fr.UTF-8');setlocale(LC_ALL,“fr_fr.UTF-8”);app.mo的位置:locale/fr_fr.UTF-8/LC_messages注意,您应该在本地安装gettext工具,并在命令行上执行所有操作,而不是po2mo.net。工具都在那里。。。
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr_FR\n"
"X-Generator: Poedit 1.8.7\n"
#: templates/1.php:3
msgid "password"
msgstr "mot de passe"