Initial Release
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
|
||||
import React, { createContext, useContext, useState, ReactNode } from "react";
|
||||
import { translations, Language, TranslationKey } from "@/translations";
|
||||
|
||||
type LanguageContextType = {
|
||||
language: Language;
|
||||
setLanguage: (language: Language) => void;
|
||||
t: (key: string) => string;
|
||||
};
|
||||
|
||||
const LanguageContext = createContext<LanguageContextType>({
|
||||
language: "en",
|
||||
setLanguage: () => {},
|
||||
t: () => "",
|
||||
});
|
||||
|
||||
export const useLanguage = () => useContext(LanguageContext);
|
||||
|
||||
export const LanguageProvider = ({ children }: { children: ReactNode }) => {
|
||||
const [language, setLanguage] = useState<Language>("en");
|
||||
|
||||
const t = (key: string) => {
|
||||
return translations[language][key as TranslationKey] || key;
|
||||
};
|
||||
|
||||
return (
|
||||
<LanguageContext.Provider value={{ language, setLanguage, t }}>
|
||||
{children}
|
||||
</LanguageContext.Provider>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user