@s_katala

Как исправить Uncaught ReferenceError: __ is not defined?

Пожалуйста, помогите исправить!!!
Пытаюсь подключить перевод i18n-2
import  i18n from 'i18n-2'
export class Navbar extends Component {
  constructor(props) {
    super(props)
  }
  render() {
    return (
        <li><IndexLink to="/" activeClassName={styles.active}>{__('Home')}</IndexLink></li>
  )
}


app.js
i18n.expressBind(app, {
  locales: ['ru', 'en'],
  directory: __dirname + '/locales',
  fallbacks: true,
  extension: '.js',
  defaultLocale: 'ru',
  cookieName: 'lang',
  register: global,
  api: {
    '__': 't',
    '__n': 'tn'
  }
});
app.use(function(req, res, next) {
  if(req.query.lang) {
    req.i18n.setLocaleFromQuery();
    res.cookie('lang', req.i18n.getLocale());
  } else {
    req.i18n.setLocaleFromCookie();
  }
  next();
});
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 1
@levchak0910
answer.correct ? press({correct: true}) : next()
Библиотеку i18n-2 невозможно использовать в реакте, она только для ноди.
Смотрите в код библиотеки.
Вот кусок кода, который отвечает за прочтения файлов с переводами:
var i18n = module.exports = function (opt) {
	...
	if (opt.locales && opt.locales.forEach) {
		this.locales = {};
		opt.locales.forEach(function (locale) {
			self.readFile(locale);
		});
	}
	...
}

i18n.prototype = {
	...
	readFile: function (locale) {
		var file = this.locateFile(locale);
		...
		try {
			var localeFile = fs.readFileSync(file);
			...
	},
	...
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы