-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 に答える