scala
libraryDependencies += "com.github.tototoshi" %% "scala-yaml" % "1.3.0"
yaml
en:
greeting: "Hello"
goodbye: "Goodbye"
zh:
scala
import java.io.File
import com.github.tototoshi.csv.CSVReader
import net.jcazevedo.moultingyaml._
object I18n {
private val translationsFilePath = "translations.yaml"
private val translations = YAMLParser.load(new File(translationsFilePath)).convertTo[Translations]
def t(key: String, lang: String): String = {
translations.translations.getOrElse(lang, Map.empty).getOrElse(key, key)
}
case class Translations(translations: Map[String, Map[String, String]])
object TranslationsProtocol extends DefaultYamlProtocol {
implicit val translationsFormat: YamlFormat[Translations] = yamlFormat1(Translations)
}
}
scala
import I18n._
val greeting = t("greeting", "en")
val goodbye = t("goodbye", "zh")