AngularJS Example:
by Clay Anderson
HTML
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<div ng-app="myApp">
<div translate="AUTHOR_NAME"></div>
<div ng-controller="MyController">
<button ng-click="changeToEnglish()">
Change to english
</button>
<button ng-click="changeToGerman()">
Change to german
</button>
<div>
From controller: {{translatedText}}
</div>
</div>
</div>
JavaScript
// Including ngTranslate
angular.module("ngTranslate",["ng"]).config(["$provide",function(n){$TranslateProvider=function(){var n,t={};this.translations=function(n,r){if(!n&&!r)return t;if(n&&!r){if(angular.isString(n))return t[n];t=n}else t[n]=r},this.uses=function(r){if(!r)return n;if(!t[r])throw Error("$translateProvider couldn't find translationTable for langKey: '"+r+"'");n=r},this.$get=["$interpolate","$log",function(r,a){return $translate=function(e,i){var l=n?t[n][e]:t[e];return l?r(l)(i):(a.warn("Translation for "+e+" doesn't exist"),e)}}]},n.provider("$translate",$TranslateProvider)}]),angular.module("ngTranslate").directive("translate",["$filter","$interpolate",function(n,t){var r=n("translate");return{restrict:"A",scope:!0,link:function(n,a,e){e.$observe("translate",function(r){n.translationId=angular.equals(r,"")?t(a.text())(n.$parent):r}),e.$observe("values",function(t){n.interpolateParams=t}),n.$watch("translationId + interpolateParams",function(){a.html(r(n.translationId,n.interpolateParams))})}}}]),angular.module("ngTranslate").filter("translate",["$parse","$translate",function(n,t){return function(r,a){return angular.isObject(a)||(a=n(a)()),t(r,a)}}]);
// Configuring your module, asking for ngTranslate as dependency
var app = angular.module('myApp', ['ngTranslate']);
// Configuring $translateProvider
app.config(['$translateProvider', function ($translateProvider) {
// Simply register translation table as object hash
$translateProvider.translations({
'HEADLINE': 'Introducing ngTranslate',
'SUB_HEADLINE': 'Translations for your Angular Apps!',
'AUTHOR_NAME': 'Pascal Precht',
'GITHUB_LINK_TEXT': 'View source on GitHub'
});
// Simply register translation table as object hash
$translateProvider.translations('en', {
'HEADLINE': 'ENIntroducing ngTranslate',
'SUB_HEADLINE': 'ENTranslations for your Angular Apps!',
'AUTHOR_NAME': 'ENPascal Precht',
...