2010-12-29 11 views
0

Ok, so habe ich jetzt Lokalisierung arbeiten auf Basis von URL (http://stackoverflow.com/questions/4550670/cakephp-choosing-language-by-url), aber wie eine Verknüpfung zu erstellen, die die Sprache ändern? Ich habe versucht,cakephp Wahl Sprache url - Teil 2

<?php echo $html->link('English', array('language'=>'eng')); ?> 

aber alle es tut, ist, dass es language:eng am Ende der URL hinzufügt (www.example.com/blah/blah/language:eng statt www.example.com/eng/blah/blah) und schaltet nicht die Sprache überhaupt.

Die Routen sehen nun wie folgt aus:

Router::connect('/registered/:language/:controller', 
       array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'), 
       array('language' => '[a-z]{3}')); 
Router::connect('/registered/:language/:controller/:action/*', 
       array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'), 
       array('language' => '[a-z]{3}')); 

ich auch die URL-Methode in app_helper außer Kraft gesetzt haben:

function url($url = null, $full = false) { 
     if(!isset($url['language']) && isset($this->params['language'])) { 
      $url['language'] = $this->params['language']; 
     } 
     return parent::url($url, $full); 
    } 

Wie Sie den Link, um den Weg zur Arbeit es sein sollte? Dank

Antwort

0

Versuchen zu entfernen: Sprache von Ihrem Router Urls.

Nicht getestet, aber es sollte als Urls arbeiten bereits genannten param bekommen:

Router::connect('/registered/:controller', 
       array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'), 
       array('language' => '[a-z]{3}')); 
Router::connect('/registered/:controller/:action/*', 
       array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'), 
       array('language' => '[a-z]{3}')); 

URL-Überschreibung Methode Halten Sie die Sprache beide Arten von GET-Variablen, um sicherzustellen, übernehmen.

+0

gut, wenn ich die Sprache param von Router-URL zu entfernen, werden die URLs nicht so funktionieren, ich will. Ich ziemlich viel brauchen sie wie www.example.com/eng/blah/blah zu suchen, anstatt www.example.com/blah/blah/language:eng – Elwhis