-4

我正在使用 FOSUserBundle 在 Symfony2 中编写一个应用程序。但是,他们所有的模板都在 Twig 中,但我更喜欢使用 php 模板。

使用翻译文件,他们使用这个:

{{ 'security.login.username'|trans }}

对应于本节

security:
    login:
        username: "Username:"
        password: "Password:"
        remember_me: Remember me
        submit: Login

在翻译文件中。我将如何在 php 中编写这个?

4

1 回答 1

4

您能识别 FOSUserBundle 中翻译文件的特殊名称吗?例如,它是“FOSUserBundle.en.yml”。文件名遵循消息域约定。进一步查看捆绑模板,您会看到,它们使用消息域:

{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}

所以你必须在 php 中使用与翻译服务相同的消息域:

$this->get('translator')->trans('security.login.username', array(), 'FOSUserBundle');

在 PHP 模板中,它看起来很相似。

<?php echo $view['translator']->trans('security.login.username', array(), 'FOSUserBundle') ?>

如果您从例如文件中获取翻译,则默认消息域是messages并且可以省略。messages.en.yml但是其他所有域都必须交给翻译者。顺便说一句,验证器的翻译必须在例如validators.en.yml文件中。

于 2013-05-13T21:05:28.573 回答