summaryrefslogtreecommitdiff
path: root/data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2018-09-13 20:39:48 -0400
committerRuben Rodriguez <ruben@gnu.org>2018-09-13 21:02:13 -0400
commitd26b319fd6f98517cc3421f10bf18698b953e4d2 (patch)
treebc70c4e472a2eaf514d411dba5067d530e5bbea9 /data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js
parentc3b304c51a3386ea09527a479a883253ea35243a (diff)
Updated extensions list for v60
Diffstat (limited to 'data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js')
-rw-r--r--data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js122
1 files changed, 0 insertions, 122 deletions
diff --git a/data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js b/data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js
deleted file mode 100644
index a21fa24..0000000
--- a/data/extensions/spyblock@gnu.org/chrome/content/ui/i18n.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * This file is part of Adblock Plus <https://adblockplus.org/>,
- * Copyright (C) 2006-2017 eyeo GmbH
- *
- * Adblock Plus is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * Adblock Plus is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
- */
-
-"use strict";
-
-// This variable should no longer be necessary once options.js in Chrome
-// accesses ext.i18n directly.
-let {i18n} = ext;
-
-// Getting UI locale cannot be done synchronously on Firefox,
-// requires messaging the background page. For Chrome and Safari,
-// we could get the UI locale here, but would need to duplicate
-// the logic implemented in Utils.appLocale.
-ext.backgroundPage.sendMessage(
- {
- type: "app.get",
- what: "localeInfo"
- },
- (localeInfo) =>
- {
- document.documentElement.lang = localeInfo.locale;
- document.documentElement.dir = localeInfo.bidiDir;
- }
-);
-
-// 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.
-ext.i18n.setElementText = function(element, stringName, args)
-{
- function processString(str, currentElement)
- {
- let match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(str);
- if (match)
- {
- processString(match[1], currentElement);
-
- let e = document.createElement(match[2]);
- processString(match[3], e);
- currentElement.appendChild(e);
-
- processString(match[4], currentElement);
- }
- else
- currentElement.appendChild(document.createTextNode(str));
- }
-
- while (element.lastChild)
- element.removeChild(element.lastChild);
- processString(ext.i18n.getMessage(stringName, args), element);
-};
-
-// Loads i18n strings
-function loadI18nStrings()
-{
- function addI18nStringsToElements(containerElement)
- {
- let elements = containerElement.querySelectorAll("[class^='i18n_']");
- for (let node of elements)
- {
- let args = JSON.parse("[" + node.textContent + "]");
- if (args.length == 0)
- args = null;
-
- let {className} = node;
- if (className instanceof SVGAnimatedString)
- className = className.animVal;
- let stringName = className.split(/\s/)[0].substring(5);
-
- ext.i18n.setElementText(node, stringName, args);
- }
- }
- addI18nStringsToElements(document);
- // Content of Template is not rendered on runtime so we need to add
- // translation strings for each Template documentFragment content
- // individually.
- for (let template of document.querySelectorAll("template"))
- addI18nStringsToElements(template.content);
-}
-
-// Provides a more readable string of the current date and time
-function i18nTimeDateStrings(when)
-{
- let d = new Date(when);
- let timeString = d.toLocaleTimeString();
-
- let now = new Date();
- if (d.toDateString() == now.toDateString())
- return [timeString];
- return [timeString, d.toLocaleDateString()];
-}
-
-// Formats date string to ["YYYY-MM-DD", "mm:ss"] format
-function i18nFormatDateTime(when)
-{
- let date = new Date(when);
- let dateParts = [date.getFullYear(), date.getMonth() + 1, date.getDate(),
- date.getHours(), date.getMinutes()];
-
- dateParts = dateParts.map(
- (datePart) => datePart < 10 ? "0" + datePart : datePart
- );
-
- return [dateParts.splice(0, 3).join("-"), dateParts.join(":")];
-}
-
-// Fill in the strings as soon as possible
-window.addEventListener("DOMContentLoaded", loadI18nStrings, true);