detectLanguage() nemusí vždy vrátit jazyk

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

Nevím zda-li je to chyba, či vlastnost. Ale právě jsem zjistil, že google bot a jiné žádný jazyk neuvádějí. Tedy použití této metody je vždy potřeba ošetřit i případ prázdného výsledku.

A. bylo by žádoucí ošetření přidat přímo do funkce?

B. pokud ne, mělo by se to zmíňit v dokumentaci

David Grudl
Nette Core | 7823
+
0
-

Spíš do dokumentace, nenapadá mě, jak by to funkce ošetřovala.

Patrik Votoček
Člen | 2221
+
0
-

píšu si poznámku… :-)

Jan Tvrdík
Nette guru | 2595
+
0
-

Teoreticky by metoda Nette\Web\HttpRequest::detectLanguage mohla brát druhý parametr $defaultLang = NULL, který by se použil v případě, že hlavička Accept-language neexistuje vůbec nebo neobsahuje jediný podporovaný jazyk.

paranoiq
Člen | 392
+
0
-

ad $defaultLang = NULL: a když nebude uveden?

pokud jde o to, aby se vždy vybral nějaký platný jazyk (blbuvzdornost), musel by být tento parametr povinný. jinak si to musí ošetřovat programátor. otázka je, jestli detekování z prohlížeče je posledním krokem při zjišťování jazkyka (asi ano)

já detekuji jazyk:

  1. session
  2. cookies
  3. detectLanguage()
  4. použiju defaultní
David Grudl
Nette Core | 7823
+
0
-

Přesně tak, jazyk taky detekuju složitějším způsobem a ve více krocích, tudíž nemá moc smysl učit low-level funkci HttpRequest::detectLanguage něco nad její rámec.