use crate::plot_schema::{EMBEDDED_EN, EMBEDDED_ZH_CN};
use crate::tui::settings;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DocLang {
English,
Chinese,
}
impl DocLang {
pub fn schema_file_name(self) -> &'static str {
match self {
DocLang::English => "PLOT-SCHEMA.json",
DocLang::Chinese => "PLOT-SCHEMA-zh_CN.json",
}
}
pub fn schema_source(self) -> &'static str {
match self {
DocLang::English => EMBEDDED_EN,
DocLang::Chinese => EMBEDDED_ZH_CN,
}
}
pub fn label(self) -> &'static str {
match self {
DocLang::English => "en",
DocLang::Chinese => "zh_CN",
}
}
}
pub fn language_from_name(name: &str) -> DocLang {
let name = name.trim().to_ascii_lowercase();
if name.starts_with("zh") {
DocLang::Chinese
} else {
DocLang::English
}
}
pub fn resolve_language() -> DocLang {
if let Some(name) = settings::env_language_override() {
return language_from_name(&name);
}
if let Some(name) = settings::language_override() {
return language_from_name(&name);
}
if let Some(locale) = sys_locale::get_locale() {
return language_from_name(&locale);
}
DocLang::English
}