Я начал разрабатывать веб-приложение Angularjs, и я использую angular-translate в своем приложении, и я не знаю, как наилучшим образом использовать угловой перевод, когда у меня разные взгляды.angular-translate between different views
Я установил в своем приложении файлы с угловым-переводом-загрузчиком-статическими файлами, и я бы хотел, чтобы у меня была кнопка языка в заголовке моего шаблона при изменении языка текущего вида. Мнения разделяются на разных контроллерах и в моем index.html:
<div ng-controller='HeaderController'>
<button ng-click="changeLanguage('pt')" translate="BUTTON_LANG_PT"></button>
<button ng-click="changeLanguage('en')" translate="BUTTON_LANG_EN"></button>
</div>
Мой перевод модуль:
angular.module('elapApp.translate', ['pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider) {
// configures staticFilesLoader
$translateProvider.useStaticFilesLoader({
prefix: 'messages/locale-',
suffix: '.json'
});
// load 'en' table on startup
$translateProvider.preferredLanguage('pt');
}])
.controller('HeaderController', ['$translate', '$scope', function ($translate, $scope) {
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
}]);
view.html пример:
<table class="table table-striped table-bordered">
<thead>
<th translate>AUTHOR_NAME</th>
<th translate>AUTHOR_BIOGRAPHY</th>
<th translate>AUTHOR_WEBSITE</th>
<th translate>COMMON_ACTION</th>
</thead>
<tbody>
<tr ng-repeat="data in authors">
<td>{{data.author_name}}</td>
<td>{{data.author_biography}}</td>
<td>{{data.author_website}}</td>
<td><a href="#/edit-author/{{data.author_id}}" class="btn"> <i class="glyphicon glyphicon-edit"></i> Edit Author</a>
</td>
</tr>
</tbody>
</table>
И вид модуля:
angular.module('elapApp.authors', ['elapApp.services','ngRoute', 'elapApp.translate'])
.config(['$routeProvider',
function($routeProvider) {
$routeProvider.when('/', {
title: 'Authors',
templateUrl: 'partials/authors/authors.html',
controller: 'AuthorsCtrl'
}).when('/authors', {
templateUrl: 'partials/authors/authors.html',
controller: 'AuthorsCtrl'
});
}
])
.controller('AuthorsCtrl', ['$scope', 'Authors', function($scope, Authors) {
Authors.getAuthors().then(function(data){
$scope.authors = data.data;
});
}]).run(['$location', '$rootScope',
function($location, $rootScope) {
$rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
$rootScope.title = current.$$route.title;
});
}
]);
Итак, в этом случае n Я щелкнул по языковой кнопке, все данные на моем заголовке меняют язык правильно, но, на мой взгляд, ничего не происходит. Как я могу изменить язык своего представления в этой ситуации?
Вы можете мне помочь?
Спасибо. Всего наилучшего!
Я думаю, что API является "$ translate.uses", а не "... использовать"? – benek
Нет @benek, например, вы можете увидеть http://angular-translate.github.io/docs/#/guide/07_multi-language – Bgarbarek
Вы правы! – benek