From 46d64c04b5ef7d323cbba7d7375e48da59789ea7 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 21 Feb 2017 17:55:54 -0800 Subject: Allow Messages to file format to use nested dict's --- src/main/scala/xyz/driver/core/messages.scala | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/main/scala/xyz/driver/core') diff --git a/src/main/scala/xyz/driver/core/messages.scala b/src/main/scala/xyz/driver/core/messages.scala index 94d9889..b5ae704 100644 --- a/src/main/scala/xyz/driver/core/messages.scala +++ b/src/main/scala/xyz/driver/core/messages.scala @@ -2,11 +2,9 @@ package xyz.driver.core import java.util.Locale -import com.typesafe.config.Config +import com.typesafe.config.{Config, ConfigException} import xyz.driver.core.logging.Logger -import scala.collection.JavaConverters._ - /** * Scala internationalization (i18n) support */ @@ -14,12 +12,12 @@ object messages { object Messages { def messages(config: Config, log: Logger, locale: Locale = Locale.US): Messages = { - val map = config.getConfig(locale.getLanguage).root().unwrapped().asScala.mapValues(_.toString).toMap + val map = config.getConfig(locale.getLanguage) Messages(map, locale, log) } } - final case class Messages(map: Map[String, String], locale: Locale, log: Logger) { + final case class Messages(map: Config, locale: Locale, log: Logger) { /** * Returns message for the key @@ -28,9 +26,10 @@ object messages { * @return message */ def apply(key: String): String = { - map.get(key) match { - case Some(message) => message - case None => + try { + map.getString(key) + } catch { + case _: ConfigException => log.error(s"Message with key '$key' not found for locale '${locale.getLanguage}'") key } -- cgit v1.2.3