У меня есть старый проект Angularjs версии 1.5.7.Я хочу реализовать в нем функцию i18n.Но я не могу этого сделать.Ниже приведены подробности того, что я делаю:
Я добавил библиотеку angular-translate версии 2.7.1, используя bower.
<script src="bower_components/angular-translate/angular-translate.js"></script>
Добавилнесколько строк кода в app.js для создания модуля и настройки части перевода.
let zeppelinWebApp = angular.module('zeppelinWebApp', requiredModules)
zeppelinWebApp.config(function($translateProvider) {
$translateProvider.translations('US_EN', {
'GREETING': 'Hello !',
'DESCRIPTION': 'This is a demo app for multilingual support.',
'LBL_SWITCH': 'Click here for switching language between spanish to english',
'CLICK': 'Click',
});
$translateProvider.translations('SPANISH', {
'GREETING': 'Hola !',
'DESCRIPTION': 'Esta es una aplicacion de demostracion para soporte multilingue',
'LBL_SWITCH': 'Haga clic aquí para cambiar el idioma entre espanol al Ingles',
'CLICK': 'Click',
});
$translateProvider.preferredLanguage('US_EN');
});
zeppelinWebApp.controller('HomeCtrl', function($scope, $translate) {
console.log('hi there');
console.log($translate.use());
$scope.changeLanguage = function(key) {
$translate.use(key);
};
});
Чтобы завершить процесс перевода, я написал фрагмент кода в файле HTML, где находится контроллеропределяется.
<div ng-controller="HomeCtrl as home" data-ng-init="initHome()">
</div>
<h3>{{'GREETING'|translate}}</h3>
<p>{{'DESCRIPTION'|translate}}</p>
<label>{{'LBL_SWITCH'|translate}} </label>
<button ng-click="changeLanguage('SPANISH')">
{{'CLICK'|translate}}</button>
<button ng-click="changeLanguage('US_EN')">
{{'CLICK'|translate}}</button>
Тот же код работает, когда я запускаю его из проекта в виде отдельного файла js и HTML.Но когда я интегрирую его с проектом Angularjs, перевод не происходит при нажатии кнопки.
Это даже не выдает ошибку.
Может ли кто-нибудь помочь с этим?