Hi I am new to angularjs world. I am doing registration page and my app contains English and Arabic pages. I am storing English and Arabic words in JSON files. This is my index.html file.
<body ng-app="RoslpApp">
<div ng-controller="RoslpAppController">
<div class="popup">
<label>Language</label>
<select ng-model="selectedItem">
<option>العربية</option>
<option>English</option>
</select>
<button ng-click="clickHandler(selectedItem)">Submit</button>
<ul id="nav">
<li><a ui-sref="Registration">Registration</a></li>
</ul>
<div class="container">
<div ui-view></div>
</div>
</div>
</div>
</body>
This is my main.js file.
var app = angular.module('RoslpApp', ['pascalprecht.translate', 'ui.router']);
app.config(function ($stateProvider, $urlRouterProvider, $urlRouterProvider, $translateProvider, $translatePartialLoaderProvider) {
$stateProvider
.state('Registration', {
url: '/Registration',
templateUrl: 'Registration/Registration.html'
});
$translatePartialLoaderProvider.addPart('Registration');
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: "/scripts/Locales/{part}/{lang}.json"
});
$translateProvider.preferredLanguage('de_EN');
});
app.run(function ($rootScope, $translate) {
$rootScope.$on('$translatePartialLoaderStructureChanged', function () {
$translate.refresh();
});
});
app.controller('RoslpAppController', ['$scope', '$translate', function ($scope, $translate) {
$scope.clickHandler = function (key) {
$translate.use(key);
};
}]);
This is my registrationcontroller.
(function () {
angular.module('RoslpApp').controller('RegistrationController', ['$rootScope', '$translatePartialLoader', '$translate', function ($rootScope, $translatePartialLoader, $translate) {
$translatePartialLoader.addPart('Registration');
var isPartAvailable = $translatePartialLoader.isPartAvailable('Registration');
if (isPartAvailable) {
$translate('Fname').then(function (data) {
$rootScope.PageSubTitle = data;
console.log($rootScope.PageSubTitle);
});
}
}]);
})();
This is my Registration.html. I am posting only one field to save space.
<label>First Name</label>
<input type="text" id="FirstName" class="FirstName" translate="yes" >
This is my de_EN.json file.
{
"Fname":"Fnamein English"
}
I have arabic file also. I am not able to translate Fname in the above code. May I get some help here to fix this. Any help would be appreciated. Thank you.