diff options
Diffstat (limited to 'src/assets/javascripts/localise.js')
-rw-r--r-- | src/assets/javascripts/localise.js | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/assets/javascripts/localise.js b/src/assets/javascripts/localise.js index cbe5c191..78e4c907 100644 --- a/src/assets/javascripts/localise.js +++ b/src/assets/javascripts/localise.js @@ -1,19 +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() { - var data = document.querySelectorAll("[data-localise]"); + let elements = document.querySelectorAll("[data-localise]"); - for (var i in data) - if (data.hasOwnProperty(i)) { - var obj = data[i]; - var tag = obj.getAttribute("data-localise").toString(); + for (let i in elements) + if (elements.hasOwnProperty(i)) { + let obj = elements[i]; + let tag = obj.getAttribute("data-localise").toString(); - var msg = tag.replace(/__MSG_(\w+)__/g, function (_match, v1) { - return v1 ? browser.i18n.getMessage(v1) : null; - }); + 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(); |