#[derive(Clone, Copy, PartialEq, Eq, Debug)]
pub enum Language {
En,
Tr,
}
impl Language {
pub fn detect() -> Self {
if let Ok(forced) = std::env::var("CONTEXTBAR_LANG") {
let f = forced.trim().to_ascii_lowercase();
if f.starts_with("tr") {
return Self::Tr;
}
if f.starts_with("en") {
return Self::En;
}
}
for key in ["LC_ALL", "LC_MESSAGES", "LANG"] {
if let Ok(value) = std::env::var(key) {
if value.to_ascii_lowercase().starts_with("tr") {
return Self::Tr;
}
if !value.is_empty() {
return Self::En;
}
}
}
Self::En
}
pub fn text(self, en: &'static str, tr: &'static str) -> &'static str {
match self {
Self::En => en,
Self::Tr => tr,
}
}
}