Co rozhoduje o výběru jazyka v kdyby/translation

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

Ahoj,

zkoušel jsem hledat v dokumentaci ale nikde jsem nenašel zmínku o tom, co určuje, který jazyk bude vybrán, když například Locale Resolvers ukazuje:

Homepage:default en

  1. LocaleParamResolver en
  2. AcceptHeaderResolver de
  3. DefaultLocale en

Je to tak, že to co převáží, se bere jako zvolený jazyk? (2× en, 1× de ⇒ en) nebo je to tak, že se bere 1 resolver který něco dokáže vyřešit? (v tomto případě LocaleParamResolver ⇒ en)

Chtěl bych takové chování, aby když přijde někdo kdo má nastavený v prohlížeči accept-language na němčinu, aby se mu aplikace přepnula do němčiny.

Nevíte jak na to?

iguana007
Člen | 970
+
+2
-

Kdyby/Translation jsem zatím nepoužil, tak se předem omlouvám za nepřesnosti…

Nevím, do které dokumentace ses díval, ale v té na Githubu je jasně napsáno, jak toto funguje – tj. testuje to postupně a podle toho co matchne první se vybere jazyk: https://github.com/…/en/index.md

There is also an interface IUserLocaleResolver and few default implementations, they try to figure out, what language does the visitor wanna use the website in. The first one looks in request parameters and searches for locale, that's why there is the persistent parameter and example route. If it fails, it tries to look at Accept-Language header, and if that fails, it fallbacks to default locale.

Pokud by si chtěl vlastní resolver, tak bych osobně postupoval cca takto: https://help.kdyby.org/question/?…

Vokrik
Člen | 15
+
0
-

Aaa.. super, díky moc. Koukal jsem totiž sekce Resolvers a tam jsem to nemohl najít. Asi budu muset napsat vlastní, protože potřebuji, aby když přijde uživatel na www.example.com/ tak aby se to podívalo nejdřív do accept-language a popřípadě ho to přesměrovalo na www.example.com/de, ale pokud už v session má nastaveno, že chce např. en, ikdyž posíla accept-language:de, tak aby mu to zobrazilo obsah v angličtině…

Každopádně ještě jednou dík za nasměrování