i18n system refactor (#243)

This commit is contained in:
Marco Piovanello
2025-01-15 20:47:58 +01:00
committed by GitHub
parent 160a2721f9
commit 430bfabfb4
20 changed files with 985 additions and 905 deletions

View File

@@ -18,7 +18,7 @@ import {
capitalize
} from '@mui/material'
import { useAtom } from 'jotai'
import { Suspense, useEffect, useMemo, useState } from 'react'
import { Suspense, useCallback, useEffect, useMemo, useState } from 'react'
import {
Subject,
debounceTime,
@@ -50,6 +50,7 @@ import CookiesTextField from '../components/CookiesTextField'
import UpdateBinaryButton from '../components/UpdateBinaryButton'
import { useToast } from '../hooks/toast'
import { useI18n } from '../hooks/useI18n'
import Translator from '../lib/i18n'
import { validateDomain, validateIP } from '../utils'
// NEED ABSOLUTELY TO BE SPLIT IN MULTIPLE COMPONENTS
@@ -82,6 +83,9 @@ export default function Settings() {
const serverAddr$ = useMemo(() => new Subject<string>(), [])
const serverPort$ = useMemo(() => new Subject<string>(), [])
const [, updateState] = useState({})
const forceUpdate = useCallback(() => updateState({}), [])
useEffect(() => {
const sub = baseURL$
.pipe(debounceTime(500))
@@ -133,6 +137,11 @@ export default function Settings() {
*/
const handleLanguageChange = (event: SelectChangeEvent<Language>) => {
setLanguage(event.target.value as Language)
Translator.instance.setLanguage(event.target.value)
setTimeout(() => {
forceUpdate()
}, 100)
}
/**