我無法在angular-translate的文檔或API中找到它。如何通過angular translate檢索所有加載的語言?如何列出角度翻譯加載的所有語言
假設我有一個這樣的LanguageCtrl:
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>
從我在他們的代碼中看到,你可以叫'$ translateProvider.transations()'不帶任何參數,你會得到'$ translationTable'返回到您。如果這項工作,讓我知道,我可以給它一個答案 – JoseM
謝謝@JoseM!我會嘗試這個明天。所以將一個提供者注入控制器並不會在angularjs中造成任何麻煩,是嗎?我只是習慣在啓動時在配置中使用它們。 – fischermatte
我認爲你可能無法在你的控制器中注入提供者。我試圖對此做一些快速研究,但是我還沒有發現任何確定性。 – JoseM