This library contains bindings to the Intl ECMAScript
Internationalization API. Including Collator
, DateTimeFormat
,
NumberFormat
and PluralRules
.
For environments that do not include the Internationalization API, you will need
to load a polyfill. Node.js < 4 and Safari < 10 are known to need
the polyfill. Some more recent browsers and environments support part of Intl
but lack support for PluralRules
- if you need this (and not the rest) you can
use just the intl-pluralrules polyfill.
First get a Locale
to use:
import Intl.Locale exposing (Locale, fromLanguageTag, en)
import Maybe exposing (withDefault)
appLocale : Locale
appLocale =
fromLanguageTag "pt-BR"
|> withDefault en
You may then use it to create a Collator
,
DateTimeFormat
, or NumberFormat
:
import Intl.Collator as Collator
import List exposing (sortWith)
localeCompare : String -> String -> Order
localeCompare =
Collator.fromLocale appLocale
|> Collator.compare
localeSort : List String -> List String
localeSort =
sortWith localeCompare
import Intl.DateTimeFormat as DateTimeFormat
formatDate : Date -> String
formatDate =
DateTimeFormat.fromLocale appLocale
|> DateTimeFormat.format
import Intl.NumberFormat as NumberFormat
formatNumber : number -> String
formatNumber =
NumberFormat.fromLocale appLocale
|> NumberFormat.format
All of the Intl objects can be configured with more detailed options using
fromOptions
. See the full docs for more details.