2016-04-07 8 views
2

Ich versuche, meine Website in verschiedene Sprachen zu übersetzen, dank Yii::t() Ich habe alle Texte übersetzt. Aber ich benutze hübsche URLs und sollte sie für bessere Benutzererfahrung übersetzen.Übersetzen Sie url Regeln in Yii2

Ich benutze die Komponente. translate-manager von lajax, um Übersetzungen zu machen

Ich habe versucht, Yii::t() Schlüssel der Regeln hinzuzufügen, kann ich sie übersetzen, aber wenn Sie die Sprache ändern ignoriert die Übersetzung und Yii verwenden die ursprüngliche Regel.

Das ist mein 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/conditionsdomain.com/condiciones in Spanisch

sein Wie muss ich die Internationalisierung in den URLs implementieren?

+0

prüfen http://stackoverflow.com/questions/30620404/yii2-create-translated-urls –

+0

@ stig-js Die Antwort auf diese Frage ist nicht, was ich versuche zu tun, schlagen sie zu unterscheiden die Sprache, indem ich en/de/es/fr hinzufüge, möchte ich die URL – Sageth

+0

übersetzen Ich habe für meine Arbeitslösung auf http://stackoverflow.com/questions/30620404/yii2-create-translated-urls/40776550 geantwortet # 40776550 – nacesprin

Antwort

2

Zunächst einmal ist es keine gute Entscheidung, aber ich bin mit diesem Ansatz im Moment, während ich versuche, genau das gleiche Problem herauszufinden:

ich die Komponente codemix/yii2-localeurls für Sprache Management & Sprachcode in URL eingefügt.

'urlManager' => [ 
     'class' => 'codemix\localeurls\UrlManager', 
     'languages' => ['ru', 'en'], 
     'showScriptName' => false, 
     'enablePrettyUrl' => true, 
     'enableLanguageDetection' => true, 
     'rules' => array(
      'отдых-в-греции-цены|vacation-in-greece-prices' => 'site/prices', 
     ), 
    ], 

Ich habe 'отдых-в-греции-цены' in Übersetzungen und meine Verbindung in Website ist wie:

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

Wie ich sagte, es ist nicht eine bewährte Methode, aber im Moment eine Dose‘ t einen besseren Ansatz finden. Auch die Seite ist sehr klein und ich brauche keine komplexen Routen wie deins, aber ich denke, dass es implementiert werden kann.

Grüße