whatlang/scripts/
lang_mapping.rs1use super::Script;
2use crate::Lang;
3
4const LATIN_LANGS: [Lang; 36] = [
5 Lang::Spa,
6 Lang::Eng,
7 Lang::Por,
8 Lang::Ind,
9 Lang::Fra,
10 Lang::Deu,
11 Lang::Jav,
12 Lang::Vie,
13 Lang::Ita,
14 Lang::Tur,
15 Lang::Pol,
16 Lang::Ron,
17 Lang::Hrv,
18 Lang::Nld,
19 Lang::Uzb,
20 Lang::Hun,
21 Lang::Aze,
22 Lang::Ces,
23 Lang::Zul,
24 Lang::Swe,
25 Lang::Aka,
26 Lang::Sna,
27 Lang::Afr,
28 Lang::Fin,
29 Lang::Slk,
30 Lang::Tgl,
31 Lang::Tuk,
32 Lang::Dan,
33 Lang::Nob,
34 Lang::Cat,
35 Lang::Lit,
36 Lang::Slv,
37 Lang::Epo,
38 Lang::Lav,
39 Lang::Est,
40 Lang::Lat,
41];
42const CYRILLIC_LANGS: [Lang; 6] = [
43 Lang::Rus,
44 Lang::Ukr,
45 Lang::Srp,
46 Lang::Bel,
47 Lang::Bul,
48 Lang::Mkd,
49];
50const ARABIC_LANGS: [Lang; 3] = [Lang::Ara, Lang::Urd, Lang::Pes];
51const DEVANAGARI_LANGS: [Lang; 3] = [Lang::Hin, Lang::Mar, Lang::Nep];
52const HEBREW_LANGS: [Lang; 2] = [Lang::Heb, Lang::Yid];
53
54pub fn script_langs(script: Script) -> &'static [Lang] {
55 match script {
56 Script::Latin => &LATIN_LANGS,
57 Script::Cyrillic => &CYRILLIC_LANGS,
58 Script::Devanagari => &DEVANAGARI_LANGS,
59 Script::Hebrew => &HEBREW_LANGS,
60 Script::Arabic => &ARABIC_LANGS,
61 Script::Mandarin => &[Lang::Cmn],
62 Script::Bengali => &[Lang::Ben],
63 Script::Hangul => &[Lang::Kor],
64 Script::Georgian => &[Lang::Kat],
65 Script::Greek => &[Lang::Ell],
66 Script::Kannada => &[Lang::Kan],
67 Script::Tamil => &[Lang::Tam],
68 Script::Thai => &[Lang::Tha],
69 Script::Gujarati => &[Lang::Guj],
70 Script::Gurmukhi => &[Lang::Pan],
71 Script::Telugu => &[Lang::Tel],
72 Script::Malayalam => &[Lang::Mal],
73 Script::Oriya => &[Lang::Ori],
74 Script::Myanmar => &[Lang::Mya],
75 Script::Sinhala => &[Lang::Sin],
76 Script::Khmer => &[Lang::Khm],
77 Script::Ethiopic => &[Lang::Amh],
78 Script::Armenian => &[Lang::Hye],
79 Script::Katakana | Script::Hiragana => &[Lang::Jpn],
80 }
81}
82
83#[cfg(test)]
84mod tests {
85 use super::*;
86
87 #[test]
88 fn test_script_langs() {
89 assert_eq!(script_langs(Script::Hebrew), &[Lang::Heb, Lang::Yid])
90 }
91}