All Projects → vanwagonet → elm-intl

vanwagonet / elm-intl

Licence: other
Bindings to JavaScript Internationalization API

Programming Languages

elm
856 projects
javascript
184084 projects - #8 most used programming language

elm-intl Build Status

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.

Usage

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].