Приложение не переведено i18следующее - PullRequest
0 голосов
/ 16 ноября 2018

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

Index.js

import React from 'react';
import ReactDOM  from 'react-dom';

import { I18nextProvider } from 'react-i18next';
import i18next from 'i18next';

import "assets/scss/material-kit-react.css?v=1.3.0";
import "assets/scss/material-kit-react.css?v=1.3.0";
import * as serviceWorker from './serviceWorker';

import { createBrowserHistory } from "history";

import messages_fr from "locales/fr.json";

const hist = createBrowserHistory();

i18next.init({
    interpolation: { escapeValue: false },  // React already does escaping
    lng: 'fr',                              // language to use
    resources: {
        fr: {
            langue: messages_fr
        },
    },
});

ReactDOM.render((
<I18nextProvider i18n={i18next}>
   </Login>
</I18nextProvider>
), document.getElementById('root')
);
serviceWorker.unregister();

И на моей странице:

import { translate, Trans } from 'react-i18next';

<Trans i18nKey='myKey.mySubKey'></Trans>

export default translate('langue')(withStyles(loginPageStyle)(LoginPage));

Я не понимаю почемумой текст нет.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Мой index.js:

import React from 'react';
import ReactDOM  from 'react-dom';

import { Router, Route, Switch, Redirect } from "react-router-dom";

import { I18nextProvider } from 'react-i18next';
import i18next from 'i18next';

import * as serviceWorker from './serviceWorker';

import { createBrowserHistory } from "history";

import indexRoutes from "routes/index.jsx";

import messages_en from "locales/en.json";
import messages_fr from "locales/fr.json";

import LanguageDetector from 'i18next-browser-languagedetector';

const hist = createBrowserHistory();

i18next
 .use(LanguageDetector)
 .init({
  interpolation: { escapeValue: false },
  fallbackLng: 'en',
  resources: {
   en: {
    langue: messages_en
   },
   fr: {
    langue: messages_fr
   },
  },
 });

 ReactDOM.render((
  <I18nextProvider i18n={i18next}>
   <Router history={hist}>
    <Switch>
     {indexRoutes.map((prop, key) => {
      if (prop.redirect)
        return <Redirect from={prop.path} to={prop.to} key={key} />;
      return <Route path={prop.path} component={prop.component} key={key} />;
     })}
    </Switch>
   </Router>
  </I18nextProvider>
 ), document.getElementById('root'));

serviceWorker.unregister ();

0 голосов
/ 19 ноября 2018

Я сделал как это, но мое приложение всегда остается на английском, в то время как язык моего браузера - французский.

i18next
.use(LanguageDetector)
.init({
 interpolation: { escapeValue: false },
 lng: 'en',
 resources: {
  en: {
    langue: messages_en
  },
  fr: {
    langue: messages_fr
  },
 },
});
...