1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
use serde::{Deserialize, Serialize};

#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
pub enum Language {
    Af, Am, Ar, Hy, Az, Eu, Be, Bn, Bs, Bg, My, Ca, Zh, ZhCN, ZhHK, ZhTW,
    Hr, Cs, Da, Nl, En, EnAU, EnGB, Et, Fa, Fi, Fil, Fr, FrCA, Gl, Ka, De,
    El, Gu, Iw, Hi, Hu, Is, Id, It, Ja, Kn, Kk, Km, Ko, Ky, Lo, Lv, Lt, Mk,
    Ms, Ml, Mr, Mn, Ne, No, Pl, Pt, PtBR, PtPT, Pa, Ro, Ru, Sr, Si, Sk, Sl,
    Es, Es419, Sw, Sv, Ta, Te, Th, Tr, Uk, Ur, Uz, Vi, Zu,
    // Add other supported languages here
}

impl Language {
    pub fn as_str(&self) -> &'static str {
        match self {
            Language::Af => "af",
            Language::Am => "am",
            Language::Ar => "ar",
            Language::Hy => "hy",
            Language::Az => "az",
            Language::Eu => "eu",
            Language::Be => "be",
            Language::Bn => "bn",
            Language::Bs => "bs",
            Language::Bg => "bg",
            Language::My => "my",
            Language::Ca => "ca",
            Language::Zh => "zh",
            Language::ZhCN => "zh-CN",
            Language::ZhHK => "zh-HK",
            Language::ZhTW => "zh-TW",
            Language::Hr => "hr",
            Language::Cs => "cs",
            Language::Da => "da",
            Language::Nl => "nl",
            Language::En => "en",
            Language::EnAU => "en-AU",
            Language::EnGB => "en-GB",
            Language::Et => "et",
            Language::Fa => "fa",
            Language::Fi => "fi",
            Language::Fil => "fil",
            Language::Fr => "fr",
            Language::FrCA => "fr-CA",
            Language::Gl => "gl",
            Language::Ka => "ka",
            Language::De => "de",
            Language::El => "el",
            Language::Gu => "gu",
            Language::Iw => "iw",
            Language::Hi => "hi",
            Language::Hu => "hu",
            Language::Is => "is",
            Language::Id => "id",
            Language::It => "it",
            Language::Ja => "ja",
            Language::Kn => "kn",
            Language::Kk => "kk",
            Language::Km => "km",
            Language::Ko => "ko",
            Language::Ky => "ky",
            Language::Lo => "lo",
            Language::Lv => "lv",
            Language::Lt => "lt",
            Language::Mk => "mk",
            Language::Ms => "ms",
            Language::Ml => "ml",
            Language::Mr => "mr",
            Language::Mn => "mn",
            Language::Ne => "ne",
            Language::No => "no",
            Language::Pl => "pl",
            Language::Pt => "pt",
            Language::PtBR => "pt-BR",
            Language::PtPT => "pt-PT",
            Language::Pa => "pa",
            Language::Ro => "ro",
            Language::Ru => "ru",
            Language::Sr => "sr",
            Language::Si => "si",
            Language::Sk => "sk",
            Language::Sl => "sl",
            Language::Es => "es",
            Language::Es419 => "es-419",
            Language::Sw => "sw",
            Language::Sv => "sv",
            Language::Ta => "ta",
            Language::Te => "te",
            Language::Th => "th",
            Language::Tr => "tr",
            Language::Uk => "uk",
            Language::Ur => "ur",
            Language::Uz => "uz",
            Language::Vi => "vi",
            Language::Zu => "zu",
        }
    }
}