aboutsummaryrefslogtreecommitdiff
path: root/ui/src/locale.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/locale.rs')
-rw-r--r--ui/src/locale.rs43
1 files changed, 6 insertions, 37 deletions
diff --git a/ui/src/locale.rs b/ui/src/locale.rs
index b3bf3b6..a2fdce0 100644
--- a/ui/src/locale.rs
+++ b/ui/src/locale.rs
@@ -3,21 +3,15 @@
which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
Copyright (C) 2026 metamuffin <metamuffin.org>
*/
-use markup::{Render, RenderAttributeValue};
-use std::{borrow::Cow, collections::HashMap, sync::LazyLock};
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub enum Language {
- English,
- German,
-}
+use jellycommon::*;
+use std::{collections::HashMap, sync::LazyLock};
static LANG_TABLES: LazyLock<HashMap<Language, HashMap<&'static str, &'static str>>> =
LazyLock::new(|| {
let mut k = HashMap::new();
for (lang, source) in [
- (Language::English, include_str!("../../locale/en.ini")),
- (Language::German, include_str!("../../locale/de.ini")),
+ (LANG_ENG.0, include_str!("../../locale/en.ini")),
+ (LANG_DEU.0, include_str!("../../locale/de.ini")),
] {
// TODO fallback to english
let tr_map = source
@@ -32,36 +26,15 @@ static LANG_TABLES: LazyLock<HashMap<Language, HashMap<&'static str, &'static st
k
});
-pub fn tr(lang: Language, key: &str) -> Cow<'static, str> {
+pub fn tr(lang: Language, key: &str) -> &'static str {
let tr_map = LANG_TABLES.get(&lang).unwrap();
- match tr_map.get(key) {
- Some(value) => Cow::Borrowed(value),
- None => Cow::Owned(format!("TR[{key}]")),
- }
+ tr_map.get(key).copied().unwrap_or("MISSING TRANSLATION")
}
pub fn get_translation_table(lang: &Language) -> &'static HashMap<&'static str, &'static str> {
LANG_TABLES.get(lang).unwrap()
}
-pub struct TrString<'a>(Cow<'a, str>);
-impl Render for TrString<'_> {
- fn render(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result {
- self.0.render(writer)
- }
-}
-impl RenderAttributeValue for TrString<'_> {
- fn is_none(&self) -> bool {
- false
- }
- fn is_true(&self) -> bool {
- false
- }
- fn is_false(&self) -> bool {
- false
- }
-}
-
pub fn escape(str: &str) -> String {
let mut o = String::with_capacity(str.len());
let mut last = 0;
@@ -81,7 +54,3 @@ pub fn escape(str: &str) -> String {
o += &str[last..];
o
}
-
-pub fn trs<'a>(lang: &Language, key: &str) -> TrString<'a> {
- TrString(tr(*lang, key))
-}