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
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);
},
)
)
);
?>