feat: updated get_default_lang()

Should fix default launcher language selection
This commit is contained in:
Observer KRypt0n_ 2023-06-08 16:32:41 +02:00
parent bbe5d180f0
commit 2d0e486d40
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
2 changed files with 11 additions and 3 deletions

View file

@ -51,12 +51,19 @@ pub fn get_lang() -> LanguageIdentifier {
/// - `LC_MESSAGES`
/// - `LANG`
pub fn get_default_lang() -> LanguageIdentifier {
let lang = std::env::var("LC_ALL")
let current = std::env::var("LC_ALL")
.unwrap_or_else(|_| std::env::var("LC_MESSAGES")
.unwrap_or_else(|_| std::env::var("LANG")
.unwrap_or_else(|_| String::from("en_US.UTF-8"))));
.unwrap_or_else(|_| String::from("en_us"))))
.to_ascii_lowercase();
lang.parse().unwrap_or_else(|_| langid!("en-us"))
for lang in SUPPORTED_LANGUAGES {
if current.starts_with(lang.language.as_str()) {
return lang.clone();
}
}
get_lang()
}
pub fn format_lang(lang: &LanguageIdentifier) -> String {

View file

@ -72,6 +72,7 @@ fn main() {
std::fs::write(FIRST_RUN_FILE.as_path(), "").expect("Failed to create .first-run file");
// Set initial launcher language based on system language
// CONFIG is initialized lazily so it will contain following changes as well
let mut config = Config::get().expect("Failed to get config");
config.launcher.language = i18n::format_lang(&i18n::get_default_lang());