teo_runtime/admin/
language.rs

1use 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}