2014-05-14 2 views
6

angular-translate의 문서 또는 api에서 찾을 수 없습니다. 로드 된 모든 언어를 각도 변환하여 어떻게 검색합니까?각도 번역으로로드되는 모든 언어를 나열하는 방법

angular.module('myApp') 
.controller('LanguageCtrl', ['$translate', '$scope', 
    function ($translate, $scope) { 
     $scope.switchLang = function (lang) { 
      $translate.use(lang); 
     }; 
     $scope.currentLang = function() { 
      return $translate.use(); 
     }; 
     $scope.isCurrentLang = function (lang) { 
      return $translate.use() === lang; 
     }; 
     $scope.languages = function(){ 
      return $translate.IS_THERE_AN_API_FUNCTION_TO_GET_ALL_LANGUAGES(); 
     } 
    }]); 

그리고 난 다음 언어로드 :

angular.module('myApp', ['pascalprecht.translate']) 
.config(['$translateProvider', function ($translateProvider) { 
    $translateProvider.translations('de', de); 
    $translateProvider.translations('fr', fr); 
    $translateProvider.translations('en', en); 
    $translateProvider.preferredLanguage('en'); 
}]); 

가 지금은 모든 언어를 표시 할 것입니다 :

<ul ng-controller="LanguageCtrl"> 
    <li ng-repeat="lang in languages" ng-class="{active: isCurrentLang(lang)}"> 
      <a href="" ng-click="switchLang(lang)">lang</a> 
    </li> 
</ul> 
+1

방금 ​​()'인수없이'$ translateProvider.transations를 호출 할 수 있습니다 그리고 당신은'$ translationTable' 당신에게 다시 돌려 받게됩니다. 이것이 작동하면 알려주세요. 대답을 할 수 있습니다. – JoseM

+0

감사합니다. @JoseM! 나는 이것을 내일까지 시도 할 것이다. 그래서 컨트롤러에 프로 바이더를 주입해도 angularjs에는 문제가 발생하지 않습니까? 난 그냥 시작할 때 설정에서 그들을 사용하는 데 사용됩니다. – fischermatte

+0

컨트롤러에 공급 업체를 삽입하지 못할 수도 있습니다. 나는 그것에 관해 빠른 연구를하려고 노력하고 있었다. 그러나 나는 아직 아무것도 발견하지 않고 있었다. – JoseM

답변

2

업데이트 답 : 나는 자신의 코드에서 보는 것과

/** 
* @description 
* This function simply returns the registered language keys being defined before in the config phase 
* With this, an application can use the array to provide a language selection dropdown or similar 
* without any additional effort 
* 
* @returns {object} returns the list of possibly registered language keys and mapping or null if not defined 
*/ 

    $translate.getAvailableLanguageKeys(); 

/* 
* To register language keys, use the following function in your configuration: 
*/ 

    $translateProvider.registerAvailableLanguageKeys(['en', 'de']); 
10

은 불행하게도 거기를

나는이 같은 LanguageCtrl을 가정 아직 등록 된 모든 언어를 가져올 API가 없습니다. 따라서 짧게 : 이것은 가능하지 않습니다 아직.

원하는 경우 github에서 문제를 열어 해당 기능을 제안 할 수 있습니다. 그러나 비동기 로더를 사용하는 경우로드 될 때까지 이 아닌이 등록됩니다.

+3

님이 제안한대로 문제를 생성했습니다. [https://github.com/angular-translate/angular-translate/issues/566](https://github.com/angular-translate/angular-translate/issues/566) – fischermatte

+0

이것에 관한 어떤 소식? 내보기에 언어 목록을 표시하고 싶습니다. – sports

관련 문제