teo_runtime/admin/
language.rs1use serde::Serialize;
2use teo_result::{Result, Error};
3
4#[derive(Debug, Serialize, Clone)]
5pub enum Language {
6 EnUs,
7 EnUk,
8 De,
9 Fr,
10 Es,
11 Hi,
12 He,
13 Ja,
14 Ko,
15 ZhCn,
16 ZhTw,
17}
18
19impl Language {
20
21 pub fn from_str(name: &str) -> Result<Self> {
22 Ok(match name {
23 "enUs" => Self::EnUs,
24 "enUk" => Self::EnUk,
25 "de" => Self::De,
26 "fr" => Self::Fr,
27 "es" => Self::Es,
28 "hi" => Self::Hi,
29 "he" => Self::He,
30 "ja" => Self::Ja,
31 "ko" => Self::Ko,
32 "zhCn" => Self::ZhCn,
33 "zhTw" => Self::ZhTw,
34 _ => Err(Error::new("cannot convert this language code to language"))?
35 })
36 }
37
38 pub fn as_str(&self) -> &'static str {
39 match self {
40 Language::EnUs => "enUs",
41 Language::EnUk => "enUk",
42 Language::De => "de",
43 Language::Fr => "fr",
44 Language::Es => "es",
45 Language::Hi => "hi",
46 Language::He => "he",
47 Language::Ja => "ja",
48 Language::Ko => "ko",
49 Language::ZhCn => "zhCn",
50 Language::ZhTw => "zhTw",
51 }
52 }
53
54 pub fn display(&self) -> &'static str {
55 match self {
56 Language::EnUs => "English (United States)",
57 Language::EnUk => "English (United Kingdom)",
58 Language::De => "Deutsch",
59 Language::Fr => "Français",
60 Language::Es => "Español",
61 Language::Hi => "हिन्दी",
62 Language::He => "עברית",
63 Language::Ja => "日本語",
64 Language::Ko => "한국어",
65 Language::ZhCn => "中文(简体)",
66 Language::ZhTw => "中文(繁體)",
67 }
68 }
69}