EngageSoftware/elm-dnn-localization/1.0.2

NOTE: the latest version is 1.1.0

Engage.Localization

Helpers for working with DNN Localization for Engage Software team.

Types

type alias Localization =
Dict String String

Dict for storing Localization text

Decoders

decoder : Decoder Localization

Decode from JSON values that contains an array of object with key and value string properties to a Localization

Localization functions

localizeString : String -> { a | localization : Localization } -> String

Localize a key using the given Localization dict. If the key is not found, this function will return the key value wrapped in [ ].

myLocalization = Dict.fromList [ ("FirstName.Text", "First Name: ") ]


localizeString "FirstName.Text" { localization = myLocalization } == "First Name:"
localizeString "LastName.Text" { localization = myLocalization } == "[LastName.Text]"
localizeStringWithDefault : String -> String -> { a | localization : Localization } -> String

Try to localize a key using the given Localization dict, and if the key is not found, return the given default value.

myLocalization = Dict.fromList [ ("FirstName.Text", "First Name: ") ]


localizeStringWithDefault "First Name" "FirstName.Text" { localization = myLocalization } == "First Name:"
localizeStringWithDefault "Last Name" "LastName.Text" { localization = myLocalization } == "Last Name"
localizeText : String -> { a | localization : Localization } -> Html msg

Similar to localizeText, but the wrapped the text in Html.text

myLocalization = Dict.fromList [ ("FirstName.Text", "First Name: ") ]


localizeText "FirstName.Text" { localization = myLocalization } == Html.text "First Name:"
localizeText "LastName.Text" { localization = myLocalization } == Html.text "[LastName.Text]"
localizeTextWithDefault : String -> String -> { a | localization : Localization } -> Html msg

Similar to localizeTextWithDefault, but the wrapped the text in Html.text

myLocalization = Dict.fromList [ ("FirstName.Text", "First Name: ") ]


localizeTextWithDefault "First Name" "FirstName.Text" { localization = myLocalization } == Html.text "First Name:"
localizeTextWithDefault "Last Name" "LastName.Text" { localization = myLocalization } == Html.text "Last Name"