import i18n from "i18next"; import { initReactI18next } from "react-i18next"; import en from "./locales/en.json"; import de from "./locales/de.json"; export const SUPPORTED_LANGUAGES = [ { code: "en", label: "English" }, { code: "de", label: "Deutsch" }, ] as const; export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]["code"]; const STORAGE_KEY = "toolr-language"; export function getStoredLanguage(): LanguageCode { if (typeof window === "undefined") return "en"; const stored = window.localStorage.getItem(STORAGE_KEY); if (stored === "en" || stored === "de") return stored; const nav = window.navigator.language?.toLowerCase() ?? ""; return nav.startsWith("de") ? "de" : "en"; } export function setStoredLanguage(lang: LanguageCode) { window.localStorage.setItem(STORAGE_KEY, lang); } void i18n.use(initReactI18next).init({ resources: { en: { translation: en }, de: { translation: de }, }, lng: getStoredLanguage(), fallbackLng: "en", interpolation: { escapeValue: false }, }); export default i18n;