Index: chrome/content/ui/i18n.js |
=================================================================== |
deleted file mode 100644 |
--- a/chrome/content/ui/i18n.js |
+++ /dev/null |
@@ -1,154 +0,0 @@ |
-/* |
- * This file is part of Adblock Plus <http://adblockplus.org/>, |
- * Copyright (C) 2006-2014 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/>. |
- */ |
- |
-var i18n; |
- |
-if (typeof ext != "undefined") |
-{ |
- i18n = ext.i18n; |
- |
- document.documentElement.lang = ext.i18n.getMessage("@@ui_locale").replace(/_/g, "-"); |
- document.documentElement.dir = ext.i18n.getMessage("@@bidi_dir"); |
-} |
-else |
-{ |
- // Using Firefox' approach on i18n instead |
- |
- // Randomize URI to work around bug 719376 |
- var pageName = location.pathname.replace(/.*\//, '').replace(/\..*?$/, ''); |
- var stringBundle = Services.strings.createBundle("chrome://adblockplus/locale/" + pageName + |
- ".properties?" + Math.random()); |
- |
- function getI18nMessage(key) |
- { |
- return { |
- "message": stringBundle.GetStringFromName(key) |
- }; |
- } |
- |
- i18n = (function() |
- { |
- function getText(message, args) |
- { |
- var text = message.message; |
- var placeholders = message.placeholders; |
- |
- if (!args || !placeholders) |
- return text; |
- |
- for (var key in placeholders) |
- { |
- var content = placeholders[key].content; |
- if (!content) |
- continue; |
- |
- var index = parseInt(content.slice(1), 10); |
- if (isNaN(index)) |
- continue; |
- |
- var replacement = args[index - 1]; |
- if (typeof replacement === "undefined") |
- continue; |
- |
- text = text.split("$" + key + "$").join(replacement); |
- } |
- return text; |
- } |
- |
- return { |
- getMessage: function(key, args) |
- { |
- try{ |
- var message = getI18nMessage(key); |
- return getText(message, args); |
- } |
- catch(e) |
- { |
- Cu.reportError(e); |
- return "Missing translation: " + key; |
- } |
- } |
- }; |
- })(); |
- |
- var Utils = require("utils").Utils; |
- document.documentElement.lang = Utils.appLocale; |
- document.documentElement.dir = Utils.chromeRegistry.isLocaleRTL("adblockplus") ? "rtl" : "ltr"; |
-} |
- |
-// 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. |
-i18n.setElementText = function(element, stringName, arguments) |
-{ |
- 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(i18n.getMessage(stringName, arguments), element); |
-} |
- |
-// Loads i18n strings |
-function loadI18nStrings() |
-{ |
- var nodes = document.querySelectorAll("[class^='i18n_']"); |
- for(var i = 0; i < nodes.length; i++) |
- { |
- var node = nodes[i]; |
- var arguments = JSON.parse("[" + node.textContent + "]"); |
- if (arguments.length == 0) |
- arguments = null; |
- |
- var className = node.className; |
- if (className instanceof SVGAnimatedString) |
- className = className.animVal; |
- var stringName = className.split(/\s/)[0].substring(5); |
- |
- i18n.setElementText(node, stringName, arguments); |
- } |
-} |
- |
-// Provides a more readable string of the current date and time |
-function i18n_timeDateStrings(when) |
-{ |
- var d = new Date(when); |
- var timeString = d.toLocaleTimeString(); |
- |
- var now = new Date(); |
- if (d.toDateString() == now.toDateString()) |
- return [timeString]; |
- else |
- return [timeString, d.toLocaleDateString()]; |
-} |
- |
-// Fill in the strings as soon as possible |
-window.addEventListener("DOMContentLoaded", loadI18nStrings, true); |