0

我是新來的角js。對於語言翻譯,我在我的工作中使用了angular-translate服務。我通過API調用響應獲取了需要在$ translateProvider中分配的整個翻譯。我知道我可以將翻譯分配給$ translateprovider($ translateprovider.translations只有從配置模塊(「恩」,翻譯),但我認爲,從配置模塊的API調用是不是一個好的做法。

下面給出的是我的配置模塊。

.config(['$translateProvider', function($translateProvider) { 

      //fetching session key 
      var response; 
      jQuery.ajax({ 
       type: "GET", 
       url: 'https://abcdefg/session?appKey=123456', 
       async: false, 
       success: function(data) { 
        response = data; 
        getMetaData(response.sessionKey); 

       } 
      }); 

      ////fetching data. 
      function getMetaData(sessionKey) { 
       jQuery.ajax({ 
        type: "GET", 
        url: 'https://abcdefg/metadata?sessionKey=' + sessionKey + 
         '&gid=1.2.3.4', 
        async: false, 
        success: function(data) { 
         dataSet = data; //save response in rootscope variable 
        } 
       }); 
      } 


      $translateProvider.translations('en_US', JSON.parse(dataSet.en_us)); 
      $translateProvider.translations('es_ES', JSON.parse(dataSet.es_es)); 
      $translateProvider.preferredLanguage('en_US'); 
} 

這可怎麼解決?如何從外部配置模塊將翻譯分配給$ translateProvider?

謝謝我前進。

+0

爲什麼不調用'app.config(yourNewTranslateProviderConfig)'無論你想要什麼? – frhd

+0

謝謝你的迴應。對不起,我沒有明白'yourNewTranslateProviderConfig'是什麼意思? – Anna

+0

你的意思是從API獲取提供的語言嗎? $ translateProvider.preferredLanguage('en_US'); –

回答

1

看看這個answer from the creator of angular-translate,他指出,「[...]有沒有辦法用$運行期間延長現有的翻譯,而不使用異步加載翻譯服務。[...]」

對於關於異步加載翻譯的更多信息請參閱documentation。您甚至可以通過調用您的API來指定您自己的自定義加載器來獲取翻譯。