2017-03-21 4 views
1

개발을 위해 각도 1.2.16 및 i18next 0.2.6을 사용하고 있습니다. 우리의 응용 프로그램에서 지역화는 동일한 서버의 JSON 일 때 잘 동작합니다.AngularJS + i18n 현지화 다른 서버의 JSON로드

이제 리소스 스트링 즉 다른 콘텐츠 서버에서 JSON 파일을로드하는 새로운 요구 사항을 발견했습니다. 에서 부하 JSON을 가정 해 봅시다 "http://mysite/locales/en-us/sample.json"나는 resGetPath 변경하려고

<head> 
    <meta charset="utf-8"/> 
    <title>i18next test</title> 
    <script src="i18next.js"></script> 
    <script src="angularjs/1.2.16/angular.min.js"></script> 
    <script src="ngI18next.js"></script> 

    <script> 

    angular.module('jm.i18next').config(function ($i18nextProvider) { 

      'use strict'; 

      $i18nextProvider.options = { 
       lng: 'dev', 
       useCookie: false, 
       useLocalStorage: false, 
       fallbackLng: 'dev', 
       resGetPath: '../locales/__lng__/__ns__.json', 
       ns: { 
        namespaces: ['messages', 'options'], 
        defaultNs: 'messages' 
       } 
      }; 

    }); 
    angular.module('MyApp', ['jm.i18next']).controller('MyProviderCtrl', function ($rootScope, $scope, $i18next) { 
     $rootScope.$on('i18nextLanguageChange', function() { 
      $scope.hello = $i18next('messages:header.name'); 
     }); 
    }); 
    </script> 
</head> 
<body ng-app="MyApp"> 
    <div ng-controller="MyProviderCtrl"> 
     <div>{{hello}}</div> 
     <div ng-i18next="options:moment-i18n"></div> 
     <div ng-i18next="messages:header.name"></div> 
     <div ng-i18next="header.name"></div> 
    </div> 
</body> 

: '../locales/__lng__/__ns__.json'resGetPath에 : 그러나 서버에서 'http://mysite/locales/en-us/sample.json'의로드 JSON 파일을 UI에서 텍스트를 번역하지 않습니다.

번역 제안 방법?

+1

나는 파일이로드 로컬 서버에 어떻게 든 그런 말 것와 반대로 반면 다음 이벤트'i18nextLanguageChange' 화재 다른 서버에서 발생합니다. 'onload' (http://i18next.com/docs/api/#on-loaded) 이벤트를 듣고 나서'i18nextLanguageChange' 이벤트를 시작하십시오. – Piou

답변