Kdyby/Translation reverse translation

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
AlesMenzel
Člen | 13
+
0
-

Ahoj,
potřeboval bych nějak dostat z přeloženého stringu opět konstatnu, např. z „Filter“ opět „menu.item.xyz“.

Důvod:
Mám router, který vezme id

<?php

{plink Front:Output:default 2}
?>

a id převede na text, který vytáhne z databáze, kde je uložený jako konstanta pro překlad (viz. „menu.item.filterX“, „menu.item.filterY“, atp.),

<?php

http://www.example.com/cs/vypis/menu.item.filter
?>

ale to není moc user friendly, takže to přeložím

<?php

http://www.example.com/cs/vypis/filtr
?>

Ok to je super, ale co když to chci převést zpět na id, tak mám přeložený string, který bez iterace nad celou tabulkou, překládáním a porovnáním nepřevedu zpět na id. Proto bych to potřeboval zpětně převést na překládaný string.

RouterFactory:

<?php

		$routeList = new RouteList;
        $routeList[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<filter>]', array(
                'module' => 'Front',
                'presenter' => array(
                    Route::VALUE => 'Output',
                    Route::FILTER_TABLE => array(
                        'vypis' => 'Output',
						...
                    ),
                ),
                'action' => 'default',
                'filter' => array(
                    Route::FILTER_IN => function ($url) {
                        return $this->filter->getIdFromFilter($url);
                    },
                    Route::FILTER_OUT => function ($id) {
                        return $this->filter->getFilterFromId($id);
                    },
                )
            )
        );
?>
bazo
Člen | 620
+
0
-

myslim, ze toto translator defaultne nevie
ale vies si vytiahnut vsetky preklady aj s klucami

z toho ti staci spravit si obrateny index a mozes vyhladavat podla prekladov