реагировать на локали JS i18n

Я использую react-i18next в своем приложении reactJS.

возможно ли что-то вроде этого:

i18n
    .use(LanguageDetector)
    .init({
        // we init with resources
        resources: {
            en: {en},
            de: {
                application: {
                    name: 'Dashbord DE',
                }
            }
        },

Вложение/группировка локалей

и распечатайте их так:

t('application.dashboard')

Проблема в том, что не перевод печатает... мой ключ application.dashboard печатается...

Спасибо.

Обновить:

de: {
   application: {
      foo: "adsad",
      name: {
        firstname: 'max'
      },
   }
 }

Это не работает:

t('application:name.firstname')

person Felix    schedule 27.07.2017    source источник
comment
Вам нужно добавить еще несколько деталей: что такое объект 'en', что он содержит   -  person Kamil Socha    schedule 27.07.2017
comment
точно так же тогда в де   -  person Felix    schedule 27.07.2017
comment
поэтому вы должны вызывать t('application.name') вместо t('application.dashboard'). Ваши переводы не содержат ключ application.dashboard.   -  person Kamil Socha    schedule 27.07.2017
comment
да, конечно, проблема не в этом... была проблема с копированием. проблема в том, что я не могу получить доступ к firestname   -  person Felix    schedule 28.07.2017


Ответы (1)


t('application:name') сделает свое дело. application действует как пространство имен (имя загруженного файла) и по умолчанию должно быть разделено с помощью :. В то время как все остальные вложения разделены ., например:

de: {
       application: {
          name: {
            firstname: 'max'
          },
       }
    }

t('application:name.firstname'); // -> max

person jamuhl    schedule 27.07.2017
comment
проблема решена, мне нужно было определить разделитель keySeparator: '.' - person Felix; 28.07.2017