use crate::tui::settings;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DocLang {
English,
Chinese,
}
impl DocLang {
pub fn doc_file_name(self) -> &'static str {
match self {
DocLang::English => "USAGE.md",
DocLang::Chinese => "USAGE-zh_CN.md",
}
}
pub fn cache_key(self) -> &'static str {
match self {
DocLang::English => "en",
DocLang::Chinese => "zh_CN",
}
}
pub fn label(self) -> &'static str {
self.cache_key()
}
}
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
}