URLのスラッグで動作する多言語symfony 2 eコマースサイトに取り組んでいます。
現在、両方の言語の動作として、(製品名に基づく) 製品のスラッグも翻訳されています。だから私はこの種のURLを持っています:
- 英語: example.com/en/products/english-product-name
- 中国語: example.com/zh/products/chinese-product-name
スラッグは名前に基づいているため、翻訳テーブルに言語ごとに保存されます。私が望むのは、両方の言語で英語のスラッグのみを使用することです。私のエンティティファイルでは、次のようになります。
/**
* @Gedmo\Translatable
* @Gedmo\Sluggable(slugField="slug")
* @ORM\Column(type="string", unique=true)
*/
private $name;
/**
* @Gedmo\Translatable
* @Gedmo\Slug
* @ORM\Column(length=128, unique=true)
*/
private $slug;
スラッグと翻訳にStofDoctrineExtensionsBundleを使用しています。
翻訳できない追加のフィールドを作成し、(製品名の代わりに) スラッグのベースにすることを考えましたが、良い方法とは思えません。