Symfony2 - 翻译twig模板时出现“无效的资源异常”

时间:2014-03-02 09:34:05

标签: symfony twig

我正在尝试翻译位于Resources / views / User / folder中的twig模板中的标签:

<label for="username">{% trans %}Username{% endtrans %} </label>

以下是我的login.ka.xliff文件中的一个部分,该文件位于我的项目“translations”文件夹下:

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="1">
                <source>Username</source>
                <target>მომხმარებელი</target>
            </trans-unit>
        </body>
    </file>
</xliff>

这是我登录页面的路线:

login:
    path:     /login/{_locale}
    defaults: { _controller: ExampleBundle:LogIn:login }
    requirements:
        _locale: en|ka

我有两个问题:

  1. 当我尝试使用区域设置(例如,ka)打开登录页面时,我得到了:

    500内部服务器错误 - Twig_Error_Runtime  1个链接异常:  InvalidResourceException»

  2. 我知道我可以使用$ request-&gt; getLocale()获取请求中的语言环境但是如何指定登录页面应该使用login.ka.xliff文件进行翻译?

    好吧,我似乎没有提供足够的信息,所以这里是:

    我把我的翻译文件放在例子中:MyBundle:Resources:translations(这就是我在“我的项目中”的意思)。

    在重新登录我的登录视图时出现异常,以下是我得到的异常的完整版本:

    “在ExampleMyBundle:User:login.html.twig第32行渲染模板(”“)期间抛出了异常。

    500内部服务器错误 - Twig_Error_Runtime 1个链接异常: InvalidResourceException»“

    是的,我每次做出更改时都尝试清除缓存,但它没有帮助。

    另外,我添加了login.ka.xliff文件的完整版本。

    再次感谢!

1 个答案:

答案 0 :(得分:0)

您的xliff文件似乎无效 - 它应如下所示:(包含xml-namespace,body,...)。

<!-- messages.ka.xliff -->
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="1">
                <source>Username</source>
                <target>მომხმარებელი</target>
            </trans-unit>
        </body>
    </file>
</xliff>

如果您未在模板中实际指定其他translation domain,则该文件应命名为messages.ka.xliff

{{ 'Username'|trans({}, "login") }}

...或在模板中配置了不同的默认翻译域...

{% trans_default_domain "login" %}

<trans-unit id="1">
   <source>Username</source>
   <target>მომხმარებელი</target>
</trans-unit>

...是无效的xliff文件。