2016-04-07 9 views
2

Yii::t()私はすべてのテキストを翻訳しています。私はサイトを別の言語に翻訳しようとしています。しかし、私はきれいなURLを使用しており、ユーザーエクスペリエンス向上のためにそれらを翻訳する必要があります。Yii2のURLルールを翻訳する

私はコンポーネントを使用しています。 translate-manager翻訳するlajaxによって

私はそれらを翻訳することができますが、翻訳を無視すると、翻訳を無視すると、元のルールを使用してYiiのルールを追加するようにしましたYii::t()

これは私の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', 
    ], 
], 

Exemple:

domain.com/conditionsは、私はURLで国際化を実装する必要がありますどのようにスペイン語

domain.com/condicionesでしょうか?

+0

チェックhttp://stackoverflow.com/questions/30620404/yii2-create-translated-urls –

+0

@スティグ-jsからその質問への答えは、私がやろうものではありません、彼らは差別化することを提案しますen/de/es/frを追加することにより、言語を翻訳したいと思っています – Sageth

+0

私は私の仕事の解決策について答えました:http://stackoverflow.com/questions/30620404/yii2-create-translated-urls/40776550 #40776550 – nacesprin

答えて

2

まず第一に、それは良い決定ではないのですが、私は正確に同じ問題を把握しようとしている間、私は、現時点ではこのアプローチを使用しています:

私は言語のためのコンポーネントcodemix/yii2-localeurlsを使用しています管理& 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', 'отдых-в-греции-цены')]) ?> 

が、現時点では缶」より良いアプローチを見つける。また、サイトは非常に小さく、あなたのような複雑なルートは必要ありませんが、実装できると思います。

よろしく

関連する問題