Files
sag24-website/src/contexts/LanguageContext.jsx
striker abff3fa4cc Initial commit: Сисадмингрупп website
React + Vite + Tailwind, RU/EN, Hero/Services/About/Contact sections
2026-03-14 01:02:02 +03:00

38 lines
849 B
JavaScript

import React, { createContext, useContext, useState } from 'react'
import { ru, en } from '../translations/index.js'
const translations = { ru, en }
const LanguageContext = createContext(null)
export function LanguageProvider({ children }) {
const [lang, setLang] = useState(() => {
return localStorage.getItem('lang') || 'ru'
})
const toggle = () => {
const next = lang === 'ru' ? 'en' : 'ru'
setLang(next)
localStorage.setItem('lang', next)
}
const t = (key) => {
const keys = key.split('.')
let value = translations[lang]
for (const k of keys) {
value = value?.[k]
}
return value ?? key
}
return (
<LanguageContext.Provider value={{ lang, toggle, t }}>
{children}
</LanguageContext.Provider>
)
}
export function useLanguage() {
return useContext(LanguageContext)
}