viacjazycne routovanie s identifikatorom jazyka

- pogo
 - Člen | 29
 
Zdravim,
viem, ze tato tema tu bola riesena viackrat, ale vacsinou narazim na stare
vlakna alebo nie uplne vyriesene.
Co potrebujem:
potrebujem alternativne url, napr.:
example.com/kontakt ⇒ example.com/en/contact
example.com/o-nas ⇒ example.com/en/about-us
tzn. slovenske bez jazyka v url a anglicke s jazykom. Toto samo o sebe uz
mam rozchodene, problem je ale n:href makro chcel by
som takto:
<a n:href="articles:view contact">
vygeneruje /en/contact, pokial som na anglickej verzii (url
obsahuje /en/), inak /kontakt. Zaroven by som chcel
vediet prepnut jazyk tak, aby som ostal na tej istej stranke, len mi prehodilo
jazyk, tzn. kliknem na linku a refreshne stranku z /en/contact na
/konktakt.
Momentalne to vyzera nejak takto:
$router[] = new TranslationRoute('[<lang [a-z]{2}>/]<id>');
A moja TranslationRoute:
...
    public function __construct($mask, $metadata = array(), $flags = 0)
    {
        $metadata = array(
            'presenter' => 'articles',
            'action' => 'view',
            'id' => array(
		//preto callbacky v tejto triede, aby som mal pristup k jazyku
                Route::FILTER_IN => $this->filterIn,
                Route::FILTER_OUT => $this->filterOut,
                'home'
            ),
            'lang' => 'sk',
        );
        parent::__construct($mask, $metadata, $flags);
    }
...
    public function match(Nette\Http\IRequest $httpRequest)
    {
        $request = parent::match($httpRequest);
	//tu si ten jazyk vytiahnem a ulozim
        $this->params = $request->getParameters();
        return $request;
    }
...
    public function  filterOut($uri)
    {
        if (isset($this->params['lang'])) {
		//$this->articles je len prekladova tabulka
            if (isset($this->articles[$uri][$this->params['lang']])) {
                return $this->articles[$uri][$this->params['lang']];
            }
        }
        return $uri;
    }
Toto funguje, len generuje URL bez /en/, pokial som na anglickej
verzii. Samotny kod sa mi vsak nepaci a vyzera to skor ako iba ohackovanie,
avsak tak na mna posobi aj tento
navod :(
Pride mi to ako vcelku bezna zalezitost, ako to riesite vy? Diky moc!