AngularJS Example:
HTML
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<div ng-app="myApp" ng-controller="ctrl">
<header>
<button ng-click="toggleLang()">Toggle Language</button>
<button ng-click="reloadLang()">Reload Lang</button>
<h1>{{ 'HEADLINE' | translate }}</h1>
<h3>{{ 'SUB_HEADLINE' | translate }}</h3>
<p>By <a href="http://twitter.com/PascalPrecht">{{ 'AUTHOR_NAME' | translate }}</a> - <a href="http://github.com/PascalPrecht/ng-translate">{{ 'GITHUB_LINK_TEXT' | translate }}</a></p>
</header>
<section>
<h2>{{ 'GETTING_STARTED_HEADLINE' | translate }}</h2>
<h3>{{ 'HEADLINE_FILTER' | translate}}</h3>
<p>{{ 'INFO_TEXT_TRANSLATE_FILTER' | translate }}</p>
<h5>{{ 'HEADLINE_USAGE' | translate}}</h5>
<pre><code ng-non-bindable><ANY>{{ 'TRANSLATION_ID' | translate }}</ANY></code></pre>
<h4>{{ 'HEADLINE_FILTER_DYN_VALUES' | translate }}</h4>
<p>{{ 'INFO_TEXT_TRANSLATE_FILTER_2' | translate }}</p>
<p>{{ 'INFO_TEXT_TRANSLATE_FILTER_3' | translate }}</p>
<pre><code ng-non-bindable>$translateProvider.translations({
'T_ID': 'Lorem ipsum {{value}}'
});</code></pre>
<p>{{ 'INFO_TEXT_TRANSLATE_FILTER_4' | translate }}</p>
<pre><code ng-non-bindable>// Passing values via string expression
<ANY>{{ 'TD_ID' | translate:'{"value": 3}' }}</ANY>
// Passing values via scope object
<ANY>{{ 'TD_ID' | translate:anyObjectOnScope }}</ANY>
</code></pre>
<h3>{{ 'HEADLINE_DIRECTIVE' | translate }}</h3>
<p>{{ 'INFO_TEXT_TRANSLATE_DIRECTIVE' | translate }}</p>
<pre><code ng-non-bindable><ANY translate>TRANSLATION_ID</ANY> // Use content as translation id
<ANY translate="TRANSLATION_ID"></ANY> // Pass translation id as attribute value
<ANY translate>{{translationIdOnScope}}</ANY> // Use content as...
JavaScript
// Including ngCookies module
(function(m,f,l){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,c){var b={},g={},h,i=!1,j=f.copy,k=f.isUndefined;c.addPollFn(function(){var a=c.cookies();h!=a&&(h=a,j(a,g),j(a,b),i&&d.$apply())})();i=!0;d.$watch(function(){var a,e,d;for(a in g)k(b[a])&&c.cookies(a,l);for(a in b)e=b[a],f.isString(e)?e!==g[a]&&(c.cookies(a,e),d=!0):f.isDefined(g[a])?b[a]=g[a]:delete b[a];if(d)for(a in e=c.cookies(),b)b[a]!==e[a]&&(k(e[a])?delete b[a]:b[a]=e[a])});return b}]).factory("$cookieStore",
["$cookies",function(d){return{get:function(c){return f.fromJson(d[c])},put:function(c,b){d[c]=f.toJson(b)},remove:function(c){delete d[c]}}}])})(window,window.angular);
// Including ngTranslate
angular.module("ngTranslate",["ng","ngCookies"]).run(["$translate","$COOKIE_KEY","$cookieStore",function(n,t,r){n.rememberLanguage()&&(r.get(t)?n.uses(r.get(t)):r.put(t,n.uses()))}]),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)}}]),angular.module("ngTranslate").constant("$COOKIE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("ngTranslate").provider("$translate",function(){var n,t,r={},a=!1;this.translations=function(n,t){if(!n&&!t)return r;if(n&&!t){if(angular.isString(n))return r[n];r=n}else r[n]=t},this.setLoader=function(n){t=n},this.uses=function(t){if(!t)return n;if(!r[t])throw Error("$translateProvider couldn't find translationTable for langKey:...