Reactjs 在cookie/localSession中存储所选语言选项
我希望我的Next.js应用程序记住用户喜欢哪种语言,因此我希望将其存储在客户端的cookie中。 我有两种语言选择:英语和法语 默认情况下,语言设置为英语(无cookie,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
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()中调用什么