diff options
Diffstat (limited to 'src/main/scala/xyz/driver/core/messages.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/messages.scala | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/main/scala/xyz/driver/core/messages.scala b/src/main/scala/xyz/driver/core/messages.scala deleted file mode 100644 index 6b1bc7e..0000000 --- a/src/main/scala/xyz/driver/core/messages.scala +++ /dev/null @@ -1,58 +0,0 @@ -package xyz.driver.core - -import java.util.Locale - -import com.typesafe.config.{Config, ConfigException} -import com.typesafe.scalalogging.Logger - -/** - * Scala internationalization (i18n) support - */ -object messages { - - object Messages { - def messages(config: Config, log: Logger, locale: Locale = Locale.US): Messages = { - val map = config.getConfig(locale.getLanguage) - Messages(map, locale, log) - } - } - - final case class Messages(map: Config, locale: Locale, log: Logger) { - - /** - * Returns message for the key - * - * @param key key - * @return message - */ - def apply(key: String): String = { - try { - map.getString(key) - } catch { - case _: ConfigException => - log.error(s"Message with key '$key' not found for locale '${locale.getLanguage}'") - key - } - } - - /** - * Returns message for the key and formats that with parameters - * - * @example "Hello {0}!" with "Joe" will be "Hello Joe!" - * - * @param key key - * @param params params to be embedded - * @return formatted message - */ - def apply(key: String, params: Any*): String = { - - def format(formatString: String, params: Seq[Any]) = - params.zipWithIndex.foldLeft(formatString) { - case (res, (value, index)) => res.replace(s"{$index}", value.toString) - } - - val template = apply(key) - format(template, params) - } - } -} |