I18next/i18n Изменить язык не работает на всем сайтеHtml

Программисты Html
Ответить
Anonymous
 I18next/i18n Изменить язык не работает на всем сайте

Сообщение Anonymous »

Я создаю приложение для реагирования на машинопись, в котором мне нужно иметь возможность переводить сайт. Я использую библиотеку i18next. На главной странице пользователь может изменить язык с помощью кнопки, запускающей этот метод.

Код: Выделить всё

changeLang(lang:string):any{
i18next.changeLanguage(lang).then(() => {
this.props.close();
i18next.options.lng = lang;
});
}
Это отлично подходит для изменения языка главной страницы. Однако когда я перехожу на следующую страницу, она возвращается к исходному языку. Кажется, я не могу запустить весь сайт на другом языке.
Мой файл index.tsx

Код: Выделить всё

import React from 'react';
import ReactDOM from 'react-dom';
import './styles/index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import Amplify from 'aws-amplify';
import awsmobile from "./aws-exports";

import * as enTranslations from "./locales/en"; /* This import refers to all of the texts in english */
import * as ptTranslations from "./locales/pt" /* This import refers to all of the texts in portuguese */
import {initReactI18next, I18nextProvider} from 'react-i18next'; /* Import needed for the use of the dictionary/translation  */
import LanguageDetector from "i18next-browser-languagedetector"; /* Import needed for the use of the dictionary/translation  */
import i18next from "i18next"; /* Import needed for the use of the dictionary/translation  */

/* Configure Amplify on the client so that we can use it to interact with our backend services */
Amplify.configure(awsmobile);

/* Extract the translations */
const resources = {
en: {messages: enTranslations},
pt: {messages: ptTranslations}
};

/* Setting up the dictionary/translator */
const i18n = i18next.use(LanguageDetector).use(initReactI18next);

i18n.init({
react: {
wait: true,
},
resources: resources,
lng: 'pt', /* Main Language */
fallbackLng: 'en',
keySeparator: '.',
interpolation: {
escapeValue: false,
},
ns: ['messages'],
defaultNS: 'messages',
fallbackNS: [],
});

ReactDOM.render(

[url=/login][/url]
{i18next.t('ChangePasswordConfirm.catchphrase')}
{i18next.t('ChangePasswordConfirm.secondaryText')}



)
}
}

export default withTranslation()(ChangePasswordConfirmation)
Как видите, я использую i18next.t('my-key') для получения переводов и экспортирую каждый компонент/страницу с помощью "withTranslation()". Поэтому я не знаю, почему весь сайт не меняет язык. Кто-нибудь может мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/668 ... le-website
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»