Index: html/static/js/firstRun.js |
=================================================================== |
--- a/html/static/js/firstRun.js |
+++ b/html/static/js/firstRun.js |
@@ -103,10 +103,9 @@ |
{ |
// Map message ID to HTML element ID |
var mapping = { |
+ "aa-title": "first-run-aa-title", |
+ "aa-text": "first-run-aa-text", |
"title-main": "first-run-title-install", |
- "i18n-features-heading": "first-run-features-heading", |
- "i18n-feature-betterSurfing": "first-run-feature-betterSurfing", |
- "i18n-feature-videoAds": "first-run-feature-videoAds", |
"share-text1": "first-run-share1", |
"share-text2": "first-run-share2", |
"share-donate": "first-run-share2-donate", |
@@ -117,7 +116,7 @@ |
for (var i in mapping) |
{ |
var element = document.getElementById(i); |
- element.innerText = AdblockPlus.getMessage("first-run", mapping[i]); |
+ setElementText(element, AdblockPlus.getMessage("first-run", mapping[i])); |
} |
} |
@@ -131,9 +130,64 @@ |
initTranslations(); |
initSocialLinks(variant); |
+ setLinks("aa-text", getDocLink("acceptable_ads_criteria"), "index.html"); |
var donateLink = document.getElementById("share-donate"); |
donateLink.href = getDocLink("donate") + "&variant=" + variant; |
} |
+// Inserts i18n strings into matching elements. Any inner HTML already in the |
+// element is parsed as JSON and used as parameters to substitute into |
+// placeholders in the i18n message. |
+setElementText = function(element, elementHtml) |
+{ |
+ function processString(str, element) |
+ { |
+ var match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(str); |
+ if (match) |
+ { |
+ processString(match[1], element); |
+ |
+ var e = document.createElement(match[2]); |
+ processString(match[3], e); |
+ element.appendChild(e); |
+ |
+ processString(match[4], element); |
+ } |
+ else |
+ element.appendChild(document.createTextNode(str)); |
+ } |
+ |
+ while (element.lastChild) |
+ element.removeChild(element.lastChild); |
+ processString(elementHtml, element); |
+} |
+ |
+ |
+function setLinks(id) |
+{ |
+ var element = document.getElementById(id); |
+ if (!element) |
+ { |
+ return; |
+ } |
+ |
+ var links = element.getElementsByTagName("a"); |
+ |
+ for (var i = 0; i < links.length && i < arguments.length - 1; i++) |
+ { |
+ var curArg = arguments[i + 1]; |
+ if (typeof curArg == "string") |
+ { |
+ links[i].href = curArg; |
+ links[i].setAttribute("target", "_blank"); |
+ } |
+ else if (typeof curArg == "function") |
+ { |
+ links[i].href = "javascript:void(0);"; |
+ links[i].addEventListener("click", curArg, false); |
+ } |
+ } |
+} |
+ |
window.addEventListener("load", init); |