Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何更改react-i18next中的语言_Reactjs_Internationalization - Fatal编程技术网

Reactjs 如何更改react-i18next中的语言

Reactjs 如何更改react-i18next中的语言,reactjs,internationalization,Reactjs,Internationalization,首先,我初始化I18下一个实例 import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; const resources = { en: { translation: { 'Welcome to React': 'Welcome to React and react' } }, de: { translation: { 'Welcome

首先,我初始化I18下一个实例

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

const resources = {
  en: {
    translation: {
      'Welcome to React': 'Welcome to React and react'
    }
  },
  de: {
    translation: {
      'Welcome to React': 'Bienvenue à React et react-i18next'
    }
  }
};

i18n.use(initReactI18next).init({
  resources,
  lng: 'de',

  interpolation: {
    escapeValue: false
  }
});

export default i18n;
然后在我的组件中使用带有UseTransation钩子的实例

import React from 'react'
import { useTranslation } from 'react-i18next'

import classes from './intro.module.scss'

export default function Intro() {
    const { t, i18n } = useTranslation()
    return (
        <div className={classes.container}>
            <div className={classes.innerContainer}>
            <h1>{t('Welcome to React')}</h1>
            </div>
        </div>
    )
}
从“React”导入React
从“react-i18next”导入{UseTransation}
从“./intro.module.scss”导入类
导出默认函数简介(){
const{t,i18n}=usetransation()
返回(
{t('WelcometoReact')}
)
}
那么现在如何将我在i18n实例中初始化的默认语言更改为de


我的导航栏上有一个按钮,我希望当我点击该按钮时,语言应该切换。

您可以在react-i18n的文档中找到您需要的所有信息:


您需要使用函数i18n.changeLanguage()并将所需的语言作为道具传递。

尝试此操作,在函数中传递语言以调用不同的语言

import React from 'react'
import { useTranslation } from 'react-i18next'

import classes from './intro.module.scss'

export default function Intro() {
    const { t, i18n } = useTranslation()

     const changeLanguageHandler = (lang) =>
     {
       i18n.changeLanguage("de")
     }



    return (
        <div className={classes.container}>
            <div className={classes.innerContainer}>
            <h1>{t('Welcome to React')}</h1>
            </div>
        </div>
    )
}
从“React”导入React
从“react-i18next”导入{UseTransation}
从“./intro.module.scss”导入类
导出默认函数简介(){
const{t,i18n}=usetransation()
常量changeLanguageHandler=(lang)=>
{
i18n.变更语言(“de”)
}
返回(
{t('WelcometoReact')}
)
}