gpt4 book ai didi

javascript - 在没有页面刷新的情况下更新翻译(i18next with react)

转载 作者:行者123 更新时间:2023-11-30 09:28:21 24 4
gpt4 key购买 nike

我的 _nav.js 文件:

import i18n from '../../services/Translator';

export default {
items: [
{
name: i18n.t('DASHBOARD'),
url: '/dashboard',
icon: 'icon-speedometer',
},
{
name: i18n.t('SCHEDULE'),
url: '/schedule',
icon: 'icon-calendar',
},
{
name: i18n.t('USERS'),
url: '/users',
icon: 'icon-user',
},
{
name: i18n.t('LEASING_COMPANY'),
url: '/company',
icon: 'icon-organization',
},
],
};

我的组件:

import { translate } from 'react-i18next';
import nav from '../Sidebar/_nav';
/...
render() {
const test = nav.items.map((item) => {
return <li key={item.url}>{item.name}</li>;
});

return (
<ul>{test}</ul>
);
}

问题是当我更改语言时我的文本没有得到翻译。我的浏览器需要刷新才能应用翻译。谁知道如何在不刷新页面的情况下完成翻译?

编辑:这是我的翻译服务:

import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import en from '../../lang/en';
import vn from '../../lang/vn';
import env from '../../config/env';

i18n
.use(LanguageDetector)
.init({
// we init with resources
resources: {
en,
vn,
},
fallbackLng: env.defaultLanguage,

// have a common namespace used around the full app
ns: ['translations'],
defaultNS: 'translations',

keySeparator: false, // we use content as keys

react: {
wait: true,
},
});

export default i18n;

我还将更改语言按钮放在页面的页眉组件上。

最佳答案

不能这样工作......你将翻译分配给 _nav.js 中数组中的对象

这些将是字符串,任何代码都不会更新这些值,您需要在语言更改时重新生成这些值,或者:

import i18n from '../../services/Translator';

export default {
items: [
{
name: 'DASHBOARD',
url: '/dashboard',
icon: 'icon-speedometer',
},
{
name: 'SCHEDULE',
url: '/schedule',
icon: 'icon-calendar',
},
{
name: 'USERS',
url: '/users',
icon: 'icon-user',
},
{
name: 'LEASING_COMPANY',
url: '/company',
icon: 'icon-organization',
},
],
};

import { translate } from 'react-i18next';
import nav from '../Sidebar/_nav';
/...
render() {
const test = nav.items.map((item) => {
return <li key={item.url}>{t(item.name)}</li>;
});

return (
<ul>{test}</ul>
);
}

关于javascript - 在没有页面刷新的情况下更新翻译(i18next with react),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com