forked from Open-CT/openct-tasks
1 line
5.4 KiB
JavaScript
1 line
5.4 KiB
JavaScript
/*! ng-i18next - 1.0.3 - 2016-11-07 - Copyright (c) 2016 Andre Meyering; Licensed MIT*/!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):t.ngI18next=n()}(this,function(){"use strict";var t=function(){function t(t){var n=this;this.$interpolate=t,this.restrict="A",this.scope=!1,this.controller="NgI18nextController",this.link=function(t,i,e,s){function r(t){if(angular.isDefined(t)){if(l=t.replace(/^\s+|\s+$/g,""),""===l)return o();s.localize(l)}}function o(){if(!u){var n=a.$interpolate(i.html());t.$watch(n,r),u=!0}}var a=n,l="",u=!1;l=e.ngI18next.replace(/^\s+|\s+$/g,""),l.indexOf("__once__")<0?e.$observe("ngI18next",r):(l=l.split("__once__").join(""),s.localize(l,!0)),t.$on("i18nextLanguageChange",function(){s.localize(l)})}}return t.factory=function(){var n=function(n){return new t(n)};return n.$inject=["$interpolate"],n},t}(),n=function(){function t(t){var n=this;this.$compile=t,this.restrict="A",this.scope=!1,this.link=function(t,i,e){var s=i.clone();s.attr("ng-i18next","__once__"+e.boI18next),s.removeAttr("bo-i18next"),i.replaceWith(n.$compile(s)(t))}}return t.factory=function(){var n=function(n){return new t(n)};return n.$inject=["$compile"],n},t}(),i=function(){function t(t,n,i,e,s,r,o){this.$scope=t,this.$element=n,this.$compile=i,this.$parse=e,this.$interpolate=s,this.$sanitize=r,this.$i18next=o}return t.prototype.localize=function(t,n){for(var i=t.split(";"),e=0;e<i.length;++e)t=i[e].trim(),""!==t&&this.parse(t,n)},t.prototype.parse=function(t,n){var i=this,e=this.parseKey(t);this.argsUnregister&&this.argsUnregister(),this.stringUnregister&&this.stringUnregister(),n||(this.argsUnregister=this.$scope.$watch(function(){return e.i18nOptions(i.$scope)},function(){return i.render(e,n)},!0)),this.render(e,n)},t.prototype.parseKey=function(t){var n,i={attr:"text"},e="{}";t=t.trim(),0===t.indexOf("[")&&(n=t.split("]"),i=this.parseOptions(n.shift().substr(1).trim()),t=n.join("]")),0===t.indexOf("(")&&t.indexOf(")")>=0&&(n=t.split(")"),t=n.pop().trim(),e=n.join(")").substr(1).trim());var s={key:t,options:i,i18nOptions:this.$parse(e)};return s},t.prototype.parseOptions=function(t){for(var n={attr:"text"},i=t.split(":"),e=0;e<i.length;++e)"i18next"===i[e]?n[i[e]]=!0:n.attr=i[e];return n},t.prototype.render=function(t,n){if(angular.isDefined(this)&&angular.isDefined(this.$scope)){var i=t.i18nOptions(this.$scope);i.sprintf&&(i.postProcess="sprintf"),"html"===t.options.attr&&angular.forEach(i,function(t,n){var e=void 0,s=this.$sanitize(t),r=Number(t);e="number"!=typeof r||isNaN(r)?s:r,i[n]=e},this);var e=this.$i18next.t(t.key,i);if(angular.isDefined(e)){if("html"===t.options.attr)return this.$element.empty().append(e),void this.$compile(this.$element.contents())(this.$scope);this.stringUnregister&&this.stringUnregister();var s=this.$element.text.bind(this.$element);"text"!==t.options.attr&&(s=this.$element.attr.bind(this.$element,t.options.attr));var r=this.$interpolate(e);n||(this.stringUnregister=this.$scope.$watch(r,s)),s(r(this.$scope))}}},t.$inject=["$scope","$element","$compile","$parse","$interpolate","$sanitize","$i18next"],t}(),e=function(){function t(){}return t.factory=function(){var t=function(t){function n(n,i){var e=angular.isDefined(i)?i:{};return t.t(n,e)}return n.$stateful=!0,n};return t.$inject=["$i18next"],t},t}(),s=function(){function t(t,n){this.$rootScope=t,this.options={},this.tOptions={},this.modules=[],this.localesLoaded=!1,this.translations={},this.i18n=i18next,this.tOptions=n,this.initializeI18next()}return t.prototype.initializeI18next=function(){var t=this;if(i18next)this.i18n=i18next,this.options=i18next.options;else{var n=new Error("[ng-i18next] Can't find i18next and/or i18next options! Please refer to i18next.");this.handleError(n)}i18next.on("initialized",function(n){t.options=n,t.$rootScope.$broadcast("i18nextLanguageChange",t.options.lng)})},t.prototype.t=function(t,n){var i,e,s=angular.isDefined(n),r=s&&angular.isDefined(n.ns),o=angular.isDefined(this.options)&&angular.isDefined(this.options.ns),a=this.options;return angular.isUndefined(r)&&o&&(a=angular.extend({},this.options),a.ns=a.defaultNS),i=s?n:this.tOptions,e=i.lng,this.translate(t,i,s),angular.isDefined(e)?this.translations[e][t]:this.translations.auto[t]},t.prototype.changeLanguage=function(t){var n=this;this.options.lng!==t&&this.i18n.language!==t&&(this.options.lng=t,this.i18n.changeLanguage(t,function(t,i){n.$rootScope.$broadcast("i18nextLanguageChange",n.i18n.language)}))},t.prototype.changeOptions=function(t){angular.isDefined(t)&&(this.options=t)},t.prototype.translate=function(t,n,i){var e=angular.isDefined(n)&&i?n:this.tOptions,s=e.lng||"auto";angular.isUndefined(this.translations[s])&&(this.translations[s]={}),angular.isUndefined(this.i18n)?this.translations[s][t]=angular.isDefined(e.defaultValue)?e.defaultValue:t:(angular.isUndefined(this.translations[s][t])||i)&&(this.translations[s][t]=this.i18n.t(t,e))},t.prototype.handleError=function(t){var n=angular.isDefined(t.message)?t.message:t[0];console.log(n)},t}(),r=function(){function t(){var t=this;this.translationOptions={},this.$get=function(n){if(i18next)return new s(n,t.translationOptions);throw"i18next is not loaded"},this.$get.$inject=["$rootScope"]}return t}();angular.module("jm.i18next",["ng","ngSanitize"]).provider("$i18next",r).directive("ngI18next",t.factory()).directive("boI18next",n.factory()).controller("NgI18nextController",i).filter("i18next",e.factory());var o="jm.i18next";return o}); |