Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internationalization 在Yii2中翻译url规则_Internationalization_Yii2 - Fatal编程技术网

Internationalization 在Yii2中翻译url规则

Internationalization 在Yii2中翻译url规则,internationalization,yii2,Internationalization,Yii2,由于Yii::t()我已经翻译了所有文本,我正在尝试将我的网站翻译成不同的语言。但我使用的是漂亮的URL,它应该会将它们转换为更好的用户体验 我正在使用组件翻译管理器由lajax进行翻译 我尝试添加规则的Yii::t()键,我可以翻译它们,但是当您更改语言时,将忽略翻译,Yii使用原始规则 这是我的经理: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'en

由于
Yii::t()
我已经翻译了所有文本,我正在尝试将我的网站翻译成不同的语言。但我使用的是漂亮的URL,它应该会将它们转换为更好的用户体验

我正在使用组件<代码>翻译管理器由lajax进行翻译

我尝试添加规则的
Yii::t()
键,我可以翻译它们,但是当您更改语言时,将忽略翻译,Yii使用原始规则

这是我的经理:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        ['pattern' => '<id:rss>', 'route' => 'rss/default/index', 'suffix' => '.xml'],
        ['pattern' => '<id:rss>', 'route' => 'rss/default/index'],
        ['pattern' => 'sitemap', 'route' => 'sitemap', 'suffix' => '.xml'],
        '/' => 'site/index',
        Yii::t('config main', '<site:(about|contact|login|logout|signup|policy|conditions|blog)>') => 'site/<site>',
        Yii::t('config main', '<device:\w+>/compare-price') => 'items/compareprices',
        Yii::t('config main', 'versus/<brand1:\w+>-<model1:[\w\-]+>-<brand2:\w+>-<model2:[\w\-]+>') => 'items/versus',
        Yii::t('config main', 'versus/<brand1:\w+>-<model1:[\w\-]+>-<brand2:\w+>-<model2:[\w\-]+>-<brand3:\w+>-<model3:[\w\-]+>') => 'items/versus',
        Yii::t('config main', 'versus/<brand1:\w+>-<model1:[\w\-]+>-<brand2:\w+>-<model2:[\w\-]+>-<brand3:\w+>-<model3:[\w\-]+>-<brand4:\w+>-<model4:[\w\-]+>') => 'items/versus',
        Yii::t('config main', '<device: \w+>/advanced-search') => 'items/advancedsearch',
     ],
],
'urlManager'=>[
“enablePrettyUrl”=>true,
'showScriptName'=>false,
'enableStrictParsing'=>false,
“规则”=>[
['pattern'=>'','route'=>'rss/default/index','suffix'=>'.xml'],
['pattern'=>'','route'=>'rss/default/index'],
['pattern'=>'sitemap','route'=>'sitemap','suffix'=>'.xml'],
“/”=>“站点/索引”,
Yii::t('config main','')=>'site/',
Yii::t('config main','/compare price')=>'items/compareprices',
Yii::t('config main','vs/--')=>'items/vs',
Yii::t('config main','vs/----')=>'items/vs',
Yii::t('config main','vs/----')=>'items/vs',
Yii::t('config main','/advanced search')=>items/advancedsearch',
],
],
例如:

domain.com/conditions
将使用西班牙语
domain.com/conditions


如何在URL中实现国际化?

首先,这不是一个好的决定,但我目前正在使用这种方法,同时我正试图找出完全相同的问题:

我正在使用用于语言管理的组件&插入URL中的语言代码

    'urlManager' => [
        'class' => 'codemix\localeurls\UrlManager',
        'languages' => ['ru', 'en'],
        'showScriptName' => false,
        'enablePrettyUrl' => true,
        'enableLanguageDetection' => true,
        'rules' => array(
            'отдых-в-греции-цены|vacation-in-greece-prices' => 'site/prices',
        ),
    ],
我有翻译版的“цццц-ц-цццц-цццццц”和我在网站

<?= Html::a(Yii::t('app', 'Цены'), ['/'.Yii::t('app', 'отдых-в-греции-цены')]) ?>

正如我所说,这不是一个最佳实践,但目前a找不到更好的方法。此外,该网站非常小,我不需要像你这样复杂的路线,但我认为它可以实现


关于

Check@stig js该问题的答案不是我想做的,他们建议通过添加en/de/es/fr来区分语言,我想翻译我为我的工作解决方案回复的URL: