Spaces:
Running
Running
File size: 795 Bytes
994e42f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import { createContext, useContext, useState } from 'react';
import translations from './lang/translations';
const LangContext = createContext(null);
export function LanguageProvider({ children }) {
const [lang, setLangState] = useState(() => {
return localStorage.getItem('baif_lang') || 'en';
});
const setLang = (code) => {
setLangState(code);
localStorage.setItem('baif_lang', code);
};
const t = (key) => {
return translations[lang]?.[key] ?? translations.en?.[key] ?? key;
};
return (
<LangContext.Provider value={{ lang, setLang, t }}>
{children}
</LangContext.Provider>
);
}
export function useLang() {
const ctx = useContext(LangContext);
if (!ctx) throw new Error('useLang must be used within LanguageProvider');
return ctx;
}
|