| 151 | |
| 152 | // Update language and load new messages |
| 153 | const setLanguage = async (lang: string) => { |
| 154 | try { |
| 155 | console.log('Setting language to:', lang); |
| 156 | const validLanguage = Object.keys(supportedLanguages).includes(lang as any) ? lang : defaultLanguage; |
| 157 | |
| 158 | // Load messages for the new language |
| 159 | const langMessages = (await import(`../messages/${validLanguage}.json`)).default; |
| 160 | |
| 161 | setLanguageState(validLanguage); |
| 162 | setMessages(langMessages); |
| 163 | |
| 164 | // Store in localStorage (only in browser) |
| 165 | if (typeof window !== 'undefined') { |
| 166 | localStorage.setItem('language', validLanguage); |
| 167 | } |
| 168 | |
| 169 | // Update HTML lang attribute (only in browser) |
| 170 | if (typeof document !== 'undefined') { |
| 171 | document.documentElement.lang = validLanguage; |
| 172 | } |
| 173 | } catch (error) { |
| 174 | console.error('Failed to set language:', error); |
| 175 | } |
| 176 | }; |
| 177 | |
| 178 | if (isLoading) { |
| 179 | return ( |