| 12345678910111213141516171819202122232425262728293031323334353637 |
- import React, { createContext, useState, useContext, ReactNode } from 'react';
- import { Language } from '../types.ts';
- interface LanguageContextType {
- language: Language;
- setLanguage: (lang: Language) => void;
- toggleLanguage: () => void;
- t: (key: string) => string;
- }
- const LanguageContext = createContext<LanguageContextType | undefined>(undefined);
- export const LanguageProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
- const [language, setLanguage] = useState<Language>('zh');
- const toggleLanguage = () => {
- setLanguage(prev => prev === 'zh' ? 'en' : 'zh');
- };
- // Simple translation helper placeholder
- // Real translations will be handled by selecting data objects in components
- const t = (key: string) => key;
- return (
- <LanguageContext.Provider value={{ language, setLanguage, toggleLanguage, t }}>
- {children}
- </LanguageContext.Provider>
- );
- };
- export const useLanguage = () => {
- const context = useContext(LanguageContext);
- if (!context) {
- throw new Error('useLanguage must be used within a LanguageProvider');
- }
- return context;
- };
|