Это мой файл конфигурации. Консоль журнала не показывает никаких проблем. По крайней мере, ничего не связано с i18next.
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import detector from 'i18next-browser-languagedetector';
const xhrBackendOptions = {
loadPath: '/locales/{{lng}}/{{ns}}.json',
};
let XHR = require('i18next-xhr-backend').default;
let backend = XHR;
let options = {
fallbackLng: "en",
whitelist: ["en", "de", "es"],
ns:["user, claim", "translation"],
backend:xhrBackendOptions,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
}
};
console.info("Translation Activated");
i18n
.use(backend)
.use(detector)
.use(initReactI18next)
.init( options
);
export default i18n;
Это один из файлов .jsx. Язык определяется правильно, и ничего не выходит из строя, но функция синхронно возвращает неизмененную строку
import React from 'react'
import {useSelector} from "react-redux";
import Auth from "ducks/auth";
import SparePart from "ducks/SparePart";
import ViewPort from "components/common/ViewPort";
import ListView from "components/crud/ListView";
import {useHistory} from "react-router";
import {useTranslation} from "react-i18next";
export default function (props) {
const { t,i18n } = useTranslation();
const history = useHistory();
debugger;
const isAdmin = useSelector(Auth.selectors.isAdmin);
const user = useSelector(Auth.selectors.user);
const elements = useSelector(SparePart.selectors.all);
return (
<ViewPort>
<ListView key="listView" title={t("spare parts")} model={SparePart} columns={columns} actions={actions}
navigable={!isAdmin} editable={isAdmin} />
</ViewPort>
);
}