2016-04-19 2 views
0

Symfony 3を使用して、私の多国籍企業のWebで異なるホストと異なるルートが必要です。これにはJMS i18nルーティングを使用しました。 マイ設定YMLファイル:これによりSymfony witho JMSでホストとルートが異なるi18n

jms_i18n_routing: 
    default_locale: es_ES 
    locales: [es_ES, fr_FR, en_GB] 
    strategy: custom 
    hosts: 
     es_ES: www.aaa.local 
     fr_FR: www.aaa-fr.local 
     en_GB: www.aaa-uk.local 
    redirect_to_host: true 

は、私が正しく別のホストを使用することができますが、私は私がルートを「翻訳」することができますかわからない、f.ex:/contacto/contact/contact

負荷の異なるものを希望しますrouting.ymlはロケールによって異なります。

答えて

2

JMSI18nRoutingBundleを使用している場合、routesドメイン(Symfony翻訳コンポーネント)を使用して、route_nameに基づいてルートが自動的に翻訳されています。現在から自動的に翻訳されたルートを返します(バンドルから1によってラップされている)のSymfony routerを使用して今すぐあなたのルートを

id/source: contact 
domain: routes 
locale: en 
translation/target: /contact 

id/source: contact 
domain: routes 
locale: es 
translation/target: /contacto 

: だから、ちょうどこのような翻訳を作成し、あなたのroute_nameある連絡先を仮定しましたロケール。 あなたはこのようにルートパラメータ_localeを追加し、特定のロケールにそれを翻訳したい場合:

{{ path("contact", {"_locale": "es"}) }} 

または

$this->get('router')->generate('contact', array('_locale' => 'es')); 
+0

私は 'messages.es_Es.yml'にこのコードを追加する必要があります?私は実際に.po/.moの翻訳ファイルを使用しています –

+0

これは "コード"ではなく、特定の形式(ymlではありません)ではありません。しかし、これには.po/.mo変換ファイルを使用することができます。 ' "接触"' ' msgStrを "連絡先ヘルプ"' をMSGIDしかし、私はルート連絡先ヘルプ/に行けば次のとおりです。これをroutes.es_ES.po(とな.mo): – toooni

+0

[OK]を、私は新しい翻訳ファイルを生成します一致しません。このルートの「一部」をどのように、どこで翻訳できるのか教えてください。ありがとうございました! –

関連する問題