Skip to content

karadzhov/scala-iso-language

Repository files navigation

scala-iso-language Continuous integration Maven Central

scala-iso-language is a minimalistic library compatible with Scala, Scala.js and Scala Native. It simplifies the representation of ISO 639 languages using Enumeratum and provides translations of language names into various languages.

SBT

To get started with SBT add the following to your build.sbt file:

Enum without translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-core" % "0.4.0"

Enum + Arabic translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-ar" % "0.4.0"

Enum + Bulgarian translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-bg" % "0.4.0"

Enum + Czech translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-cs" % "0.4.0"

Enum + German translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-de" % "0.4.0"

Enum + English translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-en" % "0.4.0"

Enum + Spanish translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-es" % "0.4.0"

Enum + French translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-fr" % "0.4.0"

Enum + Hindi translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-hi" % "0.4.0"

Enum + Italian translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-it" % "0.4.0"

Enum + Polish translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-pl" % "0.4.0"

Enum + Portuguese translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-pt" % "0.4.0"

Enum + Russian translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-ru" % "0.4.0"

Enum + Chinese translations

libraryDependencies += "com.karadzhov" %% "scala-iso-language-i18n-zh" % "0.4.0"

Sample

import com.karadzhov.iso.language.Language
import com.karadzhov.iso.language.i18n.LanguageNameDE

Language.values
// Vector(Language.Abkhazian, Language.Afar, Language.Afrikaans...)

Language.Chinese.entryName
// "zh"

Language.withNameOption("zh")
// Some(Language.Chinese)

Language.withNameOption("ac")
// None

object GermanLanguagePack extends LanguageNameDE

GermanLanguagePack.languageName(Language.Samoan)
// "Samoanisch"