!function(a,b){"use strict";b.module("jmdobry.angular-i18n-properties",["ng"]),b.module("jmdobry.angular-i18n-properties").provider("I18nService",function(){function a(a){return a=a.toLowerCase(),a.length>=5&&(a=a.substr(0,2)+"_"+a.substr(3).toUpperCase()),a}var c={},d={async:!0,cacheMode:"none",baseUrl:"",lang:navigator.language||navigator.userLanguage,encoding:"UTF-8"};this.config=function(d){b.extend(c,d),c.lang=a(c.lang)},this.config(d),this.$get=["$log","$q","$http",function(d,e,f){function g(a){return"string"==typeof a?a.replace(/^\s*/,""):a}function h(a){var b,c,d,e=[],f="";for(b=parseInt(a.substr(2),16),b>=0&&bc;++c)f+=String.fromCharCode(e[c]);return f}function i(a){if("string"==typeof a){var b,c,d=a.match(m);if(d)for(b=d.length,c=0;b>c;c++)a=a.replace(d[c],h(d[c]));for(c=0;-1!=(c=a.indexOf("\\",c));)"t"==a[c+1]?a=a.substring(0,c)+" "+a.substring(c++ +2):"r"==a[c+1]?a=a.substring(0,c)+"\r"+a.substring(c++ +2):"n"==a[c+1]?a=a.substring(0,c)+"\n"+a.substring(c++ +2):"f"==a[c+1]?a=a.substring(0,c)+"\f"+a.substring(c++ +2):"\\"==a[c+1]?a=a.substring(0,c)+"\\"+a.substring(c++ +2):"{"==a[c+1]||"}"==a[c+1]||(a=a.substring(0,c)+a.substring(c+1)),c++}return a}function j(a,b){var c=b.baseUrl;return b.lang&&(c&&"/"!==c[c.length-1]&&(c+="/"),c=c+b.lang+"/"),c&&"/"!==a[0]&&"/"!==c[c.length-1]&&(c+="/"),c+=a,-1===a.indexOf(".properties")&&(c+=".properties"),c}function k(a,b){return b=b||"default",l[b]||(l[b]={}),l[b][a]}var l={},m=/(\\u.{4})/gi,n=/[(\r\n)\n\r]+/,o=/\\[\s=:]+?/,p=/[=:]|\s+[=:]|\s+(?![=:])/;return{get:function(d,e,f){var g,h,i,j,l,m=b.extend({},c,f||{}),n=a(m.lang)||"default",o=n.split("_");if(l=j=k(d,n),!j&&""!==j&&o.length>1&&(n=o[0],l=j=k(d,n)),j||""===j||(n="default",l=j=k(d,n)),!j&&""!==j)return"";if(e&&e.length){for(var p=0;p0){if("\\"===j[i-1]){var q=l.match(/\\\{[0-9]+}/).toString();throw new Error('Invalid unescaped "\\" at column '+(l.indexOf(q)+q.length-1)+' in property value: "'+l+'"')}j=j.substr(0,i)+e[p]+j.substr(i+h.toString().length)}if(h=j.match(/\\\{|\\}/),h&&"\\"===j[j.indexOf(h.toString())-1])throw new Error('Invalid unescaped "\\" in property value: "'+l+'"')}return j.replace("\\{","{").replace("\\}","}")},parse:function(a){var b,c,e,f,h,j,k,l,m={},q=a.split(n);for(c=0;c1?(k.lang=r[0],p=p.concat(this.load(g,k))):q&&(k.lang="",p=p.concat(this.load(g,k))),p}}}]}),b.module("jmdobry.angular-i18n-properties").filter("i18n",["$log","I18nService",function(a,b){return function(a,c){return b.get(a,c)}}])}(window,window.angular);