import { writable, derived } from "svelte/store" import { invoke } from "@tauri-apps/api/core" // stores export const translations = writable>({}) export const currentLanguage = writable("ru") // simple helper function (not a store) export function translate(translations: Record, key: string, fallback?: string): string { return translations[key] || fallback || key } // load translations from backend export async function loadTranslations() { try { const [trans, lang] = await Promise.all([ invoke>("get_translations"), invoke("get_current_language") ]) translations.set(trans) currentLanguage.set(lang) } catch (err) { console.error("Failed to load translations:", err) } } // change language export async function setLanguage(lang: string) { try { const newTranslations = await invoke>("set_language", { lang }) translations.set(newTranslations) currentLanguage.set(lang) } catch (err) { console.error("Failed to set language:", err) } } export async function loadLanguage() { try { const lang = await invoke("db_read", { key: "language" }) if (lang) { currentLanguage.set(lang) } } catch (err) { console.error("Failed to load language:", err) } } export async function getSupportedLanguages(): Promise { try { return await invoke("get_supported_languages") } catch { return ["ru", "en", "ua"] } }