Files
docspell/modules/webapp/src/main/elm/Data/Language.elm
2022-11-09 22:24:32 +01:00

208 lines
3.7 KiB
Elm

{-
Copyright 2020 Eike K. & Contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-}
module Data.Language exposing
( Language(..)
, all
, fromString
, toIso3
)
type Language
= German
| English
| French
| Italian
| Spanish
| Portuguese
| Czech
| Danish
| Finnish
| Norwegian
| Swedish
| Russian
| Romanian
| Dutch
| Latvian
| Japanese
| Hebrew
| Hungarian
| Lithuanian
| Polish
| Estonian
| Ukrainian
fromString : String -> Maybe Language
fromString str =
if str == "deu" || str == "de" || str == "german" then
Just German
else if str == "eng" || str == "en" || str == "english" then
Just English
else if str == "fra" || str == "fr" || str == "french" then
Just French
else if str == "ita" || str == "it" || str == "italian" then
Just Italian
else if str == "spa" || str == "es" || str == "spanish" then
Just Spanish
else if str == "por" || str == "pt" || str == "portuguese" then
Just Portuguese
else if str == "ces" || str == "cs" || str == "czech" then
Just Czech
else if str == "dan" || str == "da" || str == "danish" then
Just Danish
else if str == "nld" || str == "nd" || str == "dutch" then
Just Dutch
else if str == "fin" || str == "fi" || str == "finnish" then
Just Finnish
else if str == "nor" || str == "no" || str == "norwegian" then
Just Norwegian
else if str == "swe" || str == "sv" || str == "swedish" then
Just Swedish
else if str == "rus" || str == "ru" || str == "russian" then
Just Russian
else if str == "ron" || str == "ro" || str == "romanian" then
Just Romanian
else if str == "lav" || str == "lv" || str == "latvian" then
Just Latvian
else if str == "jpn" || str == "ja" || str == "japanese" then
Just Japanese
else if str == "heb" || str == "he" || str == "hebrew" then
Just Hebrew
else if str == "hun" || str == "hu" || str == "hungarian" then
Just Hungarian
else if str == "lit" || str == "lt" || str == "lithuanian" then
Just Lithuanian
else if str == "pol" || str == "pl" || str == "polish" then
Just Polish
else if str == "est" || str == "et" || str == "estonian" then
Just Estonian
else if str == "ukr" || str == "uk" || str == "ukrainian" then
Just Ukrainian
else
Nothing
toIso3 : Language -> String
toIso3 lang =
case lang of
German ->
"deu"
English ->
"eng"
French ->
"fra"
Italian ->
"ita"
Spanish ->
"spa"
Portuguese ->
"por"
Czech ->
"ces"
Danish ->
"dan"
Finnish ->
"fin"
Norwegian ->
"nor"
Swedish ->
"swe"
Russian ->
"rus"
Romanian ->
"ron"
Dutch ->
"nld"
Latvian ->
"lav"
Japanese ->
"jpn"
Hebrew ->
"heb"
Hungarian ->
"hun"
Lithuanian ->
"lit"
Polish ->
"pol"
Estonian ->
"est"
Ukrainian ->
"ukr"
all : List Language
all =
[ German
, English
, French
, Italian
, Spanish
, Portuguese
, Czech
, Dutch
, Danish
, Finnish
, Norwegian
, Swedish
, Russian
, Romanian
, Latvian
, Japanese
, Hebrew
, Hungarian
, Lithuanian
, Polish
, Estonian
, Ukrainian
]