symfony 翻译 - “xlf"翻译加载器未注册 [英] symfony translation - The "xlf" translation loader is not registered
问题描述
我正在 symfony2 上进行 i18n 测试.(v2.4).我按照步骤 http://symfony.com/doc/master/book/translation.html.
就像另一个人的问题Symfony 基本翻译示例,异常我遇到了一个异常xlf"翻译加载器未注册".
我的配置细节如下:
app/config/config.yml
翻译器:{ fallback: "%locale%" }//locale=en
src/xxx/MyBundle/Controller/DefaultController.php
<块引用>
/***@Route("/tr")*/公共函数 trAction(){$translated = $this->get('translator')->trans('symfony.test.great');返回新响应($翻译);}
- src/xxx/MyBundle/Resources/translations/messages.en.xlf(或后缀xliff")
<块引用>
.....<trans-unit id="10"><source>symfony.test.great</source><目标>Symfony 很棒...</target></trans-unit>....
当我访问路由器/tr 时,它说:
<块引用>xlf"翻译加载器未注册.500 内部服务器错误 - 运行时异常
有什么不对的地方吗?请帮我一把,先谢谢了.
还有更多:我的 compose.json :
<块引用>需要":{"php": ">=5.3.3","symfony/symfony": "~2.4","教义/orm": "~2.2,>=2.2.3","doctrine/doctrine-bundle": "~1.2","twig/extensions": "~1.0","symfony/assetic-bundle": "~2.3","symfony/swiftmailer-bundle": "~2.3","symfony/monolog-bundle": "~2.4","sensio/distribution-bundle": "~2.3","sensio/framework-extra-bundle": "~3.0","sensio/generator-bundle": "~2.3","incenteev/composer-parameter-handler": "~2.0",奏鸣曲项目/管理包":开发大师",奏鸣曲项目/doctrine-orm-admin-bundle":开发大师",奏鸣曲项目/国际捆绑":开发大师","friendsofsymfony/elastica-bundle": "3.0.x","symfony/translation": "2.4.x-dev","symfony/config": "2.4.x",},
我解决了一个类似的问题:
使用Symfony\Component\Translation\Translator;使用 Symfony\Component\Translation\Loader\XliffFileLoader;......$translator = new Translator('en_US');$translator->addLoader('xlf', new XliffFileLoader());$translator->addResource('xlf', __DIR__ .'/registration.xlf', 'it_IT', 'registration');
I am doing a i18n testing on symfony2. (v2.4) . And i follow the steps http://symfony.com/doc/master/book/translation.html.
Just like another guys' question Symfony Basic Translation Example, Exception i came across a exception "The "xlf" translation loader is not registered".
my config detail like this:
app/config/config.yml
translator: { fallback: "%locale%" } // locale=en
src/xxx/MyBundle/Controller/DefaultController.php
/** *@Route("/tr") */ public function trAction() { $translated = $this->get('translator')->trans('symfony.test.great'); return new Response($translated); }
- src/xxx/MyBundle/Resources/translations/messages.en.xlf (or with suffix "xliff")
..... <trans-unit id="10"> <source>symfony.test.great</source> <target> Symfony is Great...</target> </trans-unit> ....
When i visit the router /tr, it says:
The "xlf" translation loader is not registered. 500 Internal Server Error - RuntimeException
Any wrong point? please give me a hand ,thanks in advance.
And more: my compose.json :
"require": { "php": ">=5.3.3", "symfony/symfony": "~2.4", "doctrine/orm": "~2.2,>=2.2.3", "doctrine/doctrine-bundle": "~1.2", "twig/extensions": "~1.0", "symfony/assetic-bundle": "~2.3", "symfony/swiftmailer-bundle": "~2.3", "symfony/monolog-bundle": "~2.4", "sensio/distribution-bundle": "~2.3", "sensio/framework-extra-bundle": "~3.0", "sensio/generator-bundle": "~2.3", "incenteev/composer-parameter-handler": "~2.0", "sonata-project/admin-bundle": "dev-master", "sonata-project/doctrine-orm-admin-bundle": "dev-master", "sonata-project/intl-bundle": "dev-master", "friendsofsymfony/elastica-bundle": "3.0.x", "symfony/translation": "2.4.x-dev", "symfony/config": "2.4.x", },
I fixed a similar problem like this:
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\XliffFileLoader;
...
...
$translator = new Translator('en_US');
$translator->addLoader('xlf', new XliffFileLoader());
$translator->addResource('xlf', __DIR__ . '/registration.xlf', 'it_IT', 'registration');
这篇关于symfony 翻译 - “xlf"翻译加载器未注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!