fix i18n keysToObject

pull/6024/head
Thibault Duplessis 2020-02-11 16:48:53 -06:00
parent c95e40e979
commit dd90d8b365
5 changed files with 9 additions and 12 deletions

View File

@ -40,12 +40,10 @@ final class Dasher(env: Env) extends LilaController(env) {
private def translations(implicit ctx: Context) =
lila.i18n.JsDump.keysToObject(
if (ctx.isAnon) translationsAnon else translationsAuth,
lila.i18n.I18nDb.Site,
ctx.lang
) ++ lila.i18n.JsDump.keysToObject(
// the language settings should never be in a totally foreign language
List(trans.language),
lila.i18n.I18nDb.Site,
if (I18nLangPicker.allFromRequestHeaders(ctx.req).has(ctx.lang)) ctx.lang
else I18nLangPicker.bestFromRequestHeaders(ctx.req) | enLang
)

View File

@ -5,7 +5,7 @@ import play.api.libs.json.JsObject
import play.api.i18n.Lang
import lila.app.ui.ScalatagsTemplate._
import lila.i18n.{ I18nDb, I18nKey, JsDump, LangList, TimeagoLocales, Translator }
import lila.i18n.{ I18nDb, JsDump, LangList, TimeagoLocales, Translated, Translator }
import lila.user.UserContext
trait I18nHelper extends HasEnv with UserContext.ToLang {
@ -13,11 +13,11 @@ trait I18nHelper extends HasEnv with UserContext.ToLang {
def transKey(key: String, db: I18nDb.Ref, args: Seq[Any] = Nil)(implicit lang: Lang): Frag =
Translator.frag.literal(key, db, args, lang)
def i18nJsObject(keys: Seq[I18nKey])(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys, I18nDb.Site, lang)
def i18nJsObject(keys: Seq[Translated])(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys, lang)
def i18nOptionJsObject(keys: Option[I18nKey]*)(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys.flatten, I18nDb.Site, lang)
def i18nOptionJsObject(keys: Option[Translated]*)(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys.flatten, lang)
def i18nFullDbJsObject(db: I18nDb.Ref)(implicit lang: Lang): JsObject =
JsDump.dbToObject(db, lang)

View File

@ -3,7 +3,7 @@ package views.html.board
import play.api.i18n.Lang
import lila.app.templating.Environment._
import lila.i18n.{ I18nKey, I18nKeys => trans }
import lila.i18n.{ Translated, I18nKeys => trans }
object userAnalysisI18n {
@ -24,7 +24,7 @@ object userAnalysisI18n {
}
)
private val baseTranslations: Vector[I18nKey] = Vector(
private val baseTranslations: Vector[Translated] = Vector(
trans.analysis,
trans.flipBoard,
trans.backToGame,

View File

@ -90,7 +90,6 @@ final class JsonView(
trans.viewInFullSize,
trans.cancel
),
lila.i18n.I18nDb.Site,
lang
)
}

View File

@ -73,9 +73,9 @@ object JsDump {
}
}
def keysToObject(keys: Seq[I18nKey], db: I18nDb.Ref, lang: Lang): JsObject = JsObject {
def keysToObject(keys: Seq[Translated], lang: Lang): JsObject = JsObject {
keys.flatMap { k =>
Translator.findTranslation(k.key, db, lang).fold(Nil: JsTrans) { translatedJs(k.key, _) }
Translator.findTranslation(k.key, k.db, lang).fold[JsTrans](Nil) { translatedJs(k.key, _) }
}
}