我正在使用yii
的原生i18n
模块制作2种语言的yii2网站(目前),但如何为操作网址添加多语言支持?
例如,我的一个操作是category/slug
,而在英语中,它将显示为
http://example.com/category/chair
但是西班牙语必须显示为
http://example.com/categoria/silla
以及将来展示的其他语言
现在我手动添加我的路线,如:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<alias:\w+>' => 'site/<alias>',
'marca/<slug>' => 'site/brand',
'categoria/<slug>' => 'site/category',
'brand/<slug>' => 'site/brand',
'category/<slug>' => 'site/category',
],
],
我是否需要手动将每个操作路由到正确的控制器,还是可以使用yii::t()
功能添加更自动化的表单?
答案 0 :(得分:1)
您需要编写自己的UrlRule
课程,实施yii\web\UrlRuleInterface
并配置UrlManager
。
基本上是在您的UrlRule的“/categoria/silla
”方法中将“['site/category', 'slug' => $slug, 'lang' => $lang]
”等给定请求“翻译”到您的内部网址parseRequest
。 “createUrl
”是另一回事。