routing.ymlのパスを翻訳する


7

モジュールルートのパス部分をどのように変換しますか?

たとえば、あなたは持っています:

module_name.my_route_name:
  path: '/path/to/content'
  defaults:
    _controller: \Drupal\module_name\Controller\MyController

/ es / ruta-de-acceso / a / contenidoが同じルート名を指すようにするにはどうすればよいですか?

回答:


7

私の知る限り(誰でも、間違っていれば訂正してください!)これはルーティングシステムでは不可能です。ただし、パスエイリアスを追加して、「/ ruta-de-acceso / a / contenido」をスペイン語の「/ path / to / content」のエイリアスにすることもできます。

ルートと比較して、パスエイリアスの問題は、コアや構成ではなくコンテンツと見なされることです。結果として、(再び:AFAIK)現在、それらをエクスポートしてサーバーにデプロイする方法はありません。最近のプロジェクトでは、カスタムモジュールの.installファイルにあるカスタムコードで解決しました。このGithub gist:Drupal 8:codeにエクスポートされたカスタムパスエイリアスでコードを確認できます


1
やあ、共有してくれてありがとう。私はあなたが話していることを正確に理解しており、間違いなくそれを実装します。頭に浮かんだのは、構成ファイルのルートエントリに変換されたパスを実際に追加することでした。インストールフェーズで構成ファイルを読み取り、データベースにエイリアスを追加します。それでうまくいくかどうかはわかりませんが、詳しく調べます。乾杯!
IslandDev

問題ない!変換されたパスをルート定義にバンドルすることが理にかなっていることに同意します。あなたがそれを機能させることができるならば、私はあなたのコードを見てみたいです!
marcvangend

1

私はそれが逆であると思います、それはパスを指すルートです。理想的には、すべての言語に使用されるルートを1つだけ持つことができ、それがnode / {id}で機能すると思います。しかし、エイリアスを使用する場合、これを機能させる唯一の方法は、言語ごとに1つのルートを定義することでした。まったくきれいではありません。

ちなみに、Twigでは、を使用しました{{ path('module_name.my_route_name.' ~ language) }}。また、まったくきれいではありません。


あなたは何が何を指しているのかについて正しいです。
IslandDev 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.