i18next в React Native: импорт {t} не работает (работает в React Web) - PullRequest
0 голосов
/ 09 января 2019

Следующий код работает в обычном проекте React (я использую машинопись, если это важно):

import {t} from "i18next";

const translation = t('WelcomeMessage');

тот же самый код не работает в проекте React Native, выдавая ошибку:

import i18n, {t} from "i18next";

const translation1 = i18n.t('WelcomeMessage');   //works ok
const translation = t('WelcomeMessage'); //ERROR: (0, _i18next.t) is not a function

почему t('WelcomeMessage') не работает в RNative? Это как-то связано с тем, как i18next экспортируется в определения типа (export = i18next;)?

1 Ответ

0 голосов
/ 09 января 2019

Вы можете достичь этой функциональности, используя i18n-js https://github.com/fnando/i18n-js/releases

создать файл .js.

import i18n from 'i18n-js';

import en from '../translations/en.json';
import ar from '../translations/ar.json';

i18n.fallbacks = true;
i18n.translations = { en, ar };

export default i18n;

В классе компонентов вызовите этот файл i18n.js

import i18n from './i18n'
class Test extends Component {

   render(){
     return(
        <Text>i18n.t('sample')</Text>
     )
   }

}
...