diff options
Diffstat (limited to 'data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js')
-rw-r--r-- | data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js new file mode 100644 index 0000000..78e4c90 --- /dev/null +++ b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js @@ -0,0 +1,35 @@ +window.browser = window.browser || window.chrome; + +function getMessage(tag) { + return tag.replace(/__MSG_(\w+)__/g, function (_match, v1) { + return v1 ? browser.i18n.getMessage(v1) : null; + }); +} + +function localisePage() { + let elements = document.querySelectorAll("[data-localise]"); + + for (let i in elements) + if (elements.hasOwnProperty(i)) { + let obj = elements[i]; + let tag = obj.getAttribute("data-localise").toString(); + + let msg = getMessage(tag); + + if (msg && msg !== tag) obj.textContent = msg; + } + + let placeholders = document.querySelectorAll("[data-localise-placeholder]"); + + for (let i in placeholders) + if (placeholders.hasOwnProperty(i)) { + let obj = placeholders[i]; + let tag = obj.getAttribute("data-localise-placeholder").toString(); + + let msg = getMessage(tag); + + if (msg && msg !== tag) obj.placeholder = msg; + } +} + +localisePage(); |