如何在 react-i18next 中更改语言
how do I change language in react-i18next
首先我初始化i18next实例
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;
然后我在我的组件中使用带有 useTranslation 挂钩的实例
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>
)
}
那么现在如何将语言从我在 i18n 实例
中初始化的默认语言更改为 de
我的导航栏上有一个按钮,我希望当我单击该按钮时,语言应该切换。
你可以在 react-i18n 的文档中找到你需要的所有信息:
https://react.i18next.com/legacy-v9/step-by-step-guide#d-let-the-user-toggle-the-language
您需要使用函数 i18n.changeLanguage() 并将所需的语言作为 props 传递。
试试这个,在函数内部传递语言来调用不同的语言。
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>
)
}
如果有人需要获取当前选择的语言,这就是获取方式
const getLanguage = () => i18next.language || window.localStorage.i18nextLng
首先我初始化i18next实例
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;
然后我在我的组件中使用带有 useTranslation 挂钩的实例
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>
)
}
那么现在如何将语言从我在 i18n 实例
中初始化的默认语言更改为 de我的导航栏上有一个按钮,我希望当我单击该按钮时,语言应该切换。
你可以在 react-i18n 的文档中找到你需要的所有信息: https://react.i18next.com/legacy-v9/step-by-step-guide#d-let-the-user-toggle-the-language
您需要使用函数 i18n.changeLanguage() 并将所需的语言作为 props 传递。
试试这个,在函数内部传递语言来调用不同的语言。
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>
)
}
如果有人需要获取当前选择的语言,这就是获取方式
const getLanguage = () => i18next.language || window.localStorage.i18nextLng