32 lines
950 B
JavaScript
32 lines
950 B
JavaScript
|
function replace_i18n(obj, tag, param1) {
|
||
|
var msg = tag.replace(/__MSG_(\w+)__/g, function (match, v1) {
|
||
|
return v1 ? chrome.i18n.getMessage(v1, param1) : "";
|
||
|
});
|
||
|
if (msg != tag) obj.innerHTML = msg;
|
||
|
}
|
||
|
|
||
|
function localizeHtmlPage() {
|
||
|
// Localize using __MSG_***__ data tags
|
||
|
var data = document.querySelectorAll("[data-localize]");
|
||
|
|
||
|
for (var i in data)
|
||
|
if (data.hasOwnProperty(i)) {
|
||
|
var obj = data[i];
|
||
|
var tag = obj.getAttribute("data-localize");
|
||
|
var param1 = obj.getAttribute("data-param1");
|
||
|
replace_i18n(obj, tag, param1);
|
||
|
}
|
||
|
|
||
|
// Localize everything else by replacing all __MSG_***__ tags
|
||
|
var page = document.getElementsByTagName("html");
|
||
|
|
||
|
for (var j = 0; j < page.length; j++) {
|
||
|
var obj = page[j];
|
||
|
var tag = obj.innerHTML.toString();
|
||
|
|
||
|
replace_i18n(obj, tag);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
localizeHtmlPage();
|