Work-around for browser.i18n.getMessage() API in content scripts giving away browser's real locale (Tor issue #31287).

This commit is contained in:
hackademix 2019-07-25 22:15:40 +02:00
parent 6ef9b4e232
commit 125a1a2937
2 changed files with 14 additions and 1 deletions

View File

@ -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);

View File

@ -4,6 +4,8 @@ body {
font-family: sans-serif;
font-size: 12px;
color: #222;
margin: 0px;
padding: 8px;
}
#header {
@ -84,6 +86,7 @@ body {
.choices label {
display: block;
padding-bottom: .5em;
word-break: break-all;
}
#buttons {