Hallo,
ich habe ein komisches Verhalten beim Routing.

Zunächst einmal habe ich in der Bootstrap.php das Routing für die Sprachauswahl erstellt.

Code:
        $this->bootstrap('frontController');
        $front = $this->getResource('frontController');
        $router = $front->getRouter();

        $defaultRoute = new Zend_Controller_Router_Route_Module(
            array('lang' => 'de'),
            $front->getDispatcher(),
            $front->getRequest()
        );

        $langRouter = new Zend_Controller_Router_Route(
            ':lang/:module/:controller/:action/*',
            array(
                'lang'       => 'de',
                'module'     => 'default',
                'controller' => 'index',
                'action'     => 'index',
            ),
            array(
                'lang'  => '^(de|en)$'
            )

        );

        $chainRoute = new Zend_Controller_Router_Route_Chain();
        $chainRoute->chain($defaultRoute)->chain($langRouter);

        $router->addRoute('default', $defaultRoute)
            ->addRoute('lang', $langRouter);
In einer Plugin-Klasse frage ich die jeweilige Sprache ab und führe die Übersetzung durch
Code:
$lang = $request->getParam('lang');

$config_locale = Zend_Registry::get( 'config' )->locale;

$locale = new Zend_Locale( $config_locale->{$lang}->locale_string );
Zend_Registry::set( 'Zend_Locale', $locale );

$langFile = APPLICATION_PATH . '/translations/' . $lang . '/' . $lang . '.php';
Zend_Registry::set( 'Zend_Translate', new Zend_Translate( 'array', $langFile ) );
Die URLs generiere ich über den URL-Viewhelper
Code:
$this->url(array('module'=>'admin','controller'=>'auth','action'=>'index', 'lang'=>$lang), '', true)
Soweit funktioniert auch alles wunderbar.

Die URLs werden umgeschrieben, sodass "/de/admin/auth/index" heurauskommt.

Allerdings habe ich ein eigenartiges Verhalten, wenn ich ein URL aufrufe in der der Sprachparameter nicht vorne ist, sondern am Ende als Parameter angehangen.

"/admin/auth/index/lang/de"

Jetzt werden komischerweise alle URLs die über den URL Viewhelper generiert werden, auf diese Weise geschrieben.
"/...../lang/de"


Irgendwie stehe ich auf dem Schlauch und komme nicht weiter. Woran könnte das liegen?

Wie kann ich erzwingen, dass der Sprachparameter vorne steht und nicht hinten als Parameter angehangen wird?


Vielen Dank für eure Hilfe
Ünal