2

Symfony2では、formbuilderを使用しています。ドキュメントに従って、フォームにラベルを設定しています。

ただし、「show」ページと「index」ページを表示しているときは、ラベルをTwigにコピーする必要があります。

どこでも同じラベルを使用する方法はありますか?私が考えたオプション:

  • フォームビルダーの構成にアクセスしますが、実際にはフォームを作成しません
  • 中央の構成ファイルを用意し、フォームビルダーと小枝ファイルからそのファイルを検索します

ただし、どちらの方法でも、Symfonyでは慣れていない何かを「実行」する必要があります。これはすでに解決されているようですが、どうすればよいかわかりません。

4

1 に答える 1

4

あなたはこの問題を克服するために翻訳システムを利用することができます。で翻訳が有効になっていることを確認してくださいconfig.yml

このようにフォームタイプにフィールドを追加した場合

$builder->add('title', 'text', array(
    'label'=> 'model.title'
));
//.....

messages.en.ymlバンドル ディレクトリに名前の付いたファイルを作成しResources/translations(デフォルトのロケールに置き換えen、ロケールに基づいて複数のファイルを作成します。本の翻訳の章を確認してください)、次のように入力します。

#src/YourBundle/Resources/translation/messages.en.yml
model:
    title: "Title"
    field: "Field"
    #....

フォームの追加と編集のラベルが表示されTitleます。インデックスページとショーページでは、次のことができます

{{ "model.title" | trans([], 'messages') }}

このプロセスは少し時間がかかりますが、これは1回限りであり、翻訳ファイルを変更することでラベルの値を変更できます。

于 2012-05-24T15:03:07.887 に答える