2017-10-23 13 views
0

react-i18next에 내 키가 확인되지 않는 문제가 있습니다. 따라서 출력으로 얻는 모든 것이 자체 키입니다.react-i18next가 키를 확인할 수 없습니다.

내 프로젝트를 GUI 프로젝트로 VisualStudio 솔루션에 포함해야했습니다. 내 원래 프로젝트를 실행하면 정상적으로 작동합니다. 대조적으로 솔루션 프로젝트는 변환 함수 호출의 핵심 부분을 해결할 수 없습니다.

t('user:KEY_CONSTANT') //output: KEY_CONSTANT 

내 i18n.config은 다음과 같습니다

i18n 
    .use(XHR) 
    .init({ 
     lng: i18nHelper.languageDetector(), 
     load: 'currentOnly', 
     fallbackLng: 'en-US', 
     backend: { 
      loadPath: 'i18n/{{lng}}/{{ns}}.json' 
     }, 

     ns: ['admin', 'user'], 
     defaultNS: 'admin', 
     debug: false, 

     interpolation: { 
      escapeValue: false, 
      formatSeparator: ',', 
      format: function (vale, format, lng) { 
       if (format === 'uppercase') return value.toUpperCase(); 
       return value; 
      } 
     } 
    }); 

솔루션에서 프로젝트를 삽입 할 때, 나는 고장의 실제 이유는 생각 webpacks 출력 폴더를 변경했다,하지만 난 문제가 정확히 어디에서 발생하는지 찾을 수 없습니다. 나는 loadPath을 변경했지만, 실패의 원인 이잖아, 난 그냥 올바른 방법으로하지 않은 경우 : 예전 프로젝트에서

Solution 
|-gui 
| |-src 
| |-i18n 
|  |-de-DE(containing the german admin.json and user.json files) 
|  |-en-US(containing the english admin.json and user.json files) 
| |-utils 
|  |-i18n.js 
|-out 
| |-prgFiles 
| |-html 
|  |-i18n(contains same items as i18n under src) 

의 웹팩 : S를

내 프로젝트 트리 같은 보이는 출력은 src와 같은 레벨의 '/ dist /'였습니다. 해결책은 '../out/prgFiles/html'입니다.

{ 
    "KEY_CONSTANT": "Actual string value" 
} 

으로, 나는 경로 변경 약간의 주위에 시도했다 번역 검사 :

admin.json 지금 당신이 기대하는 것처럼 user.json가 키를 포함, 모든 키가없는 상태 , i18next 및 i18next - 발견 된 모든 공급자 및 모든 것이 좋습니다. KEY_CONSTANT를 실제 값으로 해석 할 수 없습니다.

문제의 원인을 알고 계십니까? i18next 초기화에서 true로

답변

1

세트 디버그 옵션 -> 내가

는 클라이언트 측이 번역을로드 할 수 있는지 확인 ... 네임 스페이스 사용자를로드하지 못했습니다 당신이 backendConnector 같은 것을 알리는 오류가 발생합니다 내기합니다 (웹팩 -dev 서버는 그렇게하는 데 좋은 일을합니다.하지만 프로덕션에서는 직접 파일을 제공해야합니다.)

+0

이렇게 시도했는데 'i18next :: translator : missingKey en-US user '오류가 발생합니다. 나는 그 파일을 직접 제공하는 방법에 대한 정보가 없다. 어떤 제안? – xtp

+0

멀리에서 .net 측면 ... 그래서 거기에 당신을 도울 수 없다 ... 그래서 당신이 거기에 서버를 산란 계획 - 유일한 대안은 당신에게 https://locize.com 서비스 계층을 줄 수 i18next - 번역을 관리하고 거기에서로드 할 수 있습니다. 따라서 자체 서버가 필요하지 않습니다. – jamuhl

+0

프로젝트를 랩핑해야하는 솔루션이 생성되었으며 내 문자열을 내 페이지에 직접 렌더링하는 방법을 제공하는 것으로 보입니다. 비록 모든 문자열을 다시 추가해야하지만, 그것은 갈 길인 것처럼 보인다. 그래서 대답이 내 문제에 대한 완벽한 해결책이 아니더라도, 그것은 나를 많이 도왔습니다. 그래서 저는 그것을 대답으로 받아 들였습니다. 당신의 도움을 주셔서 감사합니다! – xtp