compile language DB to AnyRefMap, for runtime speed
This commit is contained in:
parent
889535574d
commit
ef6687ba50
|
@ -69,12 +69,15 @@ object JsDump {
|
|||
}
|
||||
}
|
||||
|
||||
def dbToObject(ref: I18nDb.Ref, lang: Lang): JsObject = JsObject {
|
||||
val emptyMessages: MessageMap = scala.collection.mutable.AnyRefMap.empty
|
||||
|
||||
def dbToObject(ref: I18nDb.Ref, lang: Lang): JsObject =
|
||||
I18nDb(ref).get(defaultLang) ?? { defaultMsgs =>
|
||||
val msgs = ~I18nDb(ref).get(lang)
|
||||
defaultMsgs.flatMap {
|
||||
case (k, v) => translatedJs(k, msgs get k getOrElse v, lang)
|
||||
JsObject {
|
||||
val msgs = I18nDb(ref).get(lang) | emptyMessages
|
||||
defaultMsgs.flatMap {
|
||||
case (k, v) => translatedJs(k, msgs get k getOrElse v, lang)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,12 @@ package object i18n extends PackageObject with WithPlay {
|
|||
|
||||
type Count = Int
|
||||
type MessageKey = String
|
||||
private[i18n]type Messages = Map[Lang, Map[MessageKey, Translation]]
|
||||
|
||||
/* of course we don't need/use the mutability
|
||||
* it's just that AnyRefMap is the fastest scala hashmap implementation
|
||||
*/
|
||||
private[i18n]type MessageMap = scala.collection.mutable.AnyRefMap[MessageKey, Translation]
|
||||
private[i18n]type Messages = Map[Lang, MessageMap]
|
||||
|
||||
private[i18n] def logger = lila.log("i18n")
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ import play.api.i18n.Lang
|
|||
// format: OFF
|
||||
private[i18n] object Registry {
|
||||
|
||||
def load = Map[Lang, Map[MessageKey, Translation]]($content)
|
||||
def load = Map[Lang, scala.collection.mutable.AnyRefMap[MessageKey, Translation]]($content)
|
||||
}
|
||||
"""
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ import I18nQuantity._
|
|||
// format: OFF
|
||||
private object `$locale` {
|
||||
|
||||
def load = Map[MessageKey, Translation](\n${content mkString ",\n"})
|
||||
def load = scala.collection.mutable.AnyRefMap[MessageKey, Translation](\n${content mkString ",\n"})
|
||||
}
|
||||
"""
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue