Reactjs 在cookie/localSession中存储所选语言选项

Reactjs 在cookie/localSession中存储所选语言选项,reactjs,cookies,internationalization,next.js,session-cookies,Reactjs,Cookies,Internationalization,Next.js,Session Cookies,我希望我的Next.js应用程序记住用户喜欢哪种语言,因此我希望将其存储在客户端的cookie中。 我有两种语言选择:英语和法语 默认情况下,语言设置为英语(无cookie,myapp.com/),但一旦用户单击EN首选项,URL将更改为myapp.com/EN,并且应存储此选定语言。法语也是如此 const [language, setLanguage] = useState(false); <Link href={`/${router.loca

我希望我的Next.js应用程序记住用户喜欢哪种语言,因此我希望将其存储在客户端的cookie中。 我有两种语言选择:英语和法语

默认情况下,语言设置为英语(无cookie,
myapp.com/
),但一旦用户单击EN首选项,URL将更改为
myapp.com/EN
,并且应存储此选定语言。法语也是如此

const [language, setLanguage] = useState(false);

        <Link
            href={`/${router.locale === 'en' ? 'fr' : 'en'}`}
            locale={false}
        >
            <a
                onClick={() => {
                    setLanguage((language) => !language);
                    // setCookie({});
                }}
            >
                {` ${language ? 'en' : 'fr'}`}
            </a>
const[language,setLanguage]=useState(false);
{
setLanguage((语言)=>!语言);
//setCookie({});
}}
>
{`${语言?'en':'fr'}`}

我可以在何处以及如何使用cookie或会话存储,以便后端可以看到它?

如注释中所述,您可以利用
NEXT\u LOCALE
cookie来保留用户的语言首选项。这将覆盖Next.js内置i18n通常使用的accept language标头

const setCookie=(区域设置)=>{
document.cookie=`NEXT_LOCALE=${LOCALE};expires=Fri,1999年12月31日23:59:59 GMT`
}
建议:与您提出的问题无关,我还建议您使用按钮而不是锚来处理语言切换,因为此时它所做的不仅仅是简单的导航

{
const locale=router.locale=='en'?'fr':'en'
setCookie(区域设置)
router.push(`/${locale}`、`/${locale}`、{locale:false})
}}
>
{router.locale==='en'?'fr':'en'}

可能值得一读。
const setCookie=(locale)=>{document.cookie=NEXT\u locale=${locale};window.location.reload();}
这是我在onClick函数中调用setCookie的设置,但没有成功。到目前为止,你尝试了什么?你有什么错误吗?@Camilo我试过我在之前的评论中提到的。使用hook中存储的Next_Locale,我在onClick函数中调用了它,这会起作用,但我真的不知道在函数-onClick setCookie()中调用什么