import { I18nNsType } from '@fastgpt/web/types/i18next'; import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; export const LANG_KEY = 'NEXT_LOCALE_LANG'; export enum LangEnum { 'zh' = 'zh', 'en' = 'en' } export const langMap = { [LangEnum.en]: { label: 'English', icon: 'common/language/en' }, [LangEnum.zh]: { label: '简体中文', icon: 'common/language/zh' } }; export const serviceSideProps = (content: any, ns: I18nNsType = []) => { return serverSideTranslations(content.locale, ['common', 'error', ...ns], null, content.locales); }; export const getLng = (lng: string) => { return lng.split('-')[0]; }; export const change2DefaultLng = (currentLng: string) => { if (!navigator || !localStorage) return; if (localStorage.getItem(LANG_KEY)) return; const userLang = navigator.language; if (userLang.includes(currentLng)) { return; } // currentLng not in userLang return getLng(userLang); }; export const setLngStore = (lng: string) => { if (!localStorage) return; localStorage.setItem(LANG_KEY, lng); };