Symfony 1.2 で lang に基づいてルーティングを変更することは可能ですか?
私のシステムには 2 つの言語があります - EN、PL
サンプル ルートは次のようになります。
produkt_show:
url: /products/:pslug/:idslug
param: { module: product, action: show }
私が達成したいこと: produkt_show ルートが、現在の言語に応じて異なる URL に一致する [および生成する] ようにします。したがって、PL では、私の URL は次のようになります。
/produkty/:pslug/:idslug
これらのルートが同じ名前を持つことが不可欠です。すべての url_for/link_to などの呼び出しを変更して、異なるルート名を渡すことはできません。
ご不明な点がございましたら、お気軽にお問い合わせください。
アップデート
j0kのアドバイスに従って、プラグインを使用しました。私は zxI18nRoutingPlugin を選択しました。部分的に機能しているようです-ブラウザのアドレス入力に文字通り書くと、URLを正しいルートに解決します。ただし、翻訳されていない URL が生成されます。
例えば
私のルート:
contact_form:
url: /contact_form
param: { module: contact_request, action: new}
トランス単位:
<trans-unit>
<source>contact_form</source>
<target>formularz-kontaktowy</target>
</trans-unit>
生成された URL:
<a href="/contact_form" title="Kontakt" class="menu-contact"> Kontakt </a>
しかし、BASE_URL/formularz-kontaktowy と入力すると、正しいアクションが実行されます。
これは開発ツールバーからの私の構成です:
Request:
parameterHolder:
action: new
module: contact_request
sf_culture: pl
attributeHolder:
sf_route: 'sfRoute Object()'
User
options:
auto_shutdown: false
culture: pl
default_culture: pl_PL
use_flash: true
logging: '1'
timeout: 10800
attributeHolder:
symfony/user/sfUser/attributes: { LAST_CATEGORY_ID_PATH_VAR: null, product_elements_on_page: 50 }
culture: pl_PL
私はこれで立ち往生しているので、助け、提案、何かをいただければ幸いです。
更新 2
factory.yml:
all:
routing:
# class: sfPatternRouting
# param:
# generate_shortest_url: true
# extra_parameters_as_query_string: true
class: zxPatternI18NRouting
param:
generate_shortest_url: true
extra_parameters_as_query_string: true
use_cultures: [pl, de, en, ru] # destination cultures. Plugin looks for translations for these cultures.
culture_into_url: false # defines if culture should be always placed in url