mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
208 lines
3.7 KiB
Elm
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
|
|
]
|