Initial commit from remix

This commit is contained in:
gpt-engineer-app[bot]
2025-09-25 16:01:00 +00:00
commit 5ddc52658d
149 changed files with 32798 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import React, { createContext, useContext, useState, useEffect } from 'react';
import { translations } from '@/i18n/translations';
type Language = 'es' | 'en' | 'fr';
type TranslationKey = keyof typeof translations.es;
interface LanguageContextType {
language: Language;
setLanguage: (lang: Language) => void;
t: (key: TranslationKey) => string;
}
const LanguageContext = createContext<LanguageContextType | undefined>(undefined);
export const LanguageProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const [language, setLanguageState] = useState<Language>(() => {
const saved = localStorage.getItem('karibeo-language');
return (saved as Language) || 'es';
});
const setLanguage = (lang: Language) => {
setLanguageState(lang);
localStorage.setItem('karibeo-language', lang);
};
const t = (key: TranslationKey): string => {
return translations[language][key] || translations.es[key] || key;
};
useEffect(() => {
// Update document language
document.documentElement.lang = language;
}, [language]);
return (
<LanguageContext.Provider value={{ language, setLanguage, t }}>
{children}
</LanguageContext.Provider>
);
};
export const useLanguage = () => {
const context = useContext(LanguageContext);
if (context === undefined) {
throw new Error('useLanguage must be used within a LanguageProvider');
}
return context;
};