feat(i18n): add i18n types, config, provider, context, and custom hook

This commit is contained in:
2025-07-04 00:22:01 +03:30
parent e2d37ac7b2
commit 01658964f7
13 changed files with 312 additions and 23 deletions

9
src/hooks/useLanguage.ts Normal file
View File

@@ -0,0 +1,9 @@
import {
LangaugeContext,
type LangaugeContextModel,
} from '@/contexts/LangaugeContext';
import { useContext } from 'react';
export const useLangauge = (): LangaugeContextModel => {
return useContext(LangaugeContext);
};

View File

@@ -0,0 +1,17 @@
import { useEffect, useState } from 'react';
export const useLocalStorage = <T extends string>(
key: string,
defaultValue: T,
): [T, (value: T) => void] => {
const localValueOrDefault: T = (localStorage.getItem(key) ??
defaultValue) as T;
const [localValue, setLocalValue] = useState<T>(localValueOrDefault);
useEffect(() => {
localStorage.setItem(key, localValue);
}, [localValue, key]);
return [localValue, setLocalValue];
};