sbt-locales
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
Usage
Include on project/plugins.sbt
addSbtPlugin("io.github.cquiroz" % "sbt-locales" % "1.0.0")
Configuration
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 thatroot
anden
are always included. If you include a locale for a country you'd need to also include its parent, e.g. to includefi-FI
you should also includefi
- 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
Example:
.enablePlugins(LocalesPlugin)
.settings(
localesFilter := LocalesFilter.Selection("en-US", "fi", "fi-FI"),
nsFilter := NumberingSystemFilter.Minimal,
currencyFilter := CurrencyFilter.Selection("EUR"),
supportISOCodes := true,
supportNumberFormats := true
)
Troubleshooting
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