2017-07-27 49 views
1

我使用的反應,i18next在我reactJS應用反應JS國際化的語言環境

是這樣的可能:

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

嵌套/分組的語言環境

,並打印出來是這樣的:

t('application.dashboard') 

問題是,不是翻譯是printet ...我的關鍵application.dashboard是pri nted ...

謝謝。

更新:

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

這不是工作:

t('application:name.firstname') 
+0

您需要添加一些更多的細節:什麼是「恩」的對象,這是什麼包含 –

+0

一樣的,然後在去 – Felix

+0

所以你應該調用t('application.name')而不是t('application.dashboard')。您的翻譯不包含'application.dashboard'鍵。 –

回答

1

t('application:name')會做的伎倆。應用程序充當命名空間(加載的文件名),默認情況下需要用:分隔。而所有其他嵌套與.分隔,例如:

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

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

+0

上面加了一些代碼。不起作用 – Felix

+0

問題解決了我不得不定義分隔符 'keySeparator:'。'' – Felix