Witam.

Mam problem z ustawieniem rouingu i tłumaczeniami w ZF1. Chcę, aby wyglądało to tak:
domain.tld - główna strona, domyślnie angielska (en)
de.domain.tld - ta sama strona, ale po niemiecku
XX.domain.tld - każde inne tłumaczenie, ta sama strona
etc.domain.tld - nieistniejące tłumaczenie -> przekierowanie na domain.tld
sub.domain.tld - inny moduł, bez tłumaczeń

DNSy są ustawione, serwer http przekierowuje wszystko do ZF poprawnie, ale coś poszło nie po mojej myśli, bo rezultat mam taki:
domain.tld - działa ok, jest po angielsku
etc.domain.tld - przekierowuje na domain.tld - jest ok
sub.domain.tld - jest ok
de.domain.tld - tłumaczy poprawnie index/index, ale każda inna podstrona pokazuje tylko i wyłącznie index/index (nie przekierowuje, po prostu ładuje zły kontroler i akcję)

Czy ktoś ma jakiś pomysł, co może być nie tak? Mam to zrobione tak:

Application.ini
Kod
resources.router.routes.radio.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.radio.route = ":sub.domain.tld"
resources.router.routes.radio.defaults.module = "radio"
resources.router.routes.radio.chains.index.defaults.controller = "index"
resources.router.routes.radio.chains.index.defaults.action = "listen"

resources.router.routes.radio.chains.listen.route = "listen/:station"
resources.router.routes.radio.chains.listen.defaults.controller = "index"
resources.router.routes.radio.chains.listen.defaults.action = "listen"

resources.router.routes.lang.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.lang.route = ":language.domain.tld"
resources.router.routes.lang.reqs.language= "[a-z]{2}"
resources.router.routes.lang.defaults.language = "en"
resources.router.routes.lang.defaults.controller = "index"
resources.router.routes.lang.defaults.action = "index"



Bootstrap.php
Kod
$translate = new Zend_Translate('array',
                    APPLICATION_PATH . "/langs/",
                    'en,
                    array('scan' => Zend_Translate::LOCALE_DIRECTORY));
      
        $registry = Zend_Registry::getInstance();
        $registry->set('Zend_Translate', $translate);
      
/* Activation of plugin for translations in controllers */
        $subTranslate = new Stream_Controller_Plugin_SubTranslate();
        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin($subTranslate);


Plugin kontrolera
Kod
    <?php

    class Stream_Controller_Plugin_SubTranslate extends Zend_Controller_Plugin_Abstract
    {

        public function routeShutdown(Zend_Controller_Request_Abstract $request)
        {
            $translate = Zend_Registry::get("Zend_Translate");

            $urlLang = $request->getParam('language');
            $translate->setLocale(new Zend_Locale('en_EN'));

            if(isset($urlLang))
            {
                if ($translate->isAvailable($urlLang))
                {
                    $translate->setLocale(new Zend_Locale($urlLang));
                } else
                {
                    $this->getResponse()->setRedirect('http://domain.tld', 301);
                }
            }
        }
    }