gpt4 book ai didi

json - i18next 组件外翻译

转载 作者:行者123 更新时间:2023-12-03 16:13:09 27 4
gpt4 key购买 nike

我是 i18next 的新手,正在尝试本地化/翻译网站。一切都适用于组件内部的翻译,但在外部(意味着带有 i18n.t() 的 json 文件它不会检索所需的信息,而是显示默认值。

我正在使用 create-react-app 并且它是文件夹引用的默认设置,也许这​​是关键问题,但我不知道为什么以及要更改什么。

import i18n from '../../i18n';


const navigation = [
{
'id' : 'dashboard',
'title' : i18n.t('analytics.title', 'NOT FOUND'),
'type' : 'group',
'icon' : 'apps',

}
]

export default navigation;

这是 i18n.js 文件的设置:
import i18n from "i18next";
import Backend from 'i18next-xhr-backend';
import { initReactI18next } from 'react-i18next';
import detector from "i18next-browser-languagedetector";

i18n

.use(detector)
.use(Backend)
.use(initReactI18next)
.init({
lng: localStorage.getItem('language') || 'en',
backend: {
/* translation file path */
loadPath: '/assets/i18n/{{ns}}/{{lng}}.json'
},
fallbackLng: ['en', 'se', 'da'],
debug: true,
ns: ['translations'],
defaultNS: 'translations',
keySeparator: false,
interpolation: {
escapeValue: false,
formatSeparator: ','
},
react: {
wait: true
}

})

export default i18n;

对于 index.js:
import 'typeface-muli';
import './react-table-defaults';
import './react-chartjs-2-defaults';
import { I18nextProvider } from "react-i18next";
import i18n from "./i18n";
import './styles/index.css';
import React from 'react';
import ReactDOM from 'react-dom';
import * as serviceWorker from './serviceWorker';
import App from 'app/App';

ReactDOM.render(
<I18nextProvider i18n={i18n}>
<App />
</ I18nextProvider>
,
document.getElementById('root'));

serviceWorker.unregister();

我只是得到默认值:“未找到”...

最佳答案

您正在使用后端服务在浏览器中异步获取翻译。导入时i18n您可能希望可以随时获得翻译,但事实并非如此 - i18n.init也是一种异步方法(如果您尝试等待它,您将能够利用 t 功能)。

一种可能的方法是定义翻译键:

const navigation = [
{
...
'title_key': 'analytics.title',
...
}
]

然后将其传递给 t在一个组件内:
navigation.map(({ title_key }) => <li>t(title_key)</li>)

关于json - i18next 组件外翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57114733/

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