mirror of https://codeberg.org/topola/topola.git
26 lines
548 B
Rust
26 lines
548 B
Rust
use fluent_templates::{static_loader, Loader};
|
|
use serde::{Deserialize, Serialize};
|
|
use unic_langid::LanguageIdentifier;
|
|
|
|
static_loader! {
|
|
static LOCALES = {
|
|
locales: "./locales",
|
|
fallback_language: "en-US",
|
|
};
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct Translator {
|
|
langid: LanguageIdentifier,
|
|
}
|
|
|
|
impl Translator {
|
|
pub fn new(langid: LanguageIdentifier) -> Self {
|
|
Self { langid }
|
|
}
|
|
|
|
pub fn text(&self, fluent_id: &str) -> String {
|
|
LOCALES.lookup(&self.langid, fluent_id)
|
|
}
|
|
}
|