diff options
author | SimonBrazell <simon@brazell.com.au> | 2021-01-12 20:29:26 +1100 |
---|---|---|
committer | SimonBrazell <simon@brazell.com.au> | 2021-01-12 20:29:26 +1100 |
commit | bd783485a8063f470ae2aeb61de7d95c8091e1aa (patch) | |
tree | 2f442682aa73a7288764e66186fa2022b4ac0a42 /src/assets/javascripts | |
parent | Merge pull request #157 from TotalCaesar659/patch-1 (diff) | |
download | libredirect-bd783485a8063f470ae2aeb61de7d95c8091e1aa.zip |
Translate "Random instance (none selected)" (#158)
Diffstat (limited to 'src/assets/javascripts')
-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(); |