use serde::{Deserialize, Serialize};
use std::fmt::{Display, Formatter};
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum Language {
Afrikaans,
Albanian,
Amharic,
Arabic,
Armenian,
Asturian,
Basque,
Belarusian,
Bengali,
Bosnian,
Breton,
Bulgarian,
Catalan,
Chinese,
Coptic,
Croatian,
Czech,
Danish,
Divehi,
Dutch,
#[default]
English,
Esperanto,
Estonian,
Finnish,
French,
Friulian,
Gaelic,
Galician,
Georgian,
German,
Greek,
Hebrew,
Hindi,
Hungarian,
Icelandic,
Interlingua,
Italian,
Japanese,
Kannada,
Khmer,
Korean,
Kurdish,
Lao,
Latin,
Latvian,
Lithuanian,
Macedonian,
Malay,
Malayalam,
Marathi,
Mongolian,
Nko,
Norwegian,
Occitan,
Odia,
Persian,
Piedmontese,
Polish,
Portuguese,
Punjabi,
Romanian,
Romansh,
Russian,
Sami,
Sanskrit,
Serbian,
Slovak,
Slovenian,
Sorbian,
Spanish,
Swedish,
Syriac,
Tamil,
Telugu,
Thai,
Tibetan,
Turkish,
Turkmen,
Ukrainian,
Urdu,
Uyghur,
Vietnamese,
Welsh,
}
impl Display for Language {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
let s = match self {
Self::Afrikaans => "afrikaans",
Self::Albanian => "albanian",
Self::Amharic => "amharic",
Self::Arabic => "arabic",
Self::Armenian => "armenian",
Self::Asturian => "asturian",
Self::Basque => "basque",
Self::Belarusian => "belarusian",
Self::Bengali => "bengali",
Self::Bosnian => "bosnian",
Self::Breton => "breton",
Self::Bulgarian => "bulgarian",
Self::Catalan => "catalan",
Self::Chinese => "chinese",
Self::Coptic => "coptic",
Self::Croatian => "croatian",
Self::Czech => "czech",
Self::Danish => "danish",
Self::Divehi => "divehi",
Self::Dutch => "dutch",
Self::English => "english",
Self::Esperanto => "esperanto",
Self::Estonian => "estonian",
Self::Finnish => "finnish",
Self::French => "french",
Self::Friulian => "friulian",
Self::Gaelic => "gaelic",
Self::Galician => "galician",
Self::Georgian => "georgian",
Self::German => "german",
Self::Greek => "greek",
Self::Hebrew => "hebrew",
Self::Hindi => "hindi",
Self::Hungarian => "hungarian",
Self::Icelandic => "icelandic",
Self::Interlingua => "interlingua",
Self::Italian => "italian",
Self::Japanese => "japanese",
Self::Kannada => "kannada",
Self::Khmer => "khmer",
Self::Korean => "korean",
Self::Kurdish => "kurdish",
Self::Lao => "lao",
Self::Latin => "latin",
Self::Latvian => "latvian",
Self::Lithuanian => "lithuanian",
Self::Macedonian => "macedonian",
Self::Malay => "malay",
Self::Malayalam => "malayalam",
Self::Marathi => "marathi",
Self::Mongolian => "mongolian",
Self::Nko => "nko",
Self::Norwegian => "norwegian",
Self::Occitan => "occitan",
Self::Odia => "odia",
Self::Persian => "persian",
Self::Piedmontese => "piedmontese",
Self::Polish => "polish",
Self::Portuguese => "portuguese",
Self::Punjabi => "punjabi",
Self::Romanian => "romanian",
Self::Romansh => "romansh",
Self::Russian => "russian",
Self::Sami => "sami",
Self::Sanskrit => "sanskrit",
Self::Serbian => "serbian",
Self::Slovak => "slovak",
Self::Slovenian => "slovenian",
Self::Sorbian => "sorbian",
Self::Spanish => "spanish",
Self::Swedish => "swedish",
Self::Syriac => "syriac",
Self::Tamil => "tamil",
Self::Telugu => "telugu",
Self::Thai => "thai",
Self::Tibetan => "tibetan",
Self::Turkish => "turkish",
Self::Turkmen => "turkmen",
Self::Ukrainian => "ukrainian",
Self::Urdu => "urdu",
Self::Uyghur => "uyghur",
Self::Vietnamese => "vietnamese",
Self::Welsh => "welsh",
};
write!(f, "{s}")
}
}