This commit is contained in:
chamikaJ
2025-04-17 18:28:54 +05:30
parent f583291d8a
commit 8825b0410a
2837 changed files with 241385 additions and 127578 deletions

View File

@@ -0,0 +1,37 @@
import { ILanguageType, Language } from '@/features/i18n/localesSlice';
const STORAGE_KEY = 'i18nextLng';
/**
* Gets the user's browser language and returns it if supported, otherwise returns English
* @returns The detected supported language or English as fallback
*/
export const getDefaultLanguage = (): ILanguageType => {
const browserLang = navigator.language.split('-')[0];
if (Object.values(Language).includes(browserLang as Language)) {
return browserLang as ILanguageType;
}
return Language.EN;
};
export const DEFAULT_LANGUAGE: ILanguageType = getDefaultLanguage();
/**
* Gets the current language from local storage
* @returns The stored language or default language if not found
*/
export const getLanguageFromLocalStorage = (): ILanguageType => {
const savedLng = localStorage.getItem(STORAGE_KEY);
if (Object.values(Language).includes(savedLng as Language)) {
return savedLng as ILanguageType;
}
return DEFAULT_LANGUAGE;
};
/**
* Saves the current language to local storage
* @param lng Language to save
*/
export const saveLanguageInLocalStorage = (lng: ILanguageType): void => {
localStorage.setItem(STORAGE_KEY, lng);
};