我试图将我的网站翻译成不同的语言,感谢Yii::t()
我翻译了所有文字。但是我使用漂亮的网址,它应该翻译它们以获得更好的用户体验。
我正在使用该组件。由lajax translate-manager
进行翻译
我试图添加规则的Yii::t()
个键,我可以翻译它们,但是当你改变语言时忽略翻译而Yii使用原始规则。
这是我的urlManager:
'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',
],
],
例:
domain.com/conditions
将是domain.com/condiciones
西班牙语
我如何在网址中实现国际化?
答案 0 :(得分:2)
首先,这不是一个好的决定,但我现在正在使用这种方法,而我正试图找出完全相同的问题:
我正在使用组件codemix/yii2-localeurls进行语言管理&amp;语言代码插入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', 'отдых-в-греции-цены')]) ?>
正如我所说,这不是最佳做法,但目前还找不到更好的方法。此外,该网站非常小,我不需要像你这样的复杂路线,但我认为它可以实施。
此致