symfony 翻译 - “xlf"翻译加载器未注册 [英] symfony translation - The "xlf" translation loader is not registered

查看:30
本文介绍了symfony 翻译 - “xlf"翻译加载器未注册的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 symfony2 上进行 i18n 测试.(v2.4).我按照步骤 http://symfony.com/doc/master/book/translation.html.

就像另一个人的问题Symfony 基本翻译示例,异常我遇到了一个异常xlf"翻译加载器未注册".

我的配置细节如下:

  1. app/config/config.yml

     翻译器:{ fallback: "%locale%" }//locale=en

  2. src/xxx/MyBundle/Controller/DefaultController.php

<块引用>

/***@Route("/tr")*/公共函数 trAction(){$translated = $this->get('translator')->trans('symfony.test.great');返回新响应($翻译);}

  1. 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:

  1. app/config/config.yml

      translator:      { fallback: "%locale%" }  // locale=en
    

  2. src/xxx/MyBundle/Controller/DefaultController.php

/**
 *@Route("/tr")
 */
public function trAction()
{
    $translated = $this->get('translator')->trans('symfony.test.great');
    return new Response($translated);
}

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆