Yii2国际化段塞和控制器

Yii2国际化段塞和控制器,yii2,internationalization,yii2-advanced-app,friendly-url,Yii2,Internationalization,Yii2 Advanced App,Friendly Url,我正在使用yii的本机i18n模块制作一个两种语言的yii2站点(目前),但是我如何为动作URL添加多语言支持 例如,我的一个动作是category/slug,在英语中,它将显示为 http://example.com/category/chair 但在西班牙语中,它必须显示为 http://example.com/categoria/silla 等其他语言在未来展示 现在我正在手动添加我的路线,如: 'urlManager' => [ 'enablePrettyU

我正在使用
yii
的本机
i18n
模块制作一个两种语言的yii2站点(目前),但是我如何为动作URL添加多语言支持

例如,我的一个动作是
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',
        ],
    ],
“urlManager”=>[
“enablePrettyUrl”=>true,
'showScriptName'=>false,
“规则”=>[
''=>'站点/',
“marca/”=>“站点/品牌”,
“categoria/”=>“站点/类别”,
“品牌/”=>“网站/品牌”,
“类别/”=>“站点/类别”,
],
],

我是否需要手动将每个操作路由到其正确的控制器,或者是否可以使用
yii::t()
函数添加更自动化的表单?

您需要编写自己的
UrlRule
类,实现
yii\web\UrlRuleInterface
并配置
UrlManager


基本上,它是关于“翻译”一个给定的请求,比如“
/categoria/silla
”,到您的UrlRule的“
解析请求
”方法中的内部url
['site/category',slug'=>$slug',lang=>$lang]
createUrl
”是另一种方式。

也许您需要这种多语言