Get user language from GLib

This commit is contained in:
Elias Projahn 2024-03-24 16:16:53 +01:00
parent 220821a0e0
commit 3c8f5b8c31
5 changed files with 24 additions and 4 deletions

View file

@ -17,6 +17,8 @@ use diesel::{
use diesel_migrations::{EmbeddedMigrations, MigrationHarness};
use serde::{Deserialize, Serialize};
use crate::util;
// This makes the SQL migration scripts accessible from the code.
const MIGRATIONS: EmbeddedMigrations = diesel_migrations::embed_migrations!();
@ -48,10 +50,7 @@ impl TranslatedString {
/// generic translation exists (which is a bug in the data), an empty string is
/// returned and a warning is logged.
pub fn get(&self) -> &str {
// TODO: Get language from locale.
let lang = "generic";
match self.0.get(lang) {
match self.0.get(&*util::LANG) {
Some(s) => s,
None => match self.0.get("generic") {
Some(s) => s,

View file

@ -13,6 +13,7 @@ mod recording_tile;
mod search_entry;
mod search_tag;
mod tag_tile;
mod util;
mod welcome_page;
mod window;

18
src/util.rs Normal file
View file

@ -0,0 +1,18 @@
use gtk::glib;
use lazy_static::lazy_static;
lazy_static! {
/// The user's language code.
pub static ref LANG: String = {
let lang = match glib::language_names().first() {
Some(language_name) => match language_name.split('_').next() {
Some(lang) => lang.to_string(),
None => "generic".to_string(),
},
None => "generic".to_string(),
};
log::info!("Intialized user language to '{lang}'.");
lang
};
}