Nefungujicí locale resolvers
- crassus
- Backer | 78
Ahoj,
posílám v hlavičce „Accept-Language“ hodnotu „en“ v requestu na domain.cz/customer.
Rád bych docílil přesměrování na domain.cz/customer/en, místo toho ale pořád končím na domain.cz/customer/cs.
Jak je to možné když mám povolený jenom AcceptHeaderResolver, který ještě k tomu správně vybral jazyk en?
RouterFactory.php
$router[] = new Route(CUSTOMER_ID . '/[!<locale=cs>/]', [
'presenter' => 'Front',
'action' => 'default',
'locale' => [
Route::FILTER_TABLE => [
"cs" => "cs",
"en" => "en"
]
]
]);
Asi bude chyba v routeru. Jak mu mám říct, aby se řídil tím co vrací locale resolution? Používám translator: https://github.com/…/Translation
Děkuji moc všem za radu :)
Editoval crassus (4. 11. 2018 19:26)
- crassus
- Backer | 78
MajklNajt napsal(a):
ahoj, podľa mňa AcceptHeaderResolver nemá nič spoločné s routami, presmerovanie bude teda zrejme nutné vyriešiť až na úrovni presenteru
Ahoj,
děkuji moc za radu. Přesměrování jsem nakonec vyřešil na úrovni
presenteru takto:
public function startup()
{
parent::startup();
if(is_null($this->locale))
{
$locale = $this->acceptHeaderResolver->resolve($this->translator) ?? 'en';
$this->redirect('this', ['locale' => $locale]);
}
}