Non riesco a trovarlo in documenti o API di angular-translate. Come posso recuperare tutte le lingue caricate da angular translate?Come elencare tutte le lingue caricate da angular-translate
Supponendo che ho un LanguageCtrl come questo:
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();
}
}]);
E che carico nelle lingue:
angular.module('myApp', ['pascalprecht.translate'])
.config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('de', de);
$translateProvider.translations('fr', fr);
$translateProvider.translations('en', en);
$translateProvider.preferredLanguage('en');
}]);
Ora vorrei per visualizzare tutte le lingue:
<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>
Da quello che vedo nel loro codice si può chiamare '$ translateProvider.transations()' senza alcun argomento e si otterrà il '$ translationTable' restituito di nuovo voi. Se funziona, fammelo sapere e posso renderlo una risposta – JoseM
grazie a @JoseM! lo proverò domani. quindi iniettare un fornitore in un controller non causa alcun problema in angularjs, vero? sono abituato a usarli in configurazione all'avvio. – fischermatte
Penso che potresti non essere in grado di iniettare il provider nel tuo controller. Stavo cercando di fare qualche ricerca veloce su questo, ma non ho ancora trovato nulla di definitivo. – JoseM