2017-08-24 14 views
1

古い1.5.6のアプリケーションをローカライズする必要があります。私はui-routerを使用しています。そして、それは動作しません。ここでui-routerで角度変換作業を行うにはどうすればよいですか?

私は理由を見つけようとしていますが、私が最初のものにこだわっている間、他の人が、さらなるステップについての質問を持っているようだ...

私のアプリの単純化されたコードです:

angular 
    .module('localeApp', [ 
     'ngCookies', 
     'ui.router', 
     'pascalprecht.translate' 
    ]) 
    .config(
     ['$stateProvider','$urlRouterProvider', '$translateProvider', 
     function($stateProvider,$urlRouterProvider, $translateProvider) { 
     $urlRouterProvider.otherwise('/login'); 
     $stateProvider 
      .state('login', { 
      url: '/login', 
      templateUrl: 'loginTpl.html' 
      }) 
      .state('welcome', { 
      url: '/welcome', 
      templateUrl: 'welcomeTpl.html' 
      }) 
      .state('other', { 
      url: '/other', 
      templateUrl: 'otherTpl.html' 
      }); 

     $translateProvider.useMissingTranslationHandlerLog();// log missing translations 
     $translateProvider.useStaticFilesLoader({ 
      prefix: 'locale-',// path to translations files 
      suffix: '.json'// suffix, currently- extension of the translations 
     }); 
     $translateProvider.preferredLanguage('en_US');// is applied on first load 
     $translateProvider.useLocalStorage();// saves selected language to localStorage 


    }]) 
    .run(['$rootScope', '$translate', function($rootScope, $translate) { 
     $rootScope.$on('$stateChangeSuccess', 
      function(event, toState, toParams, fromState, fromParams){ 
       $translate.refresh(); 
      }); 
    }]); 

ロケールごとにjsonファイルが定義されています。たとえば、デフォルトlocale-en_US.json

{ 
    "translate.welcome": "welcome", 
    "translate.login": "login", 
    "translate.other": "other" 
} 

テンプレートloginTpl.htmlページ:

<p>This is {{translate.login | translate}} page</p> 

すべてがthis plunkerです。

jsonファイルが取得されているのがわかりますが、適用されません。 私は何かを明らかに欠けていることを確信しているが、私はちょうどそれが何であるかを把握することはできません... ' AEと

+1

また、「$ translateProvider.useSanitizeValueStrategy( 'escape');」を使用してください。詳細はhttps://angular-translate.github.io/docs/#/guide/19_security – abhig10

+0

こちらをご覧ください。ありがとうございます@ abhig10 。私はコンソールに警告メッセージが表示されていて、将来はいつかそれに対処したいと思っていましたが、あなたのスニペットを使って今すぐ行うことができます。 – george007

答えて

1

ラップ変換パターン:

代わりに:

<p>This is {{translate.login | translate}} page</p> 

書き込み:

<p>This is {{'translate.login' | translate}} page</p> 

Demo

+0

Doh!私は**これは私が欠けていたいくつかの詳細だった**知っていた。ありがとよ。 – george007

関連する問題