/** * LocalizableJs * * A simple, easy to use, DOM-inline, localization library * * @author Björn Wikström * @license Apache License 2.0 * @version 2.0 * @copyright Welcom Web i Göteborg AB 2015 */ !function(t,e){"undefined"!=typeof module?module.exports=e():"function"==typeof define&&"object"==typeof define.amd?define(e):this[t]=e()}("LocalizableJs",function(){var t={},e=null,n=[],r="data-translate-key",a="data-translate-params",o=function(t){return t&&t!=e&&(e=t,c("language")),e},i=function(e){return e&&e!=t&&(t=e,c("dictionaries")),t},c=function(t){for(var e=0;en?e[n]:""})},l=function(n){var r=t[e][n],a=Array.prototype.splice.apply(arguments,[1]);return r?u(r,a):""},s=function(t){Array.prototype.forEach.call(t,function(t){var e=t.getAttribute(r),n=t.getAttribute(a)?t.getAttribute(a).split(","):[];n.unshift(e),t.innerHTML=l.apply(self,n)})},f=function(t,e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.onreadystatechange=function(){4==n.readyState&&200==n.status&&e(n.responseText)},n.send()},p=function(e){var n=e.getElementsByTagName("dictionary");Array.prototype.forEach.call(n,function(e){var n=e.getAttribute("language"),r=e.getElementsByTagName("translation");t[n]={},Array.prototype.forEach.call(r,function(e){var r=e.getAttribute("key");t[n][r]=e.textContent})})};return{read:function(t,n,r){e=n,r=r||document.body,f(t,function(t){var e,n;window.DOMParser?(e=new DOMParser,n=e.parseFromString(t,"application/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async=!1,n.loadXML(t)),p(n),c("dictionaries")})},init:function(n,a,o){e=a,t=n,o=o||document.body;var i=o.querySelectorAll("["+r+"]");s(i)},setAttributeSelectors:function(t,e){r=t,a=e||a},language:o,dictionaries:i,translate:l,translateAll:function(t){t=t||document.body;var e=t.querySelectorAll("["+r+"]");s(e)},addChangeListener:function(t){n.push(t)},removeChangeListener:function(t){for(var e=-1,r=0;r=0&&(delete n[e],n.splice(e,1))}}});