dillonkearns/elm-bcp47-language-tag/2.0.0

LanguageTag.Parser

Parse BCP 47 language tags.

parseBcp47 : String -> Maybe ( Language, Options )

Parse a BCP47 language tag. Returns Nothing if the input is not valid.

import LanguageTag
import LanguageTag.Language as Language
import LanguageTag.Region as Region


empty : LanguageTag.Options
empty = LanguageTag.emptySubtags


parseBcp47 "en-us"
--> Just (Language.en, { empty | region = Just Region.us })


parseBcp47 "completely-invalid-tag"
--> Nothing

This will attempt to parse the tag as a BCP47 tag. If it fails, it will construct a LanguageTag using custom, with no validation.

import LanguageTag


parseLanguageTag "en-US" |> LanguageTag.toSegments
--> [ "en", "US" ]


parseLanguageTag "completely-invalid-tag" |> LanguageTag.toSegments
--> [ "completely", "invalid", "tag" ]