-
Notifications
You must be signed in to change notification settings - Fork 5
/
i18ng.min.js
1 lines (1 loc) · 1.86 KB
/
i18ng.min.js
1
angular.module("i18ng",["ng"]),angular.module("i18ng").provider("i18ng",function(){"use strict";var a=window.i18n,b=[];this.init=function(){b=Array.prototype.slice.call(arguments)},this.$get=["$rootScope",function(c){var d=b[0],e=b[1]||function(){};return"function"==typeof d&&(e=d,d={}),a.init.call(a,d,function(b){a.t=b,c.$$phase||c.$digest(),c.$broadcast("i18ngInitComplete"),e.apply(this,arguments)}),a}]}).filter("t",["i18ng",function(){"use strict";return function(){return i18n.t.apply(null,arguments)}}]).directive("i18ng",["i18ng","$parse",function(a,b){"use strict";function c(a,b,c){angular.forEach(c,function(d,f){e(a,b,c,f)})}function d(a,b){var c,d=a.children().detach(),e=0;for(a.empty();c=g.exec(b);){var f=c[1]||c[3],h=c[2],i=b.indexOf(c[0]),j=d.filter('[i18ng-tag-name="'+f+'"]:first');h&&j.html(h),a.append(b.substring(e,i),j),e=i+c[0].length}a.append(b.substring(e))}function e(b,c,e,f){var g=e[f].getKey||angular.noop,h=e[f].getOpts||angular.noop,i=g(b)||"",j=a.t(i,h(b));"_html"==f?c.html(j):"_text"==f?c.text(j):"_nested_html"==f?d(c,j):c.attr(f,j)}var f=/^i18ng(.+?)(Opts)?$/,g=/<#([A-Za-z0-9\-\_]+)>([^<]+)<\/[A-Za-z0-9\-\_]+>|<([A-Za-z0-9\-\_]+)>/g;return{restrict:"A",link:function(a,d,g){var h={},i=e.bind(null,a,d,h),j=["opts","html","nestedhtml","tagname"];if(angular.forEach(g,function(c,d){var e=d.match(f);if(e&&e[1]&&!~j.indexOf(e[1].toLowerCase())){var g=e[1].toLowerCase(),k=e[2]?"getOpts":"getKey",l=e[2]?"$watchCollection":"$watch";h[g]||(h[g]={}),h[g][k]=b(c),a[l](function(){return h[g][k](a)},function(){i(g)})}}),g.i18ng){var k="i18ngHtml"in g?"_html":"i18ngNestedHtml"in g?"_nested_html":"_text",l=!!g.i18ngOpts;h[k]={getKey:b(g.i18ng),getOpts:l?b(g.i18ngOpts):null},a.$watch(function(){return h[k].getKey(a)},function(){i(k)}),l&&a.$watchCollection(function(){return h[k].getOpts(a)},function(){i(k)})}a.$on("i18ngInitComplete",function(){c(a,d,h)}),c(a,d,h)}}}]);