2016-07-12 4 views
0

나는 제대로 작동하는 정적 파일 로더에 의해로드되면 내 페이지에 대한 traslations 함께 json 가지고 있지만 그것을 http : // httpBackend api 호출 시뮬레이션을 사용하여로드 할 때로드 할. 내 설정은 다음과 같습니다각도 번역 html 백엔드로 정적 파일 로더

$httpBackend.whenGET(/assets.*/).respond(200, ''); 

제안 :

$translateProvider.useStaticFilesLoader({ 
     prefix: "assets/lang-", 
     suffix: ".json" 
    });*/ 
    $translateProvider.useInterpolation('textBreaksInterpolation'); 
    $translateProvider.preferredLanguage('en'); 

나는이 같은 htmlBackend의 모든 자산을 허용 한 한? 감사.

+0

가로드되지 않았거나 응답이 비어 :

그냥 번들로 텍스트 JSON 파일을 빌드? '$ httpBackend.whenGET (/ assets. * /). respond (200, '');'를 호출하면 모든 호출에 빈 문자열이 반환됩니다. '$ httpBackend.whenGET ('assets/lang-en.json') 응답 (200, 'json response here'); ' – maurycy

답변

0

나는 게으른 로딩을 전혀 사용하지 않을 것을 제안합니다. (물론, 너무 많은 언어가없는 경우).

import textsEn from 'texts.en.json'; 
import textsDe from 'texts.de.json'; 
import textsEs from 'texts.es.json'; 

.config($translateProvider => { 
    $translateProvider.translations('en', textsEn); 
    $translateProvider.translations('de', textsDe); 
    $translateProvider.translations('es', textsEs); 
}) 
+0

어떻게 가져 오기를 사용할 수 있습니까? 너무 단순 해 보이지만 "app.js : 1 Uncaught SyntaxError : 예상치 못한 토큰 임포트"가 발생했습니다. – Gatekeeper

+1

ok var initInjector = angular.injector ([ 'ng'])로 고정했습니다. var $ http = initInjector.get ('$ http'); $ http.get ('/ assets/lang-en.json') .then (function (result) { $ translateProvider.translations ('en', result.data); }); – Gatekeeper

+0

하지만 이것은 올바른 접근이었습니다. – Gatekeeper