From 713162ca3716959c098000ebc9a79c75f3742a3d Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Mon, 27 Oct 2025 23:17:29 +0800 Subject: [PATCH] perf(i18n): change TRANSLATIONS type to use Box for better memory management This reduce memory usage from 72 to 48 --- src-tauri/src/utils/i18n.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/utils/i18n.rs b/src-tauri/src/utils/i18n.rs index 8d2a03e62..e7a52caae 100644 --- a/src-tauri/src/utils/i18n.rs +++ b/src-tauri/src/utils/i18n.rs @@ -44,10 +44,10 @@ pub async fn current_language() -> String { .unwrap_or_else(get_system_language) } -static TRANSLATIONS: Lazy> = Lazy::new(|| { +static TRANSLATIONS: Lazy)>> = Lazy::new(|| { let lang = get_system_language(); let json = load_lang_file(&lang).unwrap_or_else(|| Value::Object(Default::default())); - RwLock::new((lang, json)) + RwLock::new((lang, Box::new(json))) }); fn load_lang_file(lang: &str) -> Option { @@ -81,7 +81,7 @@ pub async fn t(key: &str) -> String { if let Some(new_json) = load_lang_file(¤t_lang) && let Ok(mut cache) = TRANSLATIONS.write() { - *cache = (current_lang.clone(), new_json); + *cache = (current_lang.clone(), Box::new(new_json)); if let Some(text) = cache.1.get(key).and_then(|val| val.as_str()) { return text.into(); @@ -92,7 +92,7 @@ pub async fn t(key: &str) -> String { && let Some(default_json) = load_lang_file(DEFAULT_LANGUAGE) && let Ok(mut cache) = TRANSLATIONS.write() { - *cache = (DEFAULT_LANGUAGE.into(), default_json); + *cache = (DEFAULT_LANGUAGE.into(), Box::new(default_json)); if let Some(text) = cache.1.get(key).and_then(|val| val.as_str()) { return text.into();