@@ -4,7 +4,13 @@ import play.api.i18n.Lang
44import play .api .mvc .RequestHeader
55import scalalib .model .{ Language , LangTag }
66
7- import lila .core .i18n .{ toLanguage , defaultLang , defaultLanguage , fixJavaLanguage }
7+ import lila .core .i18n .{
8+ toLanguage ,
9+ defaultLang ,
10+ defaultLanguage ,
11+ fixJavaLanguage ,
12+ playAcceptLanguages as acceptLanguages
13+ }
814
915object LangPicker extends lila.core.i18n.LangPicker :
1016
@@ -17,11 +23,11 @@ object LangPicker extends lila.core.i18n.LangPicker:
1723 .getOrElse(defaultLang)
1824
1925 def bestFromRequestHeaders (req : RequestHeader ): Option [Lang ] =
20- req. acceptLanguages.collectFirstSome(findCloser)
26+ acceptLanguages(req) .collectFirstSome(findCloser)
2127
2228 def allFromRequestHeaders (req : RequestHeader ): List [Lang ] = {
23- req. acceptLanguages.flatMap(findCloser) ++
24- req. acceptLanguages.flatMap(lang => ~ byCountry.get(lang.country))
29+ acceptLanguages(req) .flatMap(findCloser) ++
30+ acceptLanguages(req) .flatMap(lang => ~ byCountry.get(lang.country))
2531 }.distinct.toList
2632
2733 def byStr (str : String ): Option [Lang ] =
@@ -35,7 +41,7 @@ object LangPicker extends lila.core.i18n.LangPicker:
3541 langs.sortBy { mine.getOrElse(_, Int .MaxValue ) }
3642
3743 def preferedLanguages (req : RequestHeader , prefLang : Lang ): List [Language ] = {
38- toLanguage(prefLang) +: req. acceptLanguages.map(toLanguage)
44+ toLanguage(prefLang) +: acceptLanguages(req) .map(toLanguage)
3945 }.distinct.view.filter(LangList .popularLanguages.contains).toList
4046
4147 def pickBestOf (
@@ -46,7 +52,7 @@ object LangPicker extends lila.core.i18n.LangPicker:
4652 .map(toLanguage)
4753 .filter(candidates.contains)
4854 .orElse:
49- req. acceptLanguages
55+ acceptLanguages(req)
5056 .map(toLanguage)
5157 .collectFirst:
5258 case l if candidates.contains(l) => l
@@ -66,9 +72,10 @@ object LangPicker extends lila.core.i18n.LangPicker:
6672 else defaultByLanguage.get(to.language).orElse(lichessCodes.get(to.language))
6773
6874 def byHref (language : Language , req : RequestHeader ): ByHref =
75+ val accepted = acceptLanguages(req)
6976 Lang .get(language.value).flatMap(findCloser) match
7077 case Some (lang) if fixJavaLanguage(lang) == language =>
71- if req.acceptLanguages. isEmpty || req.acceptLanguages .exists(_.language == lang.language)
78+ if accepted. isEmpty || accepted .exists(_.language == lang.language)
7279 then ByHref .Found (lang)
7380 else ByHref .Refused (lang)
7481 case Some (lang) => ByHref .Redir (fixJavaLanguage(lang))
0 commit comments