AngularJS i18n

AngularJS internazionalization example.

HTML

<div ng-app="app">
    <div ng-controller="TestCtrl">
                
        <p>{{'AGE' | i18n}}</p>
        <p>{{'SALUTATION' | i18n}}</p>
        
        <button ng-click="switchLang('it')">{{'ITALIAN' | i18n}}</button>
        <button ng-click="switchLang('en')">{{'ENGLISH' | i18n}}</button>

    </div>
</div>

JavaScript

var app = angular.module('app', []);

app.controller('TestCtrl', ['$scope', '$rootScope', '$locale', function ($scope, $rootScope, $locale) {
		console.log('FFFFF');
    console.log($locale);
    $scope.switchLang = function (lang) {
        $rootScope.currentLanguage = lang;
        //alert($locale.id);
    }
                         
}]);

app.filter('i18n', ['$rootScope', function ($rootScope) {
    return function (input) {
        
        var translations = {
            'it': {
                'SALUTATION': 'Saluto',
                'AGE': 'EtĂ ',
                'ITALIAN': 'Italiano',
                'ENGLISH': 'English'
            },
            'en': {
                'SALUTATION': 'Salutation',
                'AGE': 'Age',
                'ITALIAN': 'Italiano',
                'ENGLISH': 'English'
            }
        };

        var currentLanguage = $rootScope.currentLanguage || 'it';
        
        return translations[currentLanguage][input];
    }
}]);