diff --git a/extension/Makefile b/extension/Makefile index a6f68b6..dd6e6cf 100644 --- a/extension/Makefile +++ b/extension/Makefile @@ -2,7 +2,7 @@ DIST := ../dist OUT := $(DIST)/webcat-extension.zip OUT_TEST := $(DIST)/webcat-extension-test.zip -INPUTS := manifest.json dist/bundle.js dist/hooks/content.js icons pages data +INPUTS := manifest.json dist/bundle.js dist/hooks/content.js icons pages data _locales FIXED_MTIME := 198001010000 all: package package-test diff --git a/extension/_locales/en/messages.json b/extension/_locales/en/messages.json new file mode 100644 index 0000000..18246bb --- /dev/null +++ b/extension/_locales/en/messages.json @@ -0,0 +1,23 @@ +{ + "advanced": { + "message": "Advanced" + }, + "hideAdvanced": { + "message": "Hide advanced" + }, + "thisSite": { + "message": "this site" + }, + "webcatVerificationSuccessful": { + "message": "WEBCAT verification successful" + }, + "webcatVerificationFailed": { + "message": "WEBCAT verification failed" + }, + "webcatIsRunning": { + "message": "WEBCAT is running" + }, + "webcatIsUnavailable": { + "message": "WEBCAT unavailable on this site." + } +} diff --git a/extension/_locales/fi/messages.json b/extension/_locales/fi/messages.json new file mode 100644 index 0000000..bdc38c0 --- /dev/null +++ b/extension/_locales/fi/messages.json @@ -0,0 +1,47 @@ +{ + "warningSecurityRisk": { + "message": "Varoitus: Tietoturvariski" + }, + "didNotVerify": { + "message": "Ei varmennettu" + }, + "errorShortDesc": { + "message": "WEBCAT ei voinut varmentaa, että koodi, jonka $1 tarjoili, vastaa allekirjoitettua manifestia, joten sivu estettiin." + }, + "thisSite": { + "message": "tämä sivusto" + }, + "advanced": { + "message": "Lisätietoja" + }, + "hideAdvanced": { + "message": "Piilota lisätiedot" + }, + "goBack": { + "message": "Palaa takaisin" + }, + "whatYouCanDo": { + "message": "Ongelma johtuu sivustosta, ei verkkoyhteydestäsi. Koodi tai ympäristö, jonka sivusto tarjoili, ei vastaa sen kehittäjien kryptografista allekirjoitusta, joten WEBCAT esti sivun pitääkseen sinut turvassa. Voit ilmoittaa ongelmasta sivuston omistajalle, tai jos luulet tämän olevan bugi, raportoida sen $1." + }, + "webcatRepository": { + "message": "WEBCATin tietovarastoon" + }, + "file": { + "message": "Tiedosto: $1" + }, + "errorCode": { + "message": "Virhekoodi: $1" + }, + "webcatVerificationSuccessful": { + "message": "WEBCAT-varmennus onnistui" + }, + "webcatVerificationFailed": { + "message": "WEBCAT-varmennus epäonnistui" + }, + "webcatIsRunning": { + "message": "WEBCAT on käynnissä" + }, + "webcatIsUnavailable": { + "message": "WEBCAT ei käytettävissä tällä sivustolla." + } +} diff --git a/extension/manifest.json b/extension/manifest.json index 649dd27..0ee4142 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -47,6 +47,7 @@ "48": "icons/light/webcat.SVG", "128": "icons/light/webcat.SVG" }, - "default_title": "WEBCAT unavailable on this site." - } + "default_title": "__MSG_webcatIsUnavailable__" + }, + "default_locale": "en" } diff --git a/extension/pages/error.html b/extension/pages/error.html index f5550ea..7338bd8 100644 --- a/extension/pages/error.html +++ b/extension/pages/error.html @@ -11,41 +11,58 @@ - Warning: Security Risk + Warning: Security Risk
-

Did not verify

+

Did not verify

-

+

WEBCAT could not verify that the code served by - this site matches its signed manifest, so - the page was blocked. + this site matches + its signed manifest, so the page was blocked.

- - + +
diff --git a/extension/pages/error.js b/extension/pages/error.js index aec47ab..0d0e552 100644 --- a/extension/pages/error.js +++ b/extension/pages/error.js @@ -1,10 +1,28 @@ document.addEventListener("DOMContentLoaded", () => { + function localize(container) { + container.querySelectorAll("[data-i18n]").forEach((el) => { + const substitutions = Array.from(el.children).map( + (child) => child.outerHTML, + ); + const msg = browser.i18n.getMessage( + el.getAttribute("data-i18n"), + substitutions, + ); + if (msg === "") { + return; + } + el.innerHTML = msg; + localize(el); + }); + } + localize(document); + const params = new URLSearchParams(location.hash.slice(1)); const code = params.get("code") || "UNKNOWN"; const host = params.get("host") || ""; const file = params.get("file") || ""; - setText("error-host", host || "this site"); + setText("error-host", host || browser.i18n.getMessage("thisSite")); setText("debug-code", code); if (file) { @@ -18,8 +36,8 @@ document.addEventListener("DOMContentLoaded", () => { advancedPanel.hidden = !advancedPanel.hidden; advancedButton.setAttribute("aria-expanded", String(!advancedPanel.hidden)); advancedButton.textContent = advancedPanel.hidden - ? "Advanced" - : "Hide advanced"; + ? browser.i18n.getMessage("advanced") + : browser.i18n.getMessage("hideAdvanced"); }); // The error page took a history slot diff --git a/extension/src/webcat/ui.ts b/extension/src/webcat/ui.ts index d520913..2db7aae 100644 --- a/extension/src/webcat/ui.ts +++ b/extension/src/webcat/ui.ts @@ -19,7 +19,10 @@ export function setIcon(tabId: number) { tabId: tabId, path: `icons/${theme}/webcat.SVG`, }); - browser.pageAction.setTitle({ tabId, title: "WEBCAT is running" }); + browser.pageAction.setTitle({ + tabId, + title: browser.i18n.getMessage("webcatIsRunning"), + }); } export function setOKIcon(tabId: number, delegation?: string) { @@ -43,7 +46,7 @@ export function setOKIcon(tabId: number, delegation?: string) { path: `icons/${theme}/webcat-ok.SVG`, }); - let message = "WEBCAT verification successful"; + let message = browser.i18n.getMessage("webcatVerificationSuccessful"); if (delegation) { message += ` (${delegation})`; } @@ -69,7 +72,7 @@ export function setErrorIcon(tabId: number) { }); browser.pageAction.setTitle({ tabId: tabId, - title: "WEBCAT verification failed", + title: browser.i18n.getMessage("webcatVerificationFailed"), }); }