cquiroz / sbt-locales

Plugin to produce locales dbs




An sbt plugin that can create custom locales databases to be used with scala-java-locales and scala-java-time

The db is build out of the cldr database definition:


The database is fairly large which produced very big files that may not be needed for your application, instead you can build a customized version containing just the data you need, e.g. just date formats for english and spanish


Include on project/plugins.sbt

addSbtPlugin("io.github.cquiroz" % "sbt-locales" % "1.0.0")


Most applications just need a few locales and may need for example only dates. The code generated will thus include only the minimal data

  • cldrVersion: Default is latest. It is possible to specify the CLDR version.
  • localesFilter: Default includes english. You can add locales by tag, e.g. en-US, fi, es-CL. Note that root and en are always included. If you include a locale for a country you'd need to also include its parent, e.g. to include fi-FI you should also include fi
  • currencyFilter: Default none. If you need currencies include them on this list
  • nsFilter: Default latn. List of numbering systems, latn is always included
  • calendarFilter: Default gregorian. List of calendars, gregorian is always included
  • supportDateTimeFormats: Default true. Whether to include date time formats
  • supportNumberFormats: Default false. Whether to include number formats
  • supportISOCodes: Default false. ISO codes list will be generated accordingly


      localesFilter := LocalesFilter.Selection("en-US", "fi", "fi-FI"),
      nsFilter := NumberingSystemFilter.Minimal,
      currencyFilter := CurrencyFilter.Selection("EUR"),
      supportISOCodes := true,
      supportNumberFormats := true


Note that the plugin doesn't verify consistency, if e.g. your locale requires arabic numbers and you don't include the arabic numbering system you may get compilation errors


See scalajs-locales-demo