Parse BCP 47 language tags.
parseBcp47 : String -> Maybe ( LanguageTag.Language.Language, LanguageTag.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
parseLanguageTag : String -> LanguageTag
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" ]