forked from lichess-org/lila
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathI18hHelper.scala
31 lines (22 loc) · 1012 Bytes
/
I18hHelper.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package lila.app
package templating
import play.api.libs.json.JsObject
import play.api.i18n.Lang
import lila.app.ui.ScalatagsTemplate._
import lila.i18n.{ I18nKey, JsDump, LangList, MessageKey, TimeagoLocales, Translator }
import lila.user.UserContext
trait I18nHelper extends HasEnv with UserContext.ToLang {
def transKey(key: MessageKey, args: Seq[Any] = Nil)(implicit lang: Lang): Frag =
Translator.frag.literal(key, args, lang)
def i18nJsObject(keys: Seq[MessageKey])(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys, lang)
def i18nOptionJsObject(keys: Option[I18nKey]*)(implicit lang: Lang): JsObject =
JsDump.keysToObject(keys.collect { case Some(k) => k.key }, lang)
def timeagoLocaleScript(implicit lang: Lang): String = {
TimeagoLocales.js.get(lang.code) orElse
TimeagoLocales.js.get(lang.language) getOrElse
~TimeagoLocales.js.get("en")
}
def langName = LangList.nameByStr _
def shortLangName(str: String) = langName(str).takeWhile(','.!=)
}