From 125a1a2937d77fab775647d5df6f78387bb8dc42 Mon Sep 17 00:00:00 2001 From: hackademix Date: Thu, 25 Jul 2019 22:15:40 +0200 Subject: Work-around for browser.i18n.getMessage() API in content scripts giving away browser's real locale (Tor issue #31287). --- src/content/content.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/content/content.js') diff --git a/src/content/content.js b/src/content/content.js index dc493c2..e7fb331 100644 --- a/src/content/content.js +++ b/src/content/content.js @@ -1,6 +1,16 @@ 'use strict'; // debug = () => {}; // REL_ONLY -var _ = browser.i18n.getMessage; +function _(...args) { + let fakeLang = navigator.language === "en-US" && + browser.i18n.getUILanguage() !== "en-US"; + return (_ = (template, ...substitutions) => { + let [key, defTemplate] = template.split("|"); + return fakeLang + ? (defTemplate || key).replace(/\$([1-9])/g, + (m, p) => substitutions[parseInt(p) - 1] || "$" + p) + : browser.i18n.getMessage(template, ...substitutions); + })(...args); +} function createHTMLElement(name) { return document.createElementNS("http://www.w3.org/1999/xhtml", name); -- cgit v1.2.3