first commit

This commit is contained in:
gestions-UO
2026-05-11 20:50:44 +02:00
parent f7ba09d405
commit 838bec205e
36 changed files with 2514 additions and 99 deletions

View File

@@ -0,0 +1,48 @@
"use client";
import React, { createContext, useContext, useState, useEffect } from "react";
import { es } from "@/lang/es";
import { ca } from "@/lang/ca";
import { en } from "@/lang/en";
type Language = "es" | "ca" | "en";
const dictionaries = { es, ca, en };
interface LanguageContextType {
locale: Language;
setLocale: (lang: Language) => void;
t: typeof es;
}
const LanguageContext = createContext<LanguageContextType | undefined>(undefined);
export const LanguageProvider = ({ children }: { children: React.ReactNode }) => {
const [locale, setLocaleState] = useState<Language>("es");
useEffect(() => {
const savedLang = localStorage.getItem("language") as Language;
if (savedLang && (savedLang === "es" || savedLang === "ca" || savedLang === "en")) {
setLocaleState(savedLang);
}
}, []);
const setLocale = (lang: Language) => {
setLocaleState(lang);
localStorage.setItem("language", lang);
};
const t = dictionaries[locale];
return (
<LanguageContext.Provider value={{ locale, setLocale, t }}>
{children}
</LanguageContext.Provider>
);
};
export const useLanguage = () => {
const context = useContext(LanguageContext);
if (!context) throw new Error("useLanguage debe usarse dentro de un LanguageProvider");
return context;
};