[Pkg-mozext-commits] [adblock-plus-element-hiding-helper] 358/483: Turned Element Hiding Helper into a restartless extension

David Prévot taffit at moszumanska.debian.org
Thu Jan 22 21:41:56 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository adblock-plus-element-hiding-helper.

commit d042b21630fe7874cc3aa0fddb908b8dab9c8396
Author: Wladimir Palant <trev at adblockplus.org>
Date:   Wed Jan 4 13:41:25 2012 +0100

    Turned Element Hiding Helper into a restartless extension
    
    --HG--
    rename : defaults/preferences/elemhidehelper.js => defaults/preferences/prefs.js
---
 bootstrap.js                                       |  66 ++++
 chrome.manifest                                    |  15 +-
 chrome/content/composer.js                         |   3 +-
 chrome/content/keySelector.js                      | 198 ++++++++++
 chrome/content/overlay.js                          |  31 --
 chrome/content/overlay.xul                         |  18 +-
 chrome/content/prefLoader.js                       |  69 ++++
 chrome/locale/ar/global.properties                 |   2 +
 chrome/locale/ar/overlay.dtd                       |   4 -
 chrome/locale/bg/global.properties                 |   8 +-
 chrome/locale/bg/overlay.dtd                       |   4 -
 chrome/locale/ca/global.properties                 |   2 +
 chrome/locale/ca/overlay.dtd                       |   4 -
 chrome/locale/cs/global.properties                 |   8 +-
 chrome/locale/cs/overlay.dtd                       |   4 -
 chrome/locale/da/global.properties                 |   2 +
 chrome/locale/da/overlay.dtd                       |   4 -
 chrome/locale/de/global.properties                 |   8 +-
 chrome/locale/de/overlay.dtd                       |   4 -
 chrome/locale/el/global.properties                 |   8 +-
 chrome/locale/el/overlay.dtd                       |   4 -
 chrome/locale/en-GB/global.properties              |   8 +-
 chrome/locale/en-GB/overlay.dtd                    |   4 -
 chrome/locale/en-US/global.properties              |   8 +-
 chrome/locale/en-US/overlay.dtd                    |   6 -
 chrome/locale/es-AR/global.properties              |   8 +-
 chrome/locale/es-AR/overlay.dtd                    |   4 -
 chrome/locale/es-ES/global.properties              |   8 +-
 chrome/locale/es-ES/overlay.dtd                    |   4 -
 chrome/locale/es-MX/global.properties              |   8 +-
 chrome/locale/es-MX/overlay.dtd                    |   4 -
 chrome/locale/et/global.properties                 |   2 +
 chrome/locale/et/overlay.dtd                       |   4 -
 chrome/locale/eu/global.properties                 |   2 +
 chrome/locale/eu/overlay.dtd                       |   4 -
 chrome/locale/fa/global.properties                 |   2 +
 chrome/locale/fa/overlay.dtd                       |   4 -
 chrome/locale/fi/global.properties                 |   2 +
 chrome/locale/fi/overlay.dtd                       |   4 -
 chrome/locale/fr/global.properties                 |   8 +-
 chrome/locale/fr/overlay.dtd                       |   4 -
 chrome/locale/gl/global.properties                 |   2 +
 chrome/locale/gl/overlay.dtd                       |   4 -
 chrome/locale/he/global.properties                 |   8 +-
 chrome/locale/he/overlay.dtd                       |   4 -
 chrome/locale/hr/global.properties                 |   2 +
 chrome/locale/hr/overlay.dtd                       |   4 -
 chrome/locale/hu/global.properties                 |   8 +-
 chrome/locale/hu/overlay.dtd                       |   4 -
 chrome/locale/hy/global.properties                 |   8 +-
 chrome/locale/hy/overlay.dtd                       |   4 -
 chrome/locale/it/global.properties                 |   8 +-
 chrome/locale/it/overlay.dtd                       |   4 -
 chrome/locale/ja/global.properties                 |   8 +-
 chrome/locale/ja/overlay.dtd                       |   4 -
 chrome/locale/kk/global.properties                 |   8 +-
 chrome/locale/kk/overlay.dtd                       |   4 -
 chrome/locale/ko/global.properties                 |   8 +-
 chrome/locale/ko/overlay.dtd                       |   4 -
 chrome/locale/lt/global.properties                 |   8 +-
 chrome/locale/lt/overlay.dtd                       |   4 -
 chrome/locale/nb-NO/global.properties              |   2 +
 chrome/locale/nb-NO/overlay.dtd                    |   4 -
 chrome/locale/nl/global.properties                 |   8 +-
 chrome/locale/nl/overlay.dtd                       |   4 -
 chrome/locale/pl/global.properties                 |   8 +-
 chrome/locale/pl/overlay.dtd                       |   4 -
 chrome/locale/pt-BR/global.properties              |   8 +-
 chrome/locale/pt-BR/overlay.dtd                    |   4 -
 chrome/locale/pt-PT/global.properties              |   8 +-
 chrome/locale/pt-PT/overlay.dtd                    |   4 -
 chrome/locale/ro/global.properties                 |   8 +-
 chrome/locale/ro/overlay.dtd                       |   4 -
 chrome/locale/ru/global.properties                 |   8 +-
 chrome/locale/ru/overlay.dtd                       |   4 -
 chrome/locale/sk/global.properties                 |   8 +-
 chrome/locale/sk/overlay.dtd                       |   4 -
 chrome/locale/sl/global.properties                 |   8 +-
 chrome/locale/sl/overlay.dtd                       |   4 -
 chrome/locale/sq/global.properties                 |   2 +
 chrome/locale/sq/overlay.dtd                       |   4 -
 chrome/locale/sr/global.properties                 |   8 +-
 chrome/locale/sr/overlay.dtd                       |   4 -
 chrome/locale/sv-SE/global.properties              |   2 +
 chrome/locale/sv-SE/overlay.dtd                    |   4 -
 chrome/locale/th/global.properties                 |   8 +-
 chrome/locale/th/overlay.dtd                       |   4 -
 chrome/locale/tr/global.properties                 |   8 +-
 chrome/locale/tr/overlay.dtd                       |   4 -
 chrome/locale/uk/global.properties                 |   8 +-
 chrome/locale/uk/overlay.dtd                       |   4 -
 chrome/locale/vi/global.properties                 |   2 +
 chrome/locale/vi/overlay.dtd                       |   4 -
 chrome/locale/zh-CN/global.properties              |   8 +-
 chrome/locale/zh-CN/overlay.dtd                    |   4 -
 chrome/locale/zh-TW/global.properties              |   8 +-
 chrome/locale/zh-TW/overlay.dtd                    |   4 -
 .../preferences/{elemhidehelper.js => prefs.js}    |   0
 metadata                                           |  11 +-
 modules/Aardvark.jsm                               |  21 +-
 modules/AppIntegration.jsm                         | 439 ++++++++++++---------
 modules/Prefs.jsm                                  |  27 +-
 102 files changed, 718 insertions(+), 644 deletions(-)

diff --git a/bootstrap.js b/bootstrap.js
new file mode 100644
index 0000000..701dc71
--- /dev/null
+++ b/bootstrap.js
@@ -0,0 +1,66 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Element Hiding Helper for Adblock Plus.
+ *
+ * The Initial Developer of the Original Code is
+ * Wladimir Palant.
+ * Portions created by the Initial Developer are Copyright (C) 2006-2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import("resource://gre/modules/Services.jsm");
+
+function install(params, reason) {}
+function uninstall(params, reason) {}
+
+function startup(params, reason)
+{
+  if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0)
+    Components.manager.addBootstrappedManifestLocation(params.installPath);
+
+  let scope = {};
+  Services.scriptloader.loadSubScript("chrome://elemhidehelper/content/prefLoader.js", scope);
+  scope.loadDefaultPrefs(params.installPath);
+
+  Cu.import("chrome://elemhidehelper-modules/content/AppIntegration.jsm");
+  AppIntegration.startup();
+}
+
+function shutdown(params, reason)
+{
+  if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0)
+    Components.manager.removeBootstrappedManifestLocation(params.installPath);
+
+  AppIntegration.shutdown();
+  Cu.unload("chrome://elemhidehelper-modules/content/AppIntegration.jsm");
+
+  let aboutWnd = Services.wm.getMostRecentWindow("ehh:about");
+  if (aboutWnd)
+    aboutWnd.close();
+
+  while (true)
+  {
+    let helperWnd = Services.wm.getMostRecentWindow("ehh:composer");
+    if (!helperWnd)
+      break;
+    helperWnd.close();
+  }
+}
diff --git a/chrome.manifest b/chrome.manifest
index 8c92fd2..8985396 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -1,13 +1,4 @@
-overlay   chrome://adblockplus/content/ui/overlayGeneral.xul chrome://elemhidehelper/content/overlay.xul
-content   elemhidehelper jar:chrome/elemhidehelper.jar!/content/
-skin      elemhidehelper classic/1.0 jar:chrome/elemhidehelper.jar!/skin/
-locale    elemhidehelper {{LOCALE}} jar:chrome/elemhidehelper.jar!/locale/{{LOCALE}}/
+content   elemhidehelper chrome/content/
+skin      elemhidehelper classic/1.0 chrome/skin/
+locale    elemhidehelper {{LOCALE}} chrome/locale/{{LOCALE}}/
 content   elemhidehelper-modules modules/
-
-# Component registration
-component {2d53b96c-1dd2-11b2-94ad-dedbdb99852f} components/Initializer.js
-contract @adblockplus.org/ehh/startup;1 {2d53b96c-1dd2-11b2-94ad-dedbdb99852f}
-category profile-after-change @adblockplus.org/ehh/startup;1 @adblockplus.org/ehh/startup;1
-
-# Hack to allow the icon to be accessed via chrome URL
-skin      elemhidehelper-icon classic/1.0 ./
diff --git a/chrome/content/composer.js b/chrome/content/composer.js
index 7e5e06a..289637c 100644
--- a/chrome/content/composer.js
+++ b/chrome/content/composer.js
@@ -36,8 +36,7 @@ var stylesheetURL;
 var previewStyle = null;
 var doc;
 
-let baseURI = Cc["@adblockplus.org/ehh/startup;1"].getService(Ci.nsIURI);
-Cu.import(baseURI.spec + "Prefs.jsm");
+Cu.import("chrome://elemhidehelper-modules/content/Prefs.jsm");
 
 let abpURL = Cc["@adblockplus.org/abp/public;1"].getService(Ci.nsIURI);
 Cu.import(abpURL.spec);
diff --git a/chrome/content/keySelector.js b/chrome/content/keySelector.js
new file mode 100644
index 0000000..f9a3fff
--- /dev/null
+++ b/chrome/content/keySelector.js
@@ -0,0 +1,198 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Element Hiding Helper for Adblock Plus.
+ *
+ * The Initial Developer of the Original Code is
+ * Wladimir Palant.
+ * Portions created by the Initial Developer are Copyright (C) 2006-2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import("resource://gre/modules/Services.jsm");
+
+/**
+ * Translation table for key modifier names.
+ */
+let validModifiers =
+{
+  ACCEL: "control",
+  CTRL: "control",
+  CONTROL: "control",
+  SHIFT: "shift",
+  ALT: "alt",
+  META: "meta",
+  __proto__: null
+};
+
+let existingShortcuts = null;
+
+/**
+ * Sets the correct value of validModifiers.ACCEL.
+ */
+function initAccelKey()
+{
+  try
+  {
+    let accelKey = Services.prefs.getIntPref("ui.key.accelKey");
+    if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_CONTROL)
+      validModifiers.ACCEL = "control";
+    else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_ALT)
+      validModifiers.ACCEL = "alt";
+    else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_META)
+      validModifiers.ACCEL = "meta";
+  }
+  catch(e)
+  {
+    Cu.reportError(e);
+  }
+}
+
+/**
+ * Finds out which keyboard shortcuts are already taken in an application window,
+ * converts them to canonical form in the existingShortcuts variable.
+ */
+function initExistingShortcuts(/**ChromeWindow*/ window)
+{
+  existingShortcuts = {__proto__: null};
+
+  let keys = window.document.getElementsByTagName("key");
+  for (let i = 0; i < keys.length; i++)
+  {
+    let key = keys[i];
+    let keyData =
+    {
+      shift: false,
+      meta: false,
+      alt: false,
+      control: false,
+      char: null,
+      code: null
+    };
+
+    let keyChar = key.getAttribute("key");
+    if (keyChar && keyChar.length == 1)
+      keyData.char = keyChar.toUpperCase();
+
+    let keyCode = key.getAttribute("keycode");
+    if (keyCode && "DOM_" + keyCode.toUpperCase() in Ci.nsIDOMKeyEvent)
+      keyData.code = Ci.nsIDOMKeyEvent["DOM_" + keyCode.toUpperCase()];
+
+    if (!keyData.char && !keyData.code)
+      continue;
+
+    let keyModifiers = key.getAttribute("modifiers");
+    if (keyModifiers)
+      for each (let modifier in keyModifiers.toUpperCase().match(/\w+/g))
+        if (modifier in validModifiers)
+          keyData[validModifiers[modifier]] = true;
+
+    let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
+    existingShortcuts[canonical] = true;
+  }
+}
+
+/**
+ * Creates the text representation for a key.
+ */
+function getTextForKey(/**Object*/ keyData) /**String*/
+{
+  try
+  {
+    let stringBundle = Services.strings.createBundle("chrome://global-platform/locale/platformKeys.properties");
+    let parts = [];
+    if (keyData.control)
+      parts.push(stringBundle.GetStringFromName("VK_CONTROL"));
+    if (keyData.alt)
+      parts.push(stringBundle.GetStringFromName("VK_ALT"));
+    if (keyData.meta)
+      parts.push(stringBundle.GetStringFromName("VK_META"));
+    if (keyData.shift)
+      parts.push(stringBundle.GetStringFromName("VK_SHIFT"));
+    if (keyData.char)
+      parts.push(keyData.char.toUpperCase());
+    else
+    {
+      let stringBundle2 = Services.strings.createBundle("chrome://global/locale/keys.properties");
+      parts.push(stringBundle2.GetStringFromName(keyData.codeName));
+    }
+    return parts.join(stringBundle.GetStringFromName("MODIFIER_SEPARATOR"));
+  }
+  catch (e)
+  {
+    Cu.reportError(e);
+    return null;
+  }
+}
+
+/**
+ * Selects a keyboard shortcut variant that isn't already taken in the window,
+ * parses it into an object.
+ */
+function selectKey(/**ChromeWindow*/ window, /**String*/ variants) /**Object*/
+{
+  if (!existingShortcuts)
+  {
+    initAccelKey();
+    initExistingShortcuts(window);
+  }
+
+  for each (let variant in variants.split(/\s*,\s*/))
+  {
+    if (!variant)
+      continue;
+
+    let keyData =
+    {
+      shift: false,
+      meta: false,
+      alt: false,
+      control: false,
+      char: null,
+      code: null,
+      codeName: null,
+      text: null
+    };
+    for each (let part in variant.toUpperCase().split(/\s+/))
+    {
+      if (part in validModifiers)
+        keyData[validModifiers[part]] = true;
+      else if (part.length == 1)
+        keyData.char = part;
+      else if ("DOM_VK_" + part in Ci.nsIDOMKeyEvent)
+      {
+        keyData.code = Ci.nsIDOMKeyEvent["DOM_VK_" + part];
+        keyData.codeName = "VK_" + part;
+      }
+    }
+
+    if (!keyData.char && !keyData.code)
+      continue;
+
+    let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
+    if (canonical in existingShortcuts)
+      continue;
+
+    keyData.text = getTextForKey(keyData);
+    return keyData;
+  }
+
+  return null;
+}
diff --git a/chrome/content/overlay.js b/chrome/content/overlay.js
deleted file mode 100644
index 45617e3..0000000
--- a/chrome/content/overlay.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Element Hiding Helper for Adblock Plus.
- *
- * The Initial Developer of the Original Code is
- * Wladimir Palant.
- * Portions created by the Initial Developer are Copyright (C) 2006-2011
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * ***** END LICENSE BLOCK ***** */
-
-window.addEventListener("load", function()
-{
-  let baseURI = Components.classes["@adblockplus.org/ehh/startup;1"].getService(Components.interfaces.nsIURI);
-  let scope = {};
-  Components.utils.import(baseURI.spec + "AppIntegration.jsm", scope);
-  scope.AppIntegration.addWindow(window);
-}, false);
diff --git a/chrome/content/overlay.xul b/chrome/content/overlay.xul
index 7a9ecfe..0002f62 100644
--- a/chrome/content/overlay.xul
+++ b/chrome/content/overlay.xul
@@ -1,5 +1,4 @@
 <?xml version="1.0"?>
-<?xml-stylesheet href="chrome://elemhidehelper/skin/overlay.css" type="text/css"?>
 
 <!-- ***** BEGIN LICENSE BLOCK *****
    - Version: MPL 1.1
@@ -25,14 +24,14 @@
    -
    - ***** END LICENSE BLOCK ***** -->
 
+<?xml-stylesheet href="chrome://elemhidehelper/skin/overlay.css" type="text/css"?>
+
 <!DOCTYPE overlay SYSTEM "chrome://elemhidehelper/locale/overlay.dtd">
 
 <overlay id="ehh-overlay"
     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
     xmlns:html="http://www.w3.org/1999/xhtml">
-  <script type="application/x-javascript" src="overlay.js"/>  
-  
-  <popupset id="abp-popupset">
+  <popupset id="ehh-popupset">
     <tooltip id="ehh-helpbox" noautohide="true" orient="vertical">
       <description id="ehh-helpbox-title" value="&helpbox.title;"/>
 
@@ -59,15 +58,4 @@
       </html:div>
     </tooltip>
   </popupset>
-
-  <popup id="abp-status-popup">
-    <menuitem id="abp-status-ehh-selectelement" hidden="true" insertbefore="abp-status-options" label="&selectelement.label;" accesskey="&selectelement.accesskey;" command="ehh-command-selectelement2" key="ehh-key-selectelement"/>
-    <menuitem id="abp-status-ehh-stopselection" hidden="true" insertbefore="abp-status-options" label="&stopselection.label;" accesskey="&stopselection.accesskey;" command="ehh-command-selectelement2" key="ehh-key-selectelement"/>
-  </popup>
-
-  <commandset id="abp-commandset">
-    <command id="ehh-command-selectelement" oncommand="//"/>
-    <!-- Use separate command for menu item, disabling menu item should not disable hotkey -->
-    <command id="ehh-command-selectelement2" oncommand="//"/>
-  </commandset>
 </overlay>
diff --git a/chrome/content/prefLoader.js b/chrome/content/prefLoader.js
new file mode 100644
index 0000000..c5b8512
--- /dev/null
+++ b/chrome/content/prefLoader.js
@@ -0,0 +1,69 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Element Hiding Helper for Adblock Plus.
+ *
+ * The Initial Developer of the Original Code is
+ * Wladimir Palant.
+ * Portions created by the Initial Developer are Copyright (C) 2006-2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import("resource://gre/modules/Services.jsm");
+
+function loadDefaultPrefs(installPath)
+{
+  try
+  {
+    let baseURI = Services.io.newFileURI(installPath);
+    let uri;
+    if (installPath.isDirectory())
+      uri = Services.io.newURI("defaults/preferences/prefs.js", null, baseURI).spec;
+    else
+      uri = "jar:" + baseURI.spec + "!/defaults/preferences/prefs.js";
+
+    let branch = Services.prefs.getDefaultBranch("");
+    let scope =
+    {
+      pref: function(pref, value)
+      {
+        switch (typeof value)
+        {
+          case "boolean":
+            branch.setBoolPref(pref, value);
+            break;
+          case "number":
+            branch.setIntPref(pref, value);
+            break;
+          case "string":
+            let str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
+            str.data = value;
+            branch.setComplexValue(pref, Ci.nsISupportsString, str);
+            break;
+        }
+      }
+    };
+    Services.scriptloader.loadSubScript(uri, scope);
+  }
+  catch(e)
+  {
+    Cu.reportError(e);
+  }
+}
diff --git a/chrome/locale/ar/global.properties b/chrome/locale/ar/global.properties
index 4fbf576..83d33e4 100644
--- a/chrome/locale/ar/global.properties
+++ b/chrome/locale/ar/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=ص
 command.viewSourceWindow.label=عرض المصدر (في نافذة منفصلة)
 command.showMenu.key=س
 command.showMenu.label=إظهارإخفاء المساعدة
+selectelement.label=اختيار عنصر لإخفاؤه
+stopselection.label=إلغاء اختيار العنصر
diff --git a/chrome/locale/ar/overlay.dtd b/chrome/locale/ar/overlay.dtd
index c4086c5..16fbf8c 100644
--- a/chrome/locale/ar/overlay.dtd
+++ b/chrome/locale/ar/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "اختيار عنصر لإخفاؤه">
-<!ENTITY selectelement.accesskey "ا">
-<!ENTITY stopselection.label "إلغاء اختيار العنصر">
-<!ENTITY stopselection.accesskey "ا">
 <!ENTITY helpbox.title "اختيار العنصر - المفاتيح الفعالة">
diff --git a/chrome/locale/bg/global.properties b/chrome/locale/bg/global.properties
index ef794a4..a0331e0 100644
--- a/chrome/locale/bg/global.properties
+++ b/chrome/locale/bg/global.properties
@@ -25,9 +25,5 @@ command.blinkElement.alternativeKey=Ф
 command.viewSource.alternativeKey=т
 command.viewSourceWindow.alternativeKey=к
 command.showMenu.alternativeKey=г
-abpInstallationRequired=Елемент скриващ помагач изисква Adblock Plus за да работи правилно, не сте го инталирани все още. Инсталирайте сега?
-abpEnableRequired=Елемент скриващ помагач изисква Adblock Plus за да работи правилно,вие сте го деактивирали. Активирайте го сега?
-abpUpdateRequired=Елемент скриващ помагач изисква по нова версия на Adblock Plus за да работи правилно, Инсталирайте по новата версия на Adblock Plus сега?
-selfUpdateRequired=Елемент скриващ помагач не може да работи с вашата версия на Adblock Plus, по нова версия може би ще ви помогне. Инсталирайте Елемент скриващ помагач по нова версия сега?
-actionAccept=Да
-actionDeny=По-късно
+selectelement.label=Изберете елемент за скриване
+stopselection.label=Прекъсване на избора на елемент
diff --git a/chrome/locale/bg/overlay.dtd b/chrome/locale/bg/overlay.dtd
index 42630b5..4121e14 100644
--- a/chrome/locale/bg/overlay.dtd
+++ b/chrome/locale/bg/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Изберете елемент за скриване">
-<!ENTITY selectelement.accesskey "е">
-<!ENTITY stopselection.label "Прекъсване на избора на елемент">
-<!ENTITY stopselection.accesskey "е">
 <!ENTITY helpbox.title "Избор на елемент - Горещи клавиши">
diff --git a/chrome/locale/ca/global.properties b/chrome/locale/ca/global.properties
index 5b9b762..64e1c6b 100644
--- a/chrome/locale/ca/global.properties
+++ b/chrome/locale/ca/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=veure font (en una altra finestra)
 command.showMenu.key=h
 command.showMenu.label=mostra/amaga ajuda
+selectelement.label=Tria element a amagar
+stopselection.label=Avorta selecció d'elements
diff --git a/chrome/locale/ca/overlay.dtd b/chrome/locale/ca/overlay.dtd
index 65f71f3..9c7dc5b 100644
--- a/chrome/locale/ca/overlay.dtd
+++ b/chrome/locale/ca/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Tria element a amagar">
-<!ENTITY selectelement.accesskey "e">
-<!ENTITY stopselection.label "Avorta selecció d'elements">
-<!ENTITY stopselection.accesskey "e">
 <!ENTITY helpbox.title "Dreceres de teclat en la selecció d'elements">
diff --git a/chrome/locale/cs/global.properties b/chrome/locale/cs/global.properties
index 72ee15e..6ce0fc8 100644
--- a/chrome/locale/cs/global.properties
+++ b/chrome/locale/cs/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=o
 command.viewSourceWindow.label=zobrazit zdroj (v novém okně)
 command.showMenu.key=n
 command.showMenu.label=zobrazit/skrýt nápovědu
-abpInstallationRequired=Pomocník skrývání prvků vyžaduje Adblock Plus, aby správně pracoval. Ten jste ale ještě nenainstalovali. Nainstalovat nyní?
-abpEnableRequired=Pomocník skrývání prvků vyžaduje Adblock Plus, aby správně pracoval. Ten jste ale zakázali. Povolit Adblock Plus?
-abpUpdateRequired=Pomocník skrývání prvků vyžaduje novější verzi Adblocku Plus, aby správně pracoval. Aktualizovat Adblock Plus?
-selfUpdateRequired=Pomocník skrývání prvků nemůže pracovat s aktuální verzí Adblocku Plus. Novější verze Pomocníka skrývání prvků by mohla pomoci. Aktualizovat Pomocníka skrývání prvků?
-actionAccept=Ano
-actionDeny=Později
+selectelement.label=Vybrat element ke skrytí
+stopselection.label=Zrušit výběr elementu
diff --git a/chrome/locale/cs/overlay.dtd b/chrome/locale/cs/overlay.dtd
index 5c4ba6f..86b7454 100644
--- a/chrome/locale/cs/overlay.dtd
+++ b/chrome/locale/cs/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Vybrat element ke skrytí">
-<!ENTITY selectelement.accesskey "V">
-<!ENTITY stopselection.label "Zrušit výběr elementu">
-<!ENTITY stopselection.accesskey "V">
 <!ENTITY helpbox.title "Výběr elementu - Klávesové zkratky">
diff --git a/chrome/locale/da/global.properties b/chrome/locale/da/global.properties
index fb796c1..b09e289 100644
--- a/chrome/locale/da/global.properties
+++ b/chrome/locale/da/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=vis kildekode (i separat vindue)
 command.showMenu.key=h
 command.showMenu.label=vis/skjul hjælp
+selectelement.label=Vælg element der skal skjules
+stopselection.label=Annuller elementvalg
diff --git a/chrome/locale/da/overlay.dtd b/chrome/locale/da/overlay.dtd
index 7b09252..2d049cd 100644
--- a/chrome/locale/da/overlay.dtd
+++ b/chrome/locale/da/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Vælg element der skal skjules">
-<!ENTITY selectelement.accesskey "V">
-<!ENTITY stopselection.label "Annuller elementvalg">
-<!ENTITY stopselection.accesskey "V">
 <!ENTITY helpbox.title "Elementvalg - Genvejstaster">
diff --git a/chrome/locale/de/global.properties b/chrome/locale/de/global.properties
index 2ad09b2..9281845 100644
--- a/chrome/locale/de/global.properties
+++ b/chrome/locale/de/global.properties
@@ -28,9 +28,5 @@ command.viewSource.alternativeKey=
 command.viewSourceWindow.alternativeKey=
 command.showMenu.alternativeKey=
 
-abpInstallationRequired=Element Hiding Helper benötigt die Erweiterung Adblock Plus, die Sie nicht installiert haben. Jetzt installieren?
-abpEnableRequired=Element Hiding Helper benötigt die Erweiterung Adblock Plus, die Sie jedoch deaktiviert haben. Jetzt aktivieren?
-abpUpdateRequired=Element Hiding Helper benötigt eine neuere Version der Erweiterung Adblock Plus. Adblock Plus jetzt aktualisieren?
-selfUpdateRequired=Element Hiding Helper kann mit der installierten Version der Erweiterung Adblock Plus nicht arbeiten, möglicherweise hilft eine neuere Version von Element Hiding Helper. Element Hiding Helper jetzt aktualisieren?
-actionAccept=Ja
-actionDeny=Später nachfragen
+selectelement.label=Element zum Verstecken auswählen
+stopselection.label=Element-Auswahl abbrechen
diff --git a/chrome/locale/de/overlay.dtd b/chrome/locale/de/overlay.dtd
index 97d3ddf..d979587 100644
--- a/chrome/locale/de/overlay.dtd
+++ b/chrome/locale/de/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label      "Element zum Verstecken auswählen">
-<!ENTITY selectelement.accesskey  "E">
-<!ENTITY stopselection.label      "Element-Auswahl abbrechen">
-<!ENTITY stopselection.accesskey  "E">
 <!ENTITY helpbox.title            "Element-Auswahl - Tastenbelegung">
diff --git a/chrome/locale/el/global.properties b/chrome/locale/el/global.properties
index a5ee878..147090e 100644
--- a/chrome/locale/el/global.properties
+++ b/chrome/locale/el/global.properties
@@ -25,9 +25,5 @@ command.blinkElement.alternativeKey=b
 command.viewSource.alternativeKey=v
 command.viewSourceWindow.alternativeKey=u
 command.showMenu.alternativeKey=h
-abpInstallationRequired=Το Element Hiding Helper απαιτεί το Adblock Plus για να λειτουργήσει· δεν το έχετε εγκαταστήσει ακόμα. Εγκατάσταση τώρα;
-abpEnableRequired=Το Element Hiding Helper απαιτεί το Adblock Plus για να λειτουργήσει· το έχετε απενεργοποιήσει όμως. Ενεργοποίηση τώρα;
-abpUpdateRequired=Το Element Hiding Helper απαιτεί μια νεότερη έκδοση του Adblock Plus για να λειτουργήσει. Εγκατάσταση της ενημέρωσης του Adblock Plus τώρα;
-selfUpdateRequired=Το Element Hiding Helper δεν μπορεί να λειτουργήσει με την εγκατεστημένη έκδοση του Adblock Plus· η νεότερη έκδοση του Element Hiding Helper ίσως βοηθήσει. Εγκατάσταση της ενημέρωσης του Element Hiding Helper τώρα;
-actionAccept=Ναι
-actionDeny=Αργότερα
+selectelement.label=Επιλογή στοιχείων για απόκρυψη
+stopselection.label=Ακύρωση επιλογής στοιχείων
diff --git a/chrome/locale/el/overlay.dtd b/chrome/locale/el/overlay.dtd
index 9868b4e..15eade6 100644
--- a/chrome/locale/el/overlay.dtd
+++ b/chrome/locale/el/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Επιλογή στοιχείων για απόκρυψη">
-<!ENTITY selectelement.accesskey "σ">
-<!ENTITY stopselection.label "Ακύρωση επιλογής στοιχείων">
-<!ENTITY stopselection.accesskey "σ">
 <!ENTITY helpbox.title "Επιλογή στοιχείων - Πλήκτρα συντομεύσεων">
diff --git a/chrome/locale/en-GB/global.properties b/chrome/locale/en-GB/global.properties
index cf26079..9132ed0 100644
--- a/chrome/locale/en-GB/global.properties
+++ b/chrome/locale/en-GB/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=view source (in separate window)
 command.showMenu.key=h
 command.showMenu.label=show/hide help
-abpInstallationRequired=Element Hiding Helper requires Adblock Plus to work properly, but it is not installed. Install now?
-abpEnableRequired=Element Hiding Helper requires Adblock Plus to work properly, but it is disabled. Enable now?
-abpUpdateRequired=Element Hiding Helper requires a newer version of Adblock Plus to work properly. Update Adblock Plus now?
-selfUpdateRequired=The installed version of Element Hiding Helper cannot work with the installed version Adblock Plus. Update Element Hiding Helper now?
-actionAccept=Yes
-actionDeny=Later
+selectelement.label=Select element to hide
+stopselection.label=Abort element selection
diff --git a/chrome/locale/en-GB/overlay.dtd b/chrome/locale/en-GB/overlay.dtd
index a24c8b6..061f010 100644
--- a/chrome/locale/en-GB/overlay.dtd
+++ b/chrome/locale/en-GB/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Select element to hide">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Abort element selection">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Element selection hotkeys">
diff --git a/chrome/locale/en-US/global.properties b/chrome/locale/en-US/global.properties
index f9879b6..b4c51b1 100644
--- a/chrome/locale/en-US/global.properties
+++ b/chrome/locale/en-US/global.properties
@@ -28,9 +28,5 @@ command.viewSource.alternativeKey=
 command.viewSourceWindow.alternativeKey=
 command.showMenu.alternativeKey=
 
-abpInstallationRequired=Element Hiding Helper requires Adblock Plus to work propertly, you didn't install it yet. Install now?
-abpEnableRequired=Element Hiding Helper requires Adblock Plus to work propertly, you disabled it however. Enable now?
-abpUpdateRequired=Element Hiding Helper requires a newer Adblock Plus version to work propertly. Install Adblock Plus update now?
-selfUpdateRequired=Element Hiding Helper cannot work with the installed Adblock Plus version, a newer Element Hiding Helper version might help. Install Element Hiding Helper update now?
-actionAccept=Yes
-actionDeny=Later
+selectelement.label=Select an element to hide
+stopselection.label=Abort element selection
diff --git a/chrome/locale/en-US/overlay.dtd b/chrome/locale/en-US/overlay.dtd
index 72f1256..7b4b658 100644
--- a/chrome/locale/en-US/overlay.dtd
+++ b/chrome/locale/en-US/overlay.dtd
@@ -1,7 +1 @@
-<!ENTITY selectelement.label      "Select an element to hide">
-<!-- Note: This access key should usually be the same as stopselection.accesskey. It is the same menu item with different label depending on whether the user is currently selecting.-->
-<!ENTITY selectelement.accesskey  "S">
-<!ENTITY stopselection.label      "Abort element selection">
-<!-- Note: This access key should usually be the same as selectelement.accesskey. It is the same menu item with different label depending on whether the user is currently selecting.-->
-<!ENTITY stopselection.accesskey  "S">
 <!ENTITY helpbox.title            "Element selection hotkeys">
diff --git a/chrome/locale/es-AR/global.properties b/chrome/locale/es-AR/global.properties
index 8d88e2f..6315b1c 100644
--- a/chrome/locale/es-AR/global.properties
+++ b/chrome/locale/es-AR/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=t
 command.viewSourceWindow.label=ver fuente (en una nueva ventana)
 command.showMenu.key=y
 command.showMenu.label=mostrar/ocultar ayuda
-abpInstallationRequired=El Asistente ocultador de elementos requiere Adblock Plus para funcionar correctamente. Todavía no lo instalaste, ¿querés hacerlo ahora?
-abpEnableRequired=El Asistente ocultador de elementos requiere Adblock Plus para funcionar correctamente. Sin embargo, lo tenés deshabilitado; ¿querés habilitarlo ahora?
-abpUpdateRequired=El Asistente ocultador de elementos requiere una versión más reciente de Adblock Plus para funcionar correctamente; ¿querés actualizar tu versión actual ahora?
-selfUpdateRequired=El Asistente ocultador de elementos no funciona con la versión instalada actualmente de Adblock Plus. Una versión más reciente del Asistente ocultador de elementos podría funcionar, ¿querés actualizar tu versión actual del Asistente ocultador de elementos ahora?
-actionAccept=Sí
-actionDeny=Más tarde
+selectelement.label=Seleccionar elemento para ocultar
+stopselection.label=Cancelar la selección del elemento
diff --git a/chrome/locale/es-AR/overlay.dtd b/chrome/locale/es-AR/overlay.dtd
index e7bf623..6015ff3 100644
--- a/chrome/locale/es-AR/overlay.dtd
+++ b/chrome/locale/es-AR/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Seleccionar elemento para ocultar">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Cancelar la selección del elemento">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Selección de elemento - Atajos de teclado">
diff --git a/chrome/locale/es-ES/global.properties b/chrome/locale/es-ES/global.properties
index 3f080dc..2401258 100644
--- a/chrome/locale/es-ES/global.properties
+++ b/chrome/locale/es-ES/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=ver código fuente (en otra ventana)
 command.showMenu.key=m
 command.showMenu.label=mostrar/ocultar ayuda
-abpInstallationRequired=Element Hiding Helper necesita de Adblock Plus para funcionar, y usted no lo tiene instalado. ¿Desea instalarlo ahora?
-abpEnableRequired=Element Hiding Helper necesita de Adblock Plus para funcionar, y usted lo tiene desactivado. ¿Desea activarlo ahora?
-abpUpdateRequired=Element Hiding Helper necesita una versión más reciente de Adblock Plus para funcionar. ¿Desea instalar la nueva versión de Adblock Plus ahora?
-selfUpdateRequired=Element Hiding Helper no funciona con la versión de Adblock Plus instalada, lo que podría solucionarse con una versión más reciente de Element Hiding Helper. ¿Desea instalar una actualización de Element Hiding Helper ahora?
-actionAccept=Sí
-actionDeny=Más tarde
+selectelement.label=Seleccionar elemento a ocultar
+stopselection.label=Abortar la selección del elemento
diff --git a/chrome/locale/es-ES/overlay.dtd b/chrome/locale/es-ES/overlay.dtd
index 6e3bc84..e79e367 100644
--- a/chrome/locale/es-ES/overlay.dtd
+++ b/chrome/locale/es-ES/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Seleccionar elemento a ocultar">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Abortar la selección del elemento">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Selección de elementos - Teclas de acceso rápido">
diff --git a/chrome/locale/es-MX/global.properties b/chrome/locale/es-MX/global.properties
index dc821a9..d794f74 100644
--- a/chrome/locale/es-MX/global.properties
+++ b/chrome/locale/es-MX/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=e
 command.viewSourceWindow.label=ver código fuente (source) en una ventana
 command.showMenu.key=y
 command.showMenu.label=mostrar/ocultar ayuda
-abpInstallationRequired=Element Hiding Helper necesita el complemento Adblock Plus para funcionar, el cual no se ha detectado en su sistema. Desea instalarlo ahora?
-abpEnableRequired=Element Hiding Helper necesita el complemento Adblock Plus para funcionar, el cual se encuentra deshabilitado. Desea habilitarlo ahora?
-abpUpdateRequired=Element Hiding Helper necesita una versión actualizada de Adblock Plus para funcionar. Desea actualizar a la nueva versión de Adblock Plus ahora?
-selfUpdateRequired=Element Hiding Helper no puede funcionar con la versión de Adblock Plus instalada, una versión actualizada de Element Hiding Helper podria solucionar el problema. Desea actualizar Element Hiding Helper ahora?
-actionAccept=Si
-actionDeny=Luego
+selectelement.label=Seleccione un elemento para ocultar
+stopselection.label=Deshacer selección de elemento
diff --git a/chrome/locale/es-MX/overlay.dtd b/chrome/locale/es-MX/overlay.dtd
index 8ca24b9..b5a7779 100644
--- a/chrome/locale/es-MX/overlay.dtd
+++ b/chrome/locale/es-MX/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Seleccione un elemento para ocultar">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Deshacer selección de elemento">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Teclas de atajo - Selección de elementos">
diff --git a/chrome/locale/et/global.properties b/chrome/locale/et/global.properties
index cb3a7b0..e735a26 100644
--- a/chrome/locale/et/global.properties
+++ b/chrome/locale/et/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=t
 command.viewSourceWindow.label=vaata allikat (eraldi aknas)
 command.showMenu.key=n
 command.showMenu.label=näita/peida abi
+selectelement.label=Vali elemente et peita
+stopselection.label=Katkesta elementide valimine
diff --git a/chrome/locale/et/overlay.dtd b/chrome/locale/et/overlay.dtd
index fe66258..7f196eb 100644
--- a/chrome/locale/et/overlay.dtd
+++ b/chrome/locale/et/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Vali elemente et peita">
-<!ENTITY selectelement.accesskey "a">
-<!ENTITY stopselection.label "Katkesta elementide valimine">
-<!ENTITY stopselection.accesskey "a">
 <!ENTITY helpbox.title "Elemendi valimine - Kiirklahvid">
diff --git a/chrome/locale/eu/global.properties b/chrome/locale/eu/global.properties
index 8097bca..2374fcc 100644
--- a/chrome/locale/eu/global.properties
+++ b/chrome/locale/eu/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=l
 command.viewSourceWindow.label=ikusi iturburua (leiho berezian)
 command.showMenu.key=a
 command.showMenu.label=erakutsi/ezkutatu laguntza
+selectelement.label=Hautatu ezkutatzeko elementu bat
+stopselection.label=Utzi elementu hautapena
diff --git a/chrome/locale/eu/overlay.dtd b/chrome/locale/eu/overlay.dtd
index fae5b32..781e726 100644
--- a/chrome/locale/eu/overlay.dtd
+++ b/chrome/locale/eu/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Hautatu ezkutatzeko elementu bat">
-<!ENTITY selectelement.accesskey "l">
-<!ENTITY stopselection.label "Utzi elementu hautapena">
-<!ENTITY stopselection.accesskey "l">
 <!ENTITY helpbox.title "Elementu ekintzak - Laster-teklak">
diff --git a/chrome/locale/fa/global.properties b/chrome/locale/fa/global.properties
index 6807688..a422ccb 100644
--- a/chrome/locale/fa/global.properties
+++ b/chrome/locale/fa/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=دیده منبع در صفحه دگر
 command.showMenu.key=h
 command.showMenu.label=کمک نشان/پنهان
+selectelement.label=انتخاب اساس برای پنهان
+stopselection.label=لغو انتخاب اساس
diff --git a/chrome/locale/fa/overlay.dtd b/chrome/locale/fa/overlay.dtd
index 93b3837..2231b75 100644
--- a/chrome/locale/fa/overlay.dtd
+++ b/chrome/locale/fa/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "انتخاب اساس برای پنهان">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "لغو انتخاب اساس">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "کلیدهای انتخاب اساس">
diff --git a/chrome/locale/fi/global.properties b/chrome/locale/fi/global.properties
index 52a1588..4130bb1 100644
--- a/chrome/locale/fi/global.properties
+++ b/chrome/locale/fi/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=näytä lähdekoodi(erillisessä ikkunassa)
 command.showMenu.key=h
 command.showMenu.label=näytä/piilota ohje
+selectelement.label=Valitse piilotettava elementti
+stopselection.label=Keskeytä elementin valinta
diff --git a/chrome/locale/fi/overlay.dtd b/chrome/locale/fi/overlay.dtd
index d32ff7b..f3fc78f 100644
--- a/chrome/locale/fi/overlay.dtd
+++ b/chrome/locale/fi/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Valitse piilotettava elementti">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Keskeytä elementin valinta">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Elementin valinta - Pikanäppäimet">
diff --git a/chrome/locale/fr/global.properties b/chrome/locale/fr/global.properties
index d344a65..f62e4da 100644
--- a/chrome/locale/fr/global.properties
+++ b/chrome/locale/fr/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=f
 command.viewSourceWindow.label=afficher la source (dans une nouvelle fenêtre)
 command.showMenu.key=a
 command.showMenu.label=afficher/masquer l'aide
-abpInstallationRequired=Element Hiding Helper nécessite Adblock Plus pour fonctionner correctement, vous ne l'avez pas encore installé. Voulez-vous le faire maintenant ?
-abpEnableRequired=Element Hiding Helper nécessite Adblock Plus pour fonctionner correctement, cependant vous l'avez désactivée. Voulez-vous l'activer maintenant ?
-abpUpdateRequired=Element Hiding Helper nécessite une version plus récente d'Adblock Plus pour fonctionner correctement, Voulez-vous mettre à jour Adblock Plus maintenant ?
-selfUpdateRequired=Element Hiding Helper ne peut pas fonctionner avec la version d'Adblock Plus qui est installée, une version plus récente d'Element Hiding Helper pourrait résoudre le problème. Voulez-vous mettre à jour Element Hiding Helper maintenant ?
-actionAccept=Oui
-actionDeny=Plus tard
+selectelement.label=Sélectionner un élément à masquer
+stopselection.label=Quitter le mode "sélection d'élément"
diff --git a/chrome/locale/fr/overlay.dtd b/chrome/locale/fr/overlay.dtd
index 78632ab..540603d 100644
--- a/chrome/locale/fr/overlay.dtd
+++ b/chrome/locale/fr/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Sélectionner un élément à masquer">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Quitter le mode "sélection d'élément"">
-<!ENTITY stopselection.accesskey "s">
 <!ENTITY helpbox.title "Sélection d'élément - Raccourcis">
diff --git a/chrome/locale/gl/global.properties b/chrome/locale/gl/global.properties
index 6f8c9ac..2d80a68 100644
--- a/chrome/locale/gl/global.properties
+++ b/chrome/locale/gl/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=Ver código fonte (en fiestra aparte)
 command.showMenu.key=h
 command.showMenu.label=mostrar/ocultar a axuda
+selectelement.label=Escolla elemento para ocultar
+stopselection.label=Cancelar a escolla de elemento
diff --git a/chrome/locale/gl/overlay.dtd b/chrome/locale/gl/overlay.dtd
index 031315f..7a2340d 100644
--- a/chrome/locale/gl/overlay.dtd
+++ b/chrome/locale/gl/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Escolla elemento para ocultar">
-<!ENTITY selectelement.accesskey "s">
-<!ENTITY stopselection.label "Cancelar a escolla de elemento">
-<!ENTITY stopselection.accesskey "s">
 <!ENTITY helpbox.title "Escolla de elemento - teclas rápidas">
diff --git a/chrome/locale/he/global.properties b/chrome/locale/he/global.properties
index 1c79fdc..c5d1fcc 100644
--- a/chrome/locale/he/global.properties
+++ b/chrome/locale/he/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=ק
 command.viewSourceWindow.label=הצגת מקור (בחלון נפרד)
 command.showMenu.key=ת
 command.showMenu.label=הצגה או הסתרת העזרה
-abpInstallationRequired=ל-Element Hiding Helper  דרוש את Adblock Plus על מנת לעבוד כראוי, עדיין לא התקנתם אותו. להתקין כעת?
-abpEnableRequired=Adblock Plus  מנוטרל והוא דרוש על מנת ש-Element Hiding Helper יעבוד כראוי. לאפשר כעת?
-abpUpdateRequired=ל-Element Hiding Helper דרושה גרסה חדשה יותר של Adblock Plus על מנת לעבוד כראוי. להתקין עדכון Adblock Plus כעת?
-selfUpdateRequired=Element Hiding Helper אינה יכולה לעבוד עם גרסת Adblock Plus המותקנת, אולי גרסת Element Hiding Helper חדשה יותר תעזור. להתקין עדכון Element Hiding Helper כעת?
-actionAccept=כן
-actionDeny=מאוחר יותר
+selectelement.label=בחירת אלמנט להסתרה
+stopselection.label=ביטול בחירת האלמנט
diff --git a/chrome/locale/he/overlay.dtd b/chrome/locale/he/overlay.dtd
index fe2e919..a3cd91a 100644
--- a/chrome/locale/he/overlay.dtd
+++ b/chrome/locale/he/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "בחירת אלמנט להסתרה">
-<!ENTITY selectelement.accesskey "ב">
-<!ENTITY stopselection.label "ביטול בחירת האלמנט">
-<!ENTITY stopselection.accesskey "ב">
 <!ENTITY helpbox.title "בחירת אלמנטים - קיצורי דרך">
diff --git a/chrome/locale/hr/global.properties b/chrome/locale/hr/global.properties
index c24bf61..eaaa292 100644
--- a/chrome/locale/hr/global.properties
+++ b/chrome/locale/hr/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=z
 command.viewSourceWindow.label=pogledaj izvorni kod (u odvojenom prozoru)
 command.showMenu.key=k
 command.showMenu.label=prikaži/sakrij pomoć
+selectelement.label=Odaberite element za sakriti
+stopselection.label=Prekini odabiranje elementa
diff --git a/chrome/locale/hr/overlay.dtd b/chrome/locale/hr/overlay.dtd
index 20c49d9..b4d7dd3 100644
--- a/chrome/locale/hr/overlay.dtd
+++ b/chrome/locale/hr/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Odaberite element za sakriti">
-<!ENTITY selectelement.accesskey "d">
-<!ENTITY stopselection.label "Prekini odabiranje elementa">
-<!ENTITY stopselection.accesskey "d">
 <!ENTITY helpbox.title "Odabiranje elementa - Tipkovničke kratice">
diff --git a/chrome/locale/hu/global.properties b/chrome/locale/hu/global.properties
index 174e027..22dde1f 100644
--- a/chrome/locale/hu/global.properties
+++ b/chrome/locale/hu/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=a
 command.viewSourceWindow.label=forráskód megjelenítése (új ablakban)
 command.showMenu.key=s
 command.showMenu.label=súgó megjelenítése/elrejtése
-abpInstallationRequired=Az Element Hiding Helper megfelelő működéséhez az Adblock Plus kiterjesztés szükséges, ami jelenleg nincs telepítve. Telepíti most?
-abpEnableRequired=Az Element Hiding Helper megfelelő működéséhez az Adblock Plus kiterjesztés szükséges, ami jelenleg le van tiltva. Aktiválja most?
-abpUpdateRequired=Az Element Hiding Helper megfelelő működéséhez az Adblock Plus kiterjesztés újabb változata szükséges. Telepíti az új változatot most?
-selfUpdateRequired=Az Element Hiding Helper nem működik megfelelően az Adblock Plus kiterjesztés telepített változatával. Az Element Hiding Helper újabb változata valószínűleg megoldja a problémát. Telepíti az Element Hiding Helper újabb változatát?
-actionAccept=Igen
-actionDeny=Később
+selectelement.label=Elrejtendő elem kiválasztása
+stopselection.label=Elemkiválasztás megszakítása
diff --git a/chrome/locale/hu/overlay.dtd b/chrome/locale/hu/overlay.dtd
index c6958eb..09779f2 100644
--- a/chrome/locale/hu/overlay.dtd
+++ b/chrome/locale/hu/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Elrejtendő elem kiválasztása">
-<!ENTITY selectelement.accesskey "k">
-<!ENTITY stopselection.label "Elemkiválasztás megszakítása">
-<!ENTITY stopselection.accesskey "k">
 <!ENTITY helpbox.title "Elemkiválasztás - Billentyűkombinációk">
diff --git a/chrome/locale/hy/global.properties b/chrome/locale/hy/global.properties
index 42d3cb2..b7b62b5 100644
--- a/chrome/locale/hy/global.properties
+++ b/chrome/locale/hy/global.properties
@@ -25,9 +25,5 @@ command.blinkElement.alternativeKey=թ
 command.viewSource.alternativeKey=կ
 command.viewSourceWindow.alternativeKey=պ
 command.showMenu.alternativeKey=մ
-abpInstallationRequired=Element Hiding Helper-ը պահանջում է Adblock Plus աշխատելու համար, դուք չեք տեղադրել այն: Տեղադրե՞լ հիմա:
-abpEnableRequired=Element Hiding Helper-ը պահանջում է Adblock Plus աշխատելու համար, սակայն այն անջատված է: Միացնե՞լ հիմա:
-abpUpdateRequired=Element Hiding Helper-ը պահանջում է  Adblock Plus-ի ավելի թարմ տարբերակ աշխատելու համար: Թարմացնե՞լ հիմա:
-selfUpdateRequired=Element Hiding Helper-ը չի կարող աշխատել Adblock Plus-ի այս տարբերակի հետ, ավելի թարմ Element Hiding Helper-ի տարբերակը կարող է օգնել: Տեղադրե՞լ Element Hiding Helper թարմացումը հիմա:
-actionAccept=Այո
-actionDeny=Ավելի ուշ
+selectelement.label=Ընտրել թաքցվող տարրը
+stopselection.label=Հրաժարվել տարրերի ընտրությունից
diff --git a/chrome/locale/hy/overlay.dtd b/chrome/locale/hy/overlay.dtd
index cc788e7..889d304 100644
--- a/chrome/locale/hy/overlay.dtd
+++ b/chrome/locale/hy/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Ընտրել թաքցվող տարրը">
-<!ENTITY selectelement.accesskey "թ">
-<!ENTITY stopselection.label "Հրաժարվել տարրերի ընտրությունից">
-<!ENTITY stopselection.accesskey "թ">
 <!ENTITY helpbox.title "Տարրի ընտրություն - Կոճակներ">
diff --git a/chrome/locale/it/global.properties b/chrome/locale/it/global.properties
index 7f74a49..8916269 100644
--- a/chrome/locale/it/global.properties
+++ b/chrome/locale/it/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=visualizza sorgente (in finestra separata)
 command.showMenu.key=h
 command.showMenu.label=mostra/nasconde questo pop-up
-abpInstallationRequired=È necessario che Adblock Plus sia installata affinché Element Hiding Helper funzioni correttamente. Installarla adesso?
-abpEnableRequired=È necessario che Adblock Plus sia attiva affinché Element Hiding Helper funzioni correttamente. Attivarla adesso?
-abpUpdateRequired=È necessario che Adblock Plus venga aggiornata affinché Element Hiding Helper funzioni correttamente. Installare la versione aggiornata di Adblock Plus adesso?
-selfUpdateRequired=È necessario che Element Hiding Helper venga aggiornata per funzionare correttamente. Installare la versione aggiornata di Element Hiding Helper adesso?
-actionAccept=Sì
-actionDeny=Più tardi
+selectelement.label=Seleziona con Element Hiding Helper
+stopselection.label=Annulla la selezione dell'elemento
diff --git a/chrome/locale/it/overlay.dtd b/chrome/locale/it/overlay.dtd
index df3d422..5abda5c 100644
--- a/chrome/locale/it/overlay.dtd
+++ b/chrome/locale/it/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Seleziona con Element Hiding Helper">
-<!ENTITY selectelement.accesskey "E">
-<!ENTITY stopselection.label "Annulla la selezione dell'elemento">
-<!ENTITY stopselection.accesskey "E">
 <!ENTITY helpbox.title "Tasti per Element Hiding Helper">
diff --git a/chrome/locale/ja/global.properties b/chrome/locale/ja/global.properties
index 7d01951..a43d79b 100644
--- a/chrome/locale/ja/global.properties
+++ b/chrome/locale/ja/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=新しいウィンドウでソースを表示
 command.showMenu.key=h
 command.showMenu.label=ヘルプを表示/非表示
-abpInstallationRequired=Element Hiding Helper を使用するには Adblock Plus がインストールされている必要があります。今すぐインストールしますか?
-abpEnableRequired=Element Hiding Helper を使用するには Adblock Plus が有効にされている必要があります。今すぐ有効化しますか?
-abpUpdateRequired=Element Hiding Helper を使用するには、最新の Adblock Plus がインストールされている必要があります。今すぐ Adblock Plus の更新をインストールしますか?
-selfUpdateRequired=インストールされているバージョンの Adblock Plus では Element Hiding Helper を動作させる事ができません。今すぐ最新の Element Hiding Helper をインストールしますか?
-actionAccept=はい
-actionDeny=後で
+selectelement.label=選択した要素を隠す
+stopselection.label=要素の選択を中止
diff --git a/chrome/locale/ja/overlay.dtd b/chrome/locale/ja/overlay.dtd
index 6ca67d1..7f1c45c 100644
--- a/chrome/locale/ja/overlay.dtd
+++ b/chrome/locale/ja/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "選択した要素を隠す">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "要素の選択を中止">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "要素の選択 - キーボードショートカット">
diff --git a/chrome/locale/kk/global.properties b/chrome/locale/kk/global.properties
index 38b39f0..cc671cd 100644
--- a/chrome/locale/kk/global.properties
+++ b/chrome/locale/kk/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=о
 command.viewSourceWindow.label=бастапқы кодын қарау (жаңа терезеде)
 command.showMenu.key=з
 command.showMenu.label=көмекті көрсету/жасыру
-abpInstallationRequired=Element Hiding Helper өз жұмысы үшін Adblock Plus талап етеді, ол сізде орнатылмаған. Оны орнату керек пе?
-abpEnableRequired=Element Hiding Helper өз жұмысы үшін Adblock Plus талап етеді, ол сізде сөндірулі тұр. Оны іске қосу керек пе?
-abpUpdateRequired=Element Hiding Helper дұрыс жұмысы үшін жаңа Adblock Plus нұсқасын талап етеді. Adblock Plus қазір жаңарту керек пе?
-selfUpdateRequired=Element Hiding Helper орнатылған Adblock Plus нұсқасымен жұмыс істей алмайды, мүмкін, жаңа Element Hiding Helper нұсқасы көмектеседі. Element Hiding Helper жаңарту керек пе?
-actionAccept=Иә
-actionDeny=Кейінірек
+selectelement.label=Жасырылатын элементті таңдау
+stopselection.label=Элементтер таңдаудан бас тарту
diff --git a/chrome/locale/kk/overlay.dtd b/chrome/locale/kk/overlay.dtd
index 2d35e85..5e7df26 100644
--- a/chrome/locale/kk/overlay.dtd
+++ b/chrome/locale/kk/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Жасырылатын элементті таңдау">
-<!ENTITY selectelement.accesskey "т">
-<!ENTITY stopselection.label "Элементтер таңдаудан бас тарту">
-<!ENTITY stopselection.accesskey "т">
 <!ENTITY helpbox.title "Элементтерді таңдау - пернелер комбинациясы">
diff --git a/chrome/locale/ko/global.properties b/chrome/locale/ko/global.properties
index a9b11b7..851690a 100644
--- a/chrome/locale/ko/global.properties
+++ b/chrome/locale/ko/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=소스 보기 (별도 창)
 command.showMenu.key=h
 command.showMenu.label=단축키 설명 보기/숨김
-abpInstallationRequired=Element Hiding Helper는 애드블록 플러스가 설치되어 있어야 정상적으로 작동합니다. 애드블록 플러스를 설치하시겠습니까?
-abpEnableRequired=Element Hiding Helper는 애드블록 플러스를 사용해야 정상적으로 작동합니다. 애드블록 플러스를 사용하시겠습니까?
-abpUpdateRequired=Element Hiding Helper는 더 새로운 버전의 애드블록 플러스가 설치되어 있어야 정상적으로 작동합니다. 애드블록 플러스를 업데이트하시겠습니까?
-selfUpdateRequired=Element Hiding Helper를 더 새로운 버전으로 업데이트해야 애드블록 플러스에서 작동합니다. Element Hiding Helper를 업데이트하시겠습니까?
-actionAccept=예
-actionDeny=나중에
+selectelement.label=숨기려는 요소 선택 (S)
+stopselection.label=요소 선택 중지
diff --git a/chrome/locale/ko/overlay.dtd b/chrome/locale/ko/overlay.dtd
index 1fbf1f1..461e6fd 100644
--- a/chrome/locale/ko/overlay.dtd
+++ b/chrome/locale/ko/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "숨기려는 요소 선택 (S)">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "요소 선택 중지">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "요소 선택 단축키">
diff --git a/chrome/locale/lt/global.properties b/chrome/locale/lt/global.properties
index 02e0beb..b661de3 100644
--- a/chrome/locale/lt/global.properties
+++ b/chrome/locale/lt/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=k
 command.viewSourceWindow.label=pirminis tekstas (atskirame lange)
 command.showMenu.key=h
 command.showMenu.label=rodyti/slėpti žinyną
-abpInstallationRequired=Tinkamam darbui Element Hiding Helper reikalinga Adblock Plus, kol kas jūs jos neįdiegėte. Įdiegti dabar?
-abpEnableRequired=Teisingam Element Hiding Helper veikimui reikalinga Adblock Plus, bet jūs ją išjungėte. Įjungti dabar?
-abpUpdateRequired=Tinkamam darbui Element Hiding Helper reikalauja naujesnės Adblock Plus versijos. Įdiegti Adblock Plus atnaujinimą dabar?
-selfUpdateRequired=Element Hiding Helper negali dirbti su įdiegta Adblock Plus versija, naujesnė Element Hiding Helper versija turėtų padėti. Įdiegti Element Hiding Helper atnaujinimą dabar?
-actionAccept=Taip
-actionDeny=Vėliau
+selectelement.label=Pasirinkite elementą kurį norite slėpti
+stopselection.label=Atsisakyti elemento pasirinkimo
diff --git a/chrome/locale/lt/overlay.dtd b/chrome/locale/lt/overlay.dtd
index f688d51..df6f9d4 100644
--- a/chrome/locale/lt/overlay.dtd
+++ b/chrome/locale/lt/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Pasirinkite elementą kurį norite slėpti">
-<!ENTITY selectelement.accesskey "s">
-<!ENTITY stopselection.label "Atsisakyti elemento pasirinkimo">
-<!ENTITY stopselection.accesskey "s">
 <!ENTITY helpbox.title "Elemento pasirinkimo spartieji klavišai">
diff --git a/chrome/locale/nb-NO/global.properties b/chrome/locale/nb-NO/global.properties
index 7f72af8..a1863e9 100644
--- a/chrome/locale/nb-NO/global.properties
+++ b/chrome/locale/nb-NO/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=se kildekode (i eget vindu)
 command.showMenu.key=h
 command.showMenu.label=vis/skjul hjelp
+selectelement.label=Velg element som skal skjules
+stopselection.label=Avbryt valg av elementer
diff --git a/chrome/locale/nb-NO/overlay.dtd b/chrome/locale/nb-NO/overlay.dtd
index 9addd39..a83c198 100644
--- a/chrome/locale/nb-NO/overlay.dtd
+++ b/chrome/locale/nb-NO/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Velg element som skal skjules">
-<!ENTITY selectelement.accesskey "e">
-<!ENTITY stopselection.label "Avbryt valg av elementer">
-<!ENTITY stopselection.accesskey "e">
 <!ENTITY helpbox.title "Valg av elementer - Hurtigtaster">
diff --git a/chrome/locale/nl/global.properties b/chrome/locale/nl/global.properties
index 7048bcd..277574d 100644
--- a/chrome/locale/nl/global.properties
+++ b/chrome/locale/nl/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=v
 command.viewSourceWindow.label=bron weergeven (in apart venster)
 command.showMenu.key=h
 command.showMenu.label=help weergeven/verbergen
-abpInstallationRequired=Element Hiding Helper vereist Adblock Plus om goed te werken, maar u hebt dit nog niet geïnstalleerd. Nu installeren?
-abpEnableRequired=Element Hiding Helper vereist Adblock Plus om goed te werken, maar dit is momenteel uitgeschakeld. Nu inschakelen?
-abpUpdateRequired=Element Hiding Helper vereist een nieuwere versie van Adblock Plus om goed te werken. Adblock Plus nu bijwerken?
-selfUpdateRequired=Element Hiding Helper werkt niet met de geïnstalleerde versie van Adblock Plus, wellicht werkt een nieuwere versie van Element Hiding Helper. Element Hiding Helper nu bijwerken?
-actionAccept=Ja
-actionDeny=Later
+selectelement.label=Te verbergen element selecteren
+stopselection.label=Elementselectie afbreken
diff --git a/chrome/locale/nl/overlay.dtd b/chrome/locale/nl/overlay.dtd
index 22b9901..042dfbd 100644
--- a/chrome/locale/nl/overlay.dtd
+++ b/chrome/locale/nl/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Te verbergen element selecteren">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Elementselectie afbreken">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Elementselectie - Sneltoetsen">
diff --git a/chrome/locale/pl/global.properties b/chrome/locale/pl/global.properties
index 6b92f59..c67dd4a 100644
--- a/chrome/locale/pl/global.properties
+++ b/chrome/locale/pl/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=R
 command.viewSourceWindow.label=- pokaż źródło w oddzielnym oknie
 command.showMenu.key=O
 command.showMenu.label=- wyświetl/ukryj pomoc
-abpInstallationRequired=Aby rozszerzenie Element Hiding Helper działało prawidłowo, musi być zainstalowane rozszerzenie Adblock Plus, które nie jest zainstalowane. Czy chcesz je zainstalować teraz?
-abpEnableRequired=Rozszerzenie Element Hiding Helper wymaga, aby rozszerzenie Adblock Plus działało prawidłowo. Adblock Plus jest obecnie wyłączony. Czy chcesz go włączyć?
-abpUpdateRequired=Aby rozszerzenie Element Hiding Helper działało prawidłowo, musi być zainstalowana najnowsza wersja Adblock Plusa. Czy chcesz zainstalować aktualizację Adblock Plusa?
-selfUpdateRequired=Rozszerzenie Element Hiding Helper nie może współpracować z aktualnie zainstalowaną wersją Adblock Plusa. Może pomóc zainstalowanie najnowszej wersji rozszerzenia Element Hiding Helper. Czy chcesz zainstalować aktualizację Element Hiding Helpera?
-actionAccept=Tak
-actionDeny=Później
+selectelement.label=Wybierz elementy do zablokowania
+stopselection.label=Usuń wybrane elementy
diff --git a/chrome/locale/pl/overlay.dtd b/chrome/locale/pl/overlay.dtd
index 416a602..c4d69e9 100644
--- a/chrome/locale/pl/overlay.dtd
+++ b/chrome/locale/pl/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Wybierz elementy do zablokowania">
-<!ENTITY selectelement.accesskey "R">
-<!ENTITY stopselection.label "Usuń wybrane elementy">
-<!ENTITY stopselection.accesskey "R">
 <!ENTITY helpbox.title "Wybór elementów - skróty klawiszowe">
diff --git a/chrome/locale/pt-BR/global.properties b/chrome/locale/pt-BR/global.properties
index 7af1251..f86617b 100644
--- a/chrome/locale/pt-BR/global.properties
+++ b/chrome/locale/pt-BR/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=visualizar código fonte (janela separada)
 command.showMenu.key=h
 command.showMenu.label=mostrar/esconder ajuda
-abpInstallationRequired=Element Hiding Helper necessita do Adblock Plus para operar corretamente e ainda não está instalado. Instalar agora?
-abpEnableRequired=Element Hiding Helper necessita do Adblock Plus para operar corretamente e está desabilitado. Habilitar agora?
-abpUpdateRequired=Element Hiding Helper necessita de uma nova versão do Adblock Plus para operar corretamente. Atualizar o Adblock Plus agora?
-selfUpdateRequired=Element Hiding Helper não pode operar com a versão do Adblock Plus instalada, uma nova versão do Adblock Plus poderá ajudar.  Atualizar o Adblock Plus agora?
-actionAccept=Sim
-actionDeny=Depois
+selectelement.label=Selecionar elemento para esconder
+stopselection.label=Cancelar seleção de elemento
diff --git a/chrome/locale/pt-BR/overlay.dtd b/chrome/locale/pt-BR/overlay.dtd
index ac5ed55..e58a24a 100644
--- a/chrome/locale/pt-BR/overlay.dtd
+++ b/chrome/locale/pt-BR/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Selecionar elemento para esconder">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Cancelar seleção de elemento">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Seleção de elemento - Teclas de Atalhos">
diff --git a/chrome/locale/pt-PT/global.properties b/chrome/locale/pt-PT/global.properties
index d07fc2e..b13da6f 100644
--- a/chrome/locale/pt-PT/global.properties
+++ b/chrome/locale/pt-PT/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=ver código fonte (em janela separada)
 command.showMenu.key=h
 command.showMenu.label=mostrar/ ocultar ajuda
-abpInstallationRequired=Element Hiding Helper requer o Adblock Plus para funcionar correctamente, ainda não o instalou. Instalar agora?
-abpEnableRequired=Element Hiding Helper requer o Adblock Plus para funcionar correctamente, este está inactivo. Activar agora?
-abpUpdateRequired=Element Hiding Helper requer uma nova versão do Adblock Plus para funcionar correctamente. Instalar actualização do Adblock Plus agora?
-selfUpdateRequired=Element Hiding Helper não funcionará com a versão instalada do Adblock Plus, uma nova versão do Element Hiding Helper pode solucionar o problema. Instalar actualização do Element Hiding Helper agora?
-actionAccept=Sim
-actionDeny=Mais tarde
+selectelement.label=Seleccionar elemento para ocultar
+stopselection.label=Abortar selecção de elemento
diff --git a/chrome/locale/pt-PT/overlay.dtd b/chrome/locale/pt-PT/overlay.dtd
index 9da5e43..96b1a87 100644
--- a/chrome/locale/pt-PT/overlay.dtd
+++ b/chrome/locale/pt-PT/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Seleccionar elemento para ocultar">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "Abortar selecção de elemento">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "Selecção de elementos - Teclas de atalho">
diff --git a/chrome/locale/ro/global.properties b/chrome/locale/ro/global.properties
index b184165..6a8d4a1 100644
--- a/chrome/locale/ro/global.properties
+++ b/chrome/locale/ro/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=vizualizare sursă (în fereastră separată)
 command.showMenu.key=h
 command.showMenu.label=afişare/ascundere ajutor
-abpInstallationRequired=Pentru a funcţiona corect,  Element Hiding Helper necesită Adblock Plus, care nu este instalat. Instalaţi Adblock Plus acum?
-abpEnableRequired=Pentru a funcţiona corect,  Element Hiding Helper necesită Adblock Plus, care însă este inactiv. Activaţi Adblock Plus acum?
-abpUpdateRequired=Element Hiding Helper necesită a vesiunea mai nouă a suplimentului Adblock Plus. Actualizaţi Adblock Plus acum?
-selfUpdateRequired=Element Hiding Helper nu funcţionează cu versiunea curentă Adblock Plus. O nouă versiune a suplimentului Element Hiding Helper poate rezolva această problemă. Actualizaţi Element Hiding Helper acum?
-actionAccept=Da
-actionDeny=Mai târziu
+selectelement.label=Alegere element pentru ascundere
+stopselection.label=Abandonare alegere element
diff --git a/chrome/locale/ro/overlay.dtd b/chrome/locale/ro/overlay.dtd
index f4e5f67..95426a6 100644
--- a/chrome/locale/ro/overlay.dtd
+++ b/chrome/locale/ro/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Alegere element pentru ascundere">
-<!ENTITY selectelement.accesskey "n">
-<!ENTITY stopselection.label "Abandonare alegere element">
-<!ENTITY stopselection.accesskey "n">
 <!ENTITY helpbox.title "Alegere element - taste rapide">
diff --git a/chrome/locale/ru/global.properties b/chrome/locale/ru/global.properties
index afb5cbd..eb10839 100644
--- a/chrome/locale/ru/global.properties
+++ b/chrome/locale/ru/global.properties
@@ -28,9 +28,5 @@ command.viewSource.alternativeKey=v
 command.viewSourceWindow.alternativeKey=u
 command.showMenu.alternativeKey=h
 
-abpInstallationRequired=Для Element Hiding Helper требуется расширение Adblock Plus, которое у Вас не установлено. Установить?
-abpEnableRequired=Для Element Hiding Helper требуется расширение Adblock Plus, которое у Вас отключено. Включить?
-abpUpdateRequired=Для Element Hiding Helper требудется более новая версия Adblock Plus. Установить обновление Adblock Plus?
-selfUpdateRequired=Element Hiding Helper не может работать с установленной версией Adblock Plus, возможно поможет установка более новой версии Element Hiding Helper. Установить обновление Element Hiding Helper?
-actionAccept=Да
-actionDeny=Напомнить позже
+selectelement.label=Скрыть элемент на странице
+stopselection.label=Отменить выбор элемента
diff --git a/chrome/locale/ru/overlay.dtd b/chrome/locale/ru/overlay.dtd
index 2b20838..ffd72c6 100644
--- a/chrome/locale/ru/overlay.dtd
+++ b/chrome/locale/ru/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label      "Скрыть элемент на странице">
-<!ENTITY selectelement.accesskey  "э">
-<!ENTITY stopselection.label      "Отменить выбор элемента">
-<!ENTITY stopselection.accesskey  "э">
 <!ENTITY helpbox.title            "Выбор элемента - Горячие клавиши">
diff --git a/chrome/locale/sk/global.properties b/chrome/locale/sk/global.properties
index 39e497d..bae6e96 100644
--- a/chrome/locale/sk/global.properties
+++ b/chrome/locale/sk/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=r
 command.viewSourceWindow.label=zobraziť zdrojový kód (v oddelenom okne)
 command.showMenu.key=s
 command.showMenu.label=zobraziť/skryť pomocníka
-abpInstallationRequired=Element Hiding Helper vyžaduje pre správne fungovanie Adblock Plus, vy ste ho ešte nenainštaloval. Nainštalovať terz?
-abpEnableRequired=Element Hiding Helper vyžaduje pre správne fungovanie Adblock Plus, vy ste ho deaktivoval. Zapnúť teraz?
-abpUpdateRequired=Element Hiding Helper vyžaduje novšiu verziu Adblock Plus pre správne fungovanie. Nainštalovať aktualizáciu Adblock Plus?
-selfUpdateRequired=Element Hiding Helper nemôže pracovať s inštalovanou verziou Adblock Plus, možno pomôže novšia verzia Element Hiding Helper. Nainštalovať aktualizáciu Element Hiding Helper?
-actionAccept=Áno
-actionDeny=Neskôr
+selectelement.label=Vybrať prvok na skrytie
+stopselection.label=Zrušiť výber prvku
diff --git a/chrome/locale/sk/overlay.dtd b/chrome/locale/sk/overlay.dtd
index a39b9df..8a30bda 100644
--- a/chrome/locale/sk/overlay.dtd
+++ b/chrome/locale/sk/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Vybrať prvok na skrytie">
-<!ENTITY selectelement.accesskey "p">
-<!ENTITY stopselection.label "Zrušiť výber prvku">
-<!ENTITY stopselection.accesskey "p">
 <!ENTITY helpbox.title "Výber prvku - Klávesové skratky">
diff --git a/chrome/locale/sl/global.properties b/chrome/locale/sl/global.properties
index 44229c5..de432de 100644
--- a/chrome/locale/sl/global.properties
+++ b/chrome/locale/sl/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=z
 command.viewSourceWindow.label=ogled izvorne kode (lastno okno)
 command.showMenu.key=p
 command.showMenu.label=prikaži/skrij pomoč
-abpInstallationRequired=Element Hiding Helper potrebuje Adblock Plus za delovanje, ki ga nimate še nameščenega. Ali ga namestim zdaj?
-abpEnableRequired=Element Hiding Helper potrebuje Adblock Plus za delovanje - slednji je onemogočen. Ga omogočim?
-abpUpdateRequired=Element Hiding Helper potrebuje novejšo različico Adblock Plus za delovanje. Namestim posodobitev sedaj?
-selfUpdateRequired=Element Hiding Helper ne more delovati z nameščeno različico Adblock Plus, obstaja novejša različica Element Hiding Helper. Namestim posodobitev?
-actionAccept=Da
-actionDeny=Pozneje
+selectelement.label=Izberite element, ki ga želite skriti
+stopselection.label=Prekliči izbor elementa
diff --git a/chrome/locale/sl/overlay.dtd b/chrome/locale/sl/overlay.dtd
index 64d8afc..dfa5c2a 100644
--- a/chrome/locale/sl/overlay.dtd
+++ b/chrome/locale/sl/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Izberite element, ki ga želite skriti">
-<!ENTITY selectelement.accesskey "I">
-<!ENTITY stopselection.label "Prekliči izbor elementa">
-<!ENTITY stopselection.accesskey "I">
 <!ENTITY helpbox.title "Izbor elementov - Bližnjice">
diff --git a/chrome/locale/sq/global.properties b/chrome/locale/sq/global.properties
index be7d8d3..5b615f5 100644
--- a/chrome/locale/sq/global.properties
+++ b/chrome/locale/sq/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=shiko burimin (dritare e ndarë)
 command.showMenu.key=h
 command.showMenu.label=trego/fshehe ndihmën
+selectelement.label=Zgjidhni elementet që do të fshihni
+stopselection.label=Ndërpre zgjedhjen e elementit
diff --git a/chrome/locale/sq/overlay.dtd b/chrome/locale/sq/overlay.dtd
index 0900161..5d7b2e5 100644
--- a/chrome/locale/sq/overlay.dtd
+++ b/chrome/locale/sq/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Zgjidhni elementet që do të fshihni">
-<!ENTITY selectelement.accesskey "l">
-<!ENTITY stopselection.label "Ndërpre zgjedhjen e elementit">
-<!ENTITY stopselection.accesskey "l">
 <!ENTITY helpbox.title "Zgjedhje elementi - Kode të Veçanta">
diff --git a/chrome/locale/sr/global.properties b/chrome/locale/sr/global.properties
index 49b4b3e..282b66e 100644
--- a/chrome/locale/sr/global.properties
+++ b/chrome/locale/sr/global.properties
@@ -25,9 +25,5 @@ command.blinkElement.alternativeKey=t
 command.viewSource.alternativeKey=i
 command.viewSourceWindow.alternativeKey=p
 command.showMenu.alternativeKey=m
-abpInstallationRequired=Element Hiding Helper захтева додатак Adblock Plus да би исправно радио, али га нисте инсталирали. Желите ли да га инсталирате?
-abpEnableRequired=Element Hiding Helper захтева додатак Adblock Plus да би исправно радио, али сте га онемогућили. Желите ли да га омогућите?
-abpUpdateRequired=Element Hiding Helper захтева новију верзију додатка Adblock Plus да би исправно радио. Желите ли да га ажурирате?
-selfUpdateRequired=Element Hiding Helper не ради са инсталираном верзијом додатка Adblock Plus, али ажурирана верзија може да реши проблем. Желите ли да ажурирате Hiding Helper?
-actionAccept=Да
-actionDeny=Касније
+selectelement.label=Изабери делове које желите да сакријете
+stopselection.label=Прекини бирање делова
diff --git a/chrome/locale/sr/overlay.dtd b/chrome/locale/sr/overlay.dtd
index 553bc2b..2f9ee4e 100644
--- a/chrome/locale/sr/overlay.dtd
+++ b/chrome/locale/sr/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Изабери делове које желите да сакријете">
-<!ENTITY selectelement.accesskey "б">
-<!ENTITY stopselection.label "Прекини бирање делова">
-<!ENTITY stopselection.accesskey "б">
 <!ENTITY helpbox.title "Пречице за бирање делова">
diff --git a/chrome/locale/sv-SE/global.properties b/chrome/locale/sv-SE/global.properties
index ee28c5c..83654ea 100644
--- a/chrome/locale/sv-SE/global.properties
+++ b/chrome/locale/sv-SE/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=ö
 command.viewSourceWindow.label=Visa källkod (i separat fönster)
 command.showMenu.key=h
 command.showMenu.label=Visa/göm hjälp
+selectelement.label=Välj element att gömma
+stopselection.label=Avbryt elementval
diff --git a/chrome/locale/sv-SE/overlay.dtd b/chrome/locale/sv-SE/overlay.dtd
index 2638027..213721d 100644
--- a/chrome/locale/sv-SE/overlay.dtd
+++ b/chrome/locale/sv-SE/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Välj element att gömma">
-<!ENTITY selectelement.accesskey "V">
-<!ENTITY stopselection.label "Avbryt elementval">
-<!ENTITY stopselection.accesskey "v">
 <!ENTITY helpbox.title "Elementval - Snabbtangenter">
diff --git a/chrome/locale/th/global.properties b/chrome/locale/th/global.properties
index b5c5370..768b000 100644
--- a/chrome/locale/th/global.properties
+++ b/chrome/locale/th/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=ฉ
 command.viewSourceWindow.label=ดูต้นฉบับ(ในหน้าต่างใหม่)
 command.showMenu.key=ซ
 command.showMenu.label=แสดงหรือซ่อนตัวช่วยเหลือ
-abpInstallationRequired=Element Hiding Helper ต้องใช้ร่วมกับ Adblock Plus ต้องการติดตั้งเลยหรือไม่
-abpEnableRequired=Element Hiding Helper ต้องใช้ร่วมกับ Adblock Plus คุณปิดใช้งานมันอยู่ ต้องการเปิดใช้งานหรือไม่
-abpUpdateRequired=Element Hiding Helper ต้องใช้ร่วมกับ Adblock Plus รุ่นใหม่กว่านี้ ต้องการติดตั้งการปรับรุ่น Adblock Plus หรือไม่
-selfUpdateRequired=Element Hiding Helper ไม่สามารถใช้ร่วมกับ Adblock Plus รุ่นนี้ ต้องการติดตั้ง Element Hiding Helper รุ่นใหม่หรือไม่
-actionAccept=ต้องการ
-actionDeny=ยังไม่ต้อง
+selectelement.label=เลือกส่วนประกอบเพื่อซ่อน
+stopselection.label=ยกเลิกการเลือกส่วนประกอบ
diff --git a/chrome/locale/th/overlay.dtd b/chrome/locale/th/overlay.dtd
index 8d823fe..8dab2e7 100644
--- a/chrome/locale/th/overlay.dtd
+++ b/chrome/locale/th/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "เลือกส่วนประกอบเพื่อซ่อน">
-<!ENTITY selectelement.accesskey "ส">
-<!ENTITY stopselection.label "ยกเลิกการเลือกส่วนประกอบ">
-<!ENTITY stopselection.accesskey "ส">
 <!ENTITY helpbox.title "การเลือกส่วนประกอบ - ปุ่มลัด">
diff --git a/chrome/locale/tr/global.properties b/chrome/locale/tr/global.properties
index 644fd23..e49af79 100644
--- a/chrome/locale/tr/global.properties
+++ b/chrome/locale/tr/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=p
 command.viewSourceWindow.label=kaynağa başka pencerede bak
 command.showMenu.key=z
 command.showMenu.label=yardımı göster/gizle
-abpInstallationRequired=Element Hiding Helper'ın düzgün çalışması için Adblock Plus gerekli ve siz onu henüz kurmamışsınız. Şimdi kurulsun mu?
-abpEnableRequired=Element Hiding Helper'ın düzgün çalışması için Adblock Plus'ın devrede olması gerekli. Şimdi etkinleştirilsin mi?
-abpUpdateRequired=Element Hiding Helper'ın düzgün çalışması için Adblock Plus'ın daha yeni bir sürümü gerekli. Adblock Plus güncellemesi şimdi kurulsun mu?
-selfUpdateRequired=Element Hiding Helper şu an kurulu Adblock Plus ile çalışamaz ve Element Hiding Helper'ın daha güncel bir sürümü sorunu giderebilir. Element Hiding Helper güncellemesi şimdi kurulsun mu?
-actionAccept=Evet
-actionDeny=Sonra
+selectelement.label=Gizlenecek öğeyi seç
+stopselection.label=Öğe seçiminden vazgeç
diff --git a/chrome/locale/tr/overlay.dtd b/chrome/locale/tr/overlay.dtd
index 5fef0c5..6170a59 100644
--- a/chrome/locale/tr/overlay.dtd
+++ b/chrome/locale/tr/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Gizlenecek öğeyi seç">
-<!ENTITY selectelement.accesskey "G">
-<!ENTITY stopselection.label "Öğe seçiminden vazgeç">
-<!ENTITY stopselection.accesskey "G">
 <!ENTITY helpbox.title "Öğe seçimi: Geçiş tuşları">
diff --git a/chrome/locale/uk/global.properties b/chrome/locale/uk/global.properties
index 3bc7e37..fcd7df2 100644
--- a/chrome/locale/uk/global.properties
+++ b/chrome/locale/uk/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=ж
 command.viewSourceWindow.label=переглянути джерело (в окремому вікні)
 command.showMenu.key=д
 command.showMenu.label=показати/приховати підказку
-abpInstallationRequired=Element Hiding Helper потребує для належної роботи Adblock Plus, а він не встановлений. Встановити?
-abpEnableRequired=Element Hiding Helper потребує для належної роботи Adblock Plus, а він не вимкнений. Увімкнути?
-abpUpdateRequired=Element Hiding Helper потребує для належної роботи новішу версію Adblock Plus. Встановити оновлення Adblock Plus?
-selfUpdateRequired=Element Hiding Helper не може працювати з встановленою версією Adblock Plus, підійде новіша версію Element Hiding Helper. Встановити оновлення Element Hiding Helper?
-actionAccept=Так
-actionDeny=Потім
+selectelement.label=Оберіть небажаний елемент
+stopselection.label=Скасувати вибір елементу
diff --git a/chrome/locale/uk/overlay.dtd b/chrome/locale/uk/overlay.dtd
index 41a04e3..ea00f80 100644
--- a/chrome/locale/uk/overlay.dtd
+++ b/chrome/locale/uk/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Оберіть небажаний елемент">
-<!ENTITY selectelement.accesskey "л">
-<!ENTITY stopselection.label "Скасувати вибір елементу">
-<!ENTITY stopselection.accesskey "л">
 <!ENTITY helpbox.title "Вибір елементу — Гарячі клавіші">
diff --git a/chrome/locale/vi/global.properties b/chrome/locale/vi/global.properties
index fcc4b13..55940c8 100644
--- a/chrome/locale/vi/global.properties
+++ b/chrome/locale/vi/global.properties
@@ -14,3 +14,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=xem mã nguồn (trong cửa sổ riêng)
 command.showMenu.key=p
 command.showMenu.label=hiện/ẩn trợ giúp
+selectelement.label=Chọn phần tử để ẩn
+stopselection.label=Hủy bỏ việc chọn phần tử
diff --git a/chrome/locale/vi/overlay.dtd b/chrome/locale/vi/overlay.dtd
index e75475c..205f27d 100644
--- a/chrome/locale/vi/overlay.dtd
+++ b/chrome/locale/vi/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "Chọn phần tử để ẩn">
-<!ENTITY selectelement.accesskey "C">
-<!ENTITY stopselection.label "Hủy bỏ việc chọn phần tử">
-<!ENTITY stopselection.accesskey "c">
 <!ENTITY helpbox.title "Chọn phần tử - Phím nóng">
diff --git a/chrome/locale/zh-CN/global.properties b/chrome/locale/zh-CN/global.properties
index 6557522..03b22cc 100644
--- a/chrome/locale/zh-CN/global.properties
+++ b/chrome/locale/zh-CN/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=查看源代码(在独立的窗口)
 command.showMenu.key=h
 command.showMenu.label=显示/隐藏 帮助
-abpInstallationRequired=使用Element Hiding Helper 需要安装 Adblock Plus, 现在安装?
-abpEnableRequired=使用Element Hiding Helper 需要启用 Adblock Plus, 现在启用?
-abpUpdateRequired=使用Element Hiding Helper 需要安装新版的 Adblock Plus, 现在更新?
-selfUpdateRequired=Element Hiding Helper 需要更新才能和 Adblock Plus 正常使用, 现在更新?
-actionAccept=确定
-actionDeny=以后再说
+selectelement.label=选择想要隐藏的元素
+stopselection.label=取消选择
diff --git a/chrome/locale/zh-CN/overlay.dtd b/chrome/locale/zh-CN/overlay.dtd
index 6c98f72..b3e4195 100644
--- a/chrome/locale/zh-CN/overlay.dtd
+++ b/chrome/locale/zh-CN/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "选择想要隐藏的元素">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "取消选择">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "页面元素选择 - 快捷键">
diff --git a/chrome/locale/zh-TW/global.properties b/chrome/locale/zh-TW/global.properties
index b98860f..1f3f58c 100644
--- a/chrome/locale/zh-TW/global.properties
+++ b/chrome/locale/zh-TW/global.properties
@@ -16,9 +16,5 @@ command.viewSourceWindow.key=u
 command.viewSourceWindow.label=於新視窗檢視原始碼
 command.showMenu.key=h
 command.showMenu.label=顯示/隱藏「說明」
-abpInstallationRequired=Element Hiding Helper 需要安裝 Adblock Plus 才能正常運作,目前未安裝 Adblock Plus,你要安裝嗎?
-abpEnableRequired=Element Hiding Helper 需要啟用 Adblock Plus 才能正常運作,目前 Adblock Plus 是停用的,你要啟用嗎?
-abpUpdateRequired=Element Hiding Helper 需要安裝新版本的 Adblock Plus 才能正常運作,你要更新 Adblock Plus 嗎?
-selfUpdateRequired=Element Hiding Helper 無法在目前的 Adblock Plus 版本上運作,安裝新版本的 Element Hiding Helper 也許可以解決這個問題,你要更新 Element Hiding Helper 嗎?
-actionAccept=是
-actionDeny=稍後
+selectelement.label=選擇要隱藏的元素
+stopselection.label=離開選擇元素模式
diff --git a/chrome/locale/zh-TW/overlay.dtd b/chrome/locale/zh-TW/overlay.dtd
index d27b4b6..46c8e79 100644
--- a/chrome/locale/zh-TW/overlay.dtd
+++ b/chrome/locale/zh-TW/overlay.dtd
@@ -1,5 +1 @@
-<!ENTITY selectelement.label "選擇要隱藏的元素">
-<!ENTITY selectelement.accesskey "S">
-<!ENTITY stopselection.label "離開選擇元素模式">
-<!ENTITY stopselection.accesskey "S">
 <!ENTITY helpbox.title "選擇元素模式 - 快捷鍵">
diff --git a/defaults/preferences/elemhidehelper.js b/defaults/preferences/prefs.js
similarity index 100%
rename from defaults/preferences/elemhidehelper.js
rename to defaults/preferences/prefs.js
diff --git a/metadata b/metadata
index 883c7da..3453471 100644
--- a/metadata
+++ b/metadata
@@ -2,10 +2,11 @@
 id=elemhidehelper at adblockplus.org
 basename=elemhidehelper
 branchname=ELEMENT_HIDING_HELPER
-version=1.1.5a
+version=1.2a
 author=Wladimir Palant
-icon=chrome://elemhidehelper-icon/skin/icon.png
 about=chrome://elemhidehelper/content/about.xul
+restartless=true
+nojar=true
 
 [contributors]
 1=Rob Brown
@@ -19,8 +20,8 @@ fr=http://adblockplus.org/fr/elemhidehelper
 ko=http://adblockplus.org/ko/elemhidehelper
 
 [compat]
-firefox=3.6.13/12.0a1
-thunderbird=3.1.7/12.0a1
-seamonkey=2.1/2.9a1
+firefox=8.0/12.0a1
+thunderbird=8.0/12.0a1
+seamonkey=2.5/2.9a1
 #songbird=1.9.0a/1.11.0a
 conkeror=0.1/100.0
diff --git a/modules/Aardvark.jsm b/modules/Aardvark.jsm
index e06e614..46f3d54 100644
--- a/modules/Aardvark.jsm
+++ b/modules/Aardvark.jsm
@@ -30,8 +30,7 @@ const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
-let baseURI = Cc["@adblockplus.org/ehh/startup;1"].getService(Ci.nsIURI);
-Cu.import(baseURI.spec + "Prefs.jsm");
+Cu.import("chrome://elemhidehelper-modules/content/Prefs.jsm");
 
 // To be replaced when selection starts
 function E(id) {return null;}
@@ -79,7 +78,7 @@ var Aardvark =
     this.browser.contentWindow.focus();
   
     let doc = this.browser.contentDocument;
-    this.boxElem = doc.importNode(E("ehh-elementmarker").firstChild.cloneNode(true), true);
+    this.boxElem = doc.importNode(E("ehh-elementmarker").firstElementChild.cloneNode(true), true);
   
     this.initHelpBox();
   
@@ -155,7 +154,7 @@ var Aardvark =
   initHelpBox: function()
   {
     var helpBoxRows = E("ehh-helpbox-rows");
-    if (helpBoxRows.firstChild)
+    if (helpBoxRows.firstElementChild)
       return;
   
     // Help box hasn't been filled yet, need to do it now
@@ -641,8 +640,8 @@ var Aardvark =
     }
     sourceBox.hidePopup();
   
-    while (sourceBox.firstChild)
-      sourceBox.removeChild(sourceBox.firstChild);
+    while (sourceBox.firstElementChild)
+      sourceBox.removeChild(sourceBox.firstElementChild);
     this.getOuterHtmlFormatted(elem, sourceBox);
     this.commentElem = elem;
   
@@ -683,8 +682,8 @@ var Aardvark =
   
         var startTag = this.window.document.createElement("hbox");
         startTag.className = "elementStartTag";
-        if (!node.firstChild)
-          startTag.className += "elementEndTag";
+        if (!node.firstElementChild)
+          startTag.className += " elementEndTag";
   
         this.appendDescription(startTag, "<", null);
         this.appendDescription(startTag, node.tagName, "tagName");
@@ -700,12 +699,12 @@ var Aardvark =
           }
         }
   
-        this.appendDescription(startTag, node.firstChild ? ">" : " />", null);
+        this.appendDescription(startTag, node.firstElementChild ? ">" : " />", null);
         box.appendChild(startTag);
   
-        if (node.firstChild)
+        if (node.firstElementChild)
         {
-          for (var child = node.firstChild; child; child = child.nextSibling)
+          for (var child = node.firstElementChild; child; child = child.nextElementSibling)
             this.getOuterHtmlFormatted(child, box);
   
           var endTag = this.window.document.createElement("hbox");
diff --git a/modules/AppIntegration.jsm b/modules/AppIntegration.jsm
index b73c55c..f0ff346 100644
--- a/modules/AppIntegration.jsm
+++ b/modules/AppIntegration.jsm
@@ -29,16 +29,25 @@ const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
-let baseURI = Cc["@adblockplus.org/ehh/startup;1"].getService(Ci.nsIURI);
-Cu.import(baseURI.spec + "Aardvark.jsm");
-Cu.import(baseURI.spec + "Prefs.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 var AppIntegration =
 {
+  initialized: false,
   elementMarkerClass: null,
+  styleURI: null,
 
   startup: function()
   {
+    if (this.initialized)
+      return;
+    this.initialized = true;
+
+    Cu.import("chrome://elemhidehelper-modules/content/Aardvark.jsm");
+    Cu.import("chrome://elemhidehelper-modules/content/Prefs.jsm");
+    Prefs.startup();
+
     // Use random marker class
     let rnd = [];
     let offset = "a".charCodeAt(0);
@@ -48,60 +57,212 @@ var AppIntegration =
     this.elementMarkerClass = String.fromCharCode.apply(String, rnd);
 
     // Load CSS asynchronously
-    try
+    let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIJSXMLHttpRequest);
+    request.open("GET", "chrome://elemhidehelper/content/elementmarker.css");
+    request.overrideMimeType("text/plain");
+    request.addEventListener("load", function()
+    {
+      if (!this.initialized)
+        return;
+
+      let data = request.responseText.replace(/%%CLASS%%/g, this.elementMarkerClass);
+      let styleService = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
+      this.styleURI = Services.io.newURI("data:text/css," + encodeURIComponent(data), null, null);
+      styleService.loadAndRegisterSheet(this.styleURI, Ci.nsIStyleSheetService.USER_SHEET);
+    }.bind(this), false);
+    request.send(null);
+
+    // Load overlay asynchonously and start attaching to windows once done
+    let request2 = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIJSXMLHttpRequest);
+    request2.open("GET", "chrome://elemhidehelper/content/overlay.xul");
+    request2.addEventListener("load", function()
+    {
+      if (!this.initialized)
+        return;
+
+      WindowObserver.overlay = {__proto__: null, "_processing": []};
+      for (let child = request2.responseXML.documentElement.firstElementChild; child; child = child.nextElementSibling)
+        if (child.hasAttribute("id"))
+          WindowObserver.overlay[child.getAttribute("id")] = child;
+      for (let child = request2.responseXML.firstChild; child; child = child.nextSibling)
+        if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE)
+          WindowObserver.overlay._processing.push(child);
+      WindowObserver.startup();
+    }.bind(this), false);
+    request2.send(null);
+  },
+
+  shutdown: function()
+  {
+    if (!this.initialized)
+      return;
+    this.initialized = false;
+
+    if (this.styleURI)
+    {
+      let styleService = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
+      styleService.unregisterSheet(this.styleURI, Ci.nsIStyleSheetService.USER_SHEET);
+      this.styleURI = null;
+    }
+
+    Prefs.shutdown();
+    Aardvark.quit();
+    WindowObserver.shutdown();
+
+    Cu.unload("chrome://elemhidehelper-modules/content/Aardvark.jsm");
+    Cu.unload("chrome://elemhidehelper-modules/content/Prefs.jsm");
+  }
+};
+
+var WindowObserver =
+{
+  initialized: false,
+
+  overlay: null,
+
+  startup: function()
+  {
+    if (this.initialized)
+      return;
+    this.initialized = true;
+
+    let e = Services.ww.getWindowEnumerator();
+    while (e.hasMoreElements())
     {
-      let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIJSXMLHttpRequest);
-      request.open("GET", "chrome://elemhidehelper/content/elementmarker.css");
-      request.overrideMimeType("text/plain");
+      let window = e.getNext().QueryInterface(Ci.nsIDOMWindow);
+      if (window.document.readyState == "complete")
+        this.applyToWindow(window);
+      else
+        this.observe(window, "domwindowopened", null);
+    }
 
-      let me = this;
-      request.onload = function()
+    Services.ww.registerNotification(this);
+  },
+
+  shutdown: function()
+  {
+    if (!this.initialized)
+      return;
+    this.initialized = false;
+
+    let e = Services.ww.getWindowEnumerator();
+    while (e.hasMoreElements())
+      this.removeFromWindow(e.getNext().QueryInterface(Ci.nsIDOMWindow));
+
+    Services.ww.unregisterNotification(this);
+  },
+
+  applyToWindow: function(window)
+  {
+    if (!window.document.getElementById("abp-hooks"))
+      return;
+
+    for (let id in this.overlay)
+      if (id != "_processing")
+        window.document.documentElement.appendChild(window.document.importNode(this.overlay[id], true));
+    for (let i = 0; i < this.overlay._processing.length; i++)
+    {
+      let node = window.document.importNode(this.overlay._processing[i]);
+      node.data += ' class="elemhidehelper-node"';
+      window.document.insertBefore(node, window.document.firstChild);
+    }
+
+    window._ehhWrapper = new WindowWrapper(window);
+  },
+
+  removeFromWindow: function(window)
+  {
+    if (!window._ehhWrapper)
+      return;
+
+    window._ehhWrapper.shutdown();
+    delete window._ehhWrapper;
+
+    let remove = [];
+    for (let id in this.overlay)
+    {
+      if (id != "_processing")
       {
-        let data = request.responseText.replace(/%%CLASS%%/g, me.elementMarkerClass);
-        let styleService = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
-        let ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
-        let url = ioService.newURI("data:text/css," + encodeURIComponent(data), null, null);
-        styleService.loadAndRegisterSheet(url, Ci.nsIStyleSheetService.USER_SHEET);
+        let element = window.document.getElementById(id);
+        if (element)
+          remove.push(element);
       }
-      request.send(null);
     }
-    catch (e)
+
+    for (let child = window.document.firstChild; child; child = child.nextSibling)
+      if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE && child.data.indexOf("elemhidehelper-node") >= 0)
+        remove.push(child);
+
+    for (let i = 0; i < remove.length; i++)
+      remove[i].parentNode.removeChild(remove[i]);
+  },
+
+  get menuItem()
+  {
+    let stringBundle = Services.strings.createBundle("chrome://elemhidehelper/locale/global.properties");
+    let result = [stringBundle.GetStringFromName("selectelement.label"), stringBundle.GetStringFromName("stopselection.label")];
+
+    delete this.menuItem;
+    this.__defineGetter__("menuItem", function() result);
+    return this.menuItem;
+  },
+
+  observe: function(subject, topic, data)
+  {
+    if (topic == "domwindowopened")
     {
-      Cu.reportError(e);
+      let window = subject.QueryInterface(Ci.nsIDOMWindow);
+      window.addEventListener("load", function()
+      {
+        window.setTimeout(function()
+        {
+          if (this.initialized)
+            this.applyToWindow(window);
+        }.bind(this), 0);
+      }.bind(this), false);
     }
   },
 
-  addWindow: function(wnd)
-  {
-    new WindowWrapper(wnd);
-  }
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
 };
 
 function WindowWrapper(wnd)
 {
   this.window = wnd;
+  this.browser = this.E("abp-hooks").getBrowser();
+
+  this.popupShowingHandler = this.popupShowingHandler.bind(this);
+  this.popupHidingHandler = this.popupHidingHandler.bind(this);
+  this.keyPressHandler = this.keyPressHandler.bind(this);
+  this.toggleSelection = this.toggleSelection.bind(this);
+  this.hideTooltips = this.hideTooltips.bind(this);
+  this.stopSelection = this.stopSelection.bind(this);
 
-  this.E("ehh-elementmarker").firstChild.className = AppIntegration.elementMarkerClass;
+  this.E("ehh-elementmarker").firstElementChild.setAttribute("class", AppIntegration.elementMarkerClass);
 
-  this.registerEventListeners();
-  this.configureKeys();
+  this.startup();
 }
 WindowWrapper.prototype =
 {
   window: null,
+  browser: null,
 
-  _bindMethod: function(method)
+  startup: function()
   {
-    let me = this;
-    return function() method.apply(me, arguments);
+    this.window.addEventListener("popupshowing", this.popupShowingHandler, false);
+    this.window.addEventListener("popuphiding", this.popupHidingHandler, false);
+    this.window.addEventListener("keypress", this.keyPressHandler, false);
+    this.window.addEventListener("blur", this.hideTooltips, true);
+    this.browser.addEventListener("select", this.stopSelection, false);
   },
 
-  get browser()
+  shutdown: function()
   {
-    let hooks = this.E("abp-hooks");
-    let browser = (hooks ? hooks.getBrowser() : null);
-    this.__defineGetter__("browser", function() browser);
-    return this.browser;
+    this.window.removeEventListener("popupshowing", this.popupShowingHandler, false);
+    this.window.removeEventListener("popuphiding", this.popupHidingHandler, false);
+    this.window.removeEventListener("keypress", this.keyPressHandler, false);
+    this.window.removeEventListener("blur", this.hideTooltips, true);
+    this.browser.removeEventListener("select", this.stopSelection, false);
   },
 
   E: function(id)
@@ -111,153 +272,76 @@ WindowWrapper.prototype =
     return this.E(id);
   },
 
-  registerEventListeners: function()
+  key: undefined,
+
+  popupShowingHandler: function(event)
   {
-    for each (let [id, event, handler] in this.eventHandlers)
-    {
-      handler = this._bindMethod(handler);
+    let popup = event.target;
+    if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
+      return;
 
-      let element = this.E(id);
-      if (element)
-        element.addEventListener(event, handler, false);
-    }
+    let enabled = Aardvark.canSelect(this.browser);
+    let running = (enabled && this.browser == Aardvark.browser);
 
-    this.window.addEventListener("blur", this._bindMethod(this.hideTooltips), true);
-    this.browser.addEventListener("select", this._bindMethod(this.stopSelection), false);
+    let [labelStart, labelStop] = WindowObserver.menuItem;
+    let item = popup.ownerDocument.createElement("menuitem");
+    item.setAttribute("label", running ? labelStop : labelStart);
+    item.setAttribute("class", "elemhidehelper-item");
+    if (!enabled)
+      item.setAttribute("disabled", "true");
+
+    if (typeof this.key == "undefined")
+      this.configureKey(event.currentTarget);
+    if (this.key && this.key.text)
+      item.setAttribute("acceltext", this.key.text);
+
+    item.addEventListener("command", this.toggleSelection, false);
+
+    let insertBefore = null;
+    for (let child = popup.firstChild; child; child = child.nextSibling)
+      if (/-options$/.test(child.id))
+        insertBefore = child;
+    popup.insertBefore(item, insertBefore);
   },
 
-  configureKeys: function()
+  popupHidingHandler: function(event)
   {
-    let validModifiers =
-    {
-      accel: "accel",
-      ctrl: "control",
-      control: "control",
-      shift: "shift",
-      alt: "alt",
-      meta: "meta",
-      __proto__: null
-    };
-
-    try
-    {
-      let accelKey = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch).getIntPref("ui.key.accelKey");
-      if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_CONTROL)
-        validModifiers.ctrl = validModifiers.control = "accel";
-      else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_ALT)
-        validModifiers.alt = "accel";
-      else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_META)
-        validModifiers.meta = "accel";
-    }
-    catch(e)
-    {
-      Cu.reportError(e);
-    }
+    let popup = event.target;
+    if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
+      return;
 
-    // Find which hotkeys are already taken, convert them to canonical form
-    let existing = {};
-    let keys = this.window.document.getElementsByTagName("key");
-    for (let i = 0; i < keys.length; i++)
-    {
-      let key = keys[i];
-      let keyChar = key.getAttribute("key");
-      let keyCode = key.getAttribute("keycode");
-      if (!keyChar && !keyCode)
-        continue;
-
-      let modifiers = [];
-      let seenModifier = {__proto__: null};
-      let keyModifiers = key.getAttribute("modifiers");
-      if (keyModifiers)
-      {
-        for each (let modifier in keyModifiers.match(/\w+/g))
-        {
-          modifier = modifier.toLowerCase();
-          if (!(modifier in validModifiers))
-            continue;
+    let items = popup.getElementsByClassName("elemhidehelper-item");
+    if (items.length)
+      items[0].parentNode.removeChild(items[0]);
+  },
 
-          modifier = validModifiers[modifier];
-          if (modifier in seenModifier)
-            continue;
+  keyPressHandler: function(event)
+  {
+    if (typeof this.key == "undefined")
+      this.configureKey(event.currentTarget);
 
-          seenModifier[modifier] = true;
-          modifiers.push(modifier);
-        }
-        modifiers.sort();
+    if (event.defaultPrevented || !this.key)
+      return;
+    if (this.key.shift != event.shiftKey || this.key.alt != event.altKey)
+      return;
+    if (this.key.meta != event.metaKey || this.key.control != event.ctrlKey)
+      return;
 
-        let canonical = modifiers.concat([(keyChar || keyCode).toUpperCase()]).join(" ");
-        existing[canonical] = true;
-      }
-    }
+    if (this.key.char && (!event.charCode || String.fromCharCode(event.charCode).toUpperCase() != this.key.char))
+      return;
+    else if (this.key.code && (!event.keyCode || event.keyCode != this.key.code))
+      return;
 
-    // Define our keys
-    for (let pref in Prefs)
-    {
-      if (/_key$/.test(pref) && typeof Prefs[pref] == "string")
-      {
-        try
-        {
-          this.configureKey(RegExp.leftContext, Prefs[pref], validModifiers, existing);
-        }
-        catch (e)
-        {
-          Cu.reportError(e);
-        }
-      }
-    }
+    event.preventDefault();
+    this.toggleSelection();
   },
 
-  configureKey: function(id, value, validModifiers, existing)
+  configureKey: function(window)
   {
-    let command = this.E("ehh-command-" + id);
-    if (!command)
-      return;
-
-    for each (let variant in value.split(/\s*,\s*/))
-    {
-      if (!variant)
-        continue;
-
-      let modifiers = [];
-      let seenModifier = {__proto__: null};
-      let keychar = null;
-      let keycode = null;
-      for each (let part in variant.split(/\s+/))
-      {
-        if (part.toLowerCase() in validModifiers)
-        {
-          if (part in seenModifier)
-            continue;
-  
-          seenModifier[part] = true;
-          modifiers.push(validModifiers[part.toLowerCase()]);
-        }
-        else if (part.length == 1)
-          keychar = part.toUpperCase();
-        else if ("DOM_VK_" + part.toUpperCase() in Ci.nsIDOMKeyEvent)
-          keycode = "VK_" + part.toUpperCase();
-      }
-    
-      if (!keychar && !keycode)
-        continue;
-
-      modifiers.sort();
-      let canonical = modifiers.concat([keychar || keycode]).join(" ");
-      if (canonical in existing)
-        continue;
-
-      let element = this.window.document.createElement("key");
-      element.setAttribute("id", "ehh-key-" + id);
-      element.setAttribute("command", "ehh-command-" + id);
-      if (keychar)
-        element.setAttribute("key", keychar);
-      else
-        element.setAttribute("keycode", keycode);
-      element.setAttribute("modifiers", modifiers.join(","));
-  
-      this.E("abp-keyset").appendChild(element);
-      return;
-    }
+    let variants = Prefs.selectelement_key;
+    let scope = {};
+    Services.scriptloader.loadSubScript("chrome://elemhidehelper/content/keySelector.js", scope);
+    this.key = scope.selectKey(window, variants);
   },
 
   hideTooltips: function()
@@ -266,21 +350,6 @@ WindowWrapper.prototype =
       Aardvark.hideTooltips();
   },
 
-  fillPopup: function(event)
-  {
-    // Submenu being opened - ignore
-    if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(event.target.getAttribute("id")))
-      return;
-    let prefix = RegExp.$1;
-  
-    let enabled = Aardvark.canSelect(this.browser);
-    let running = (enabled && this.browser == Aardvark.browser);
-  
-    this.E("ehh-command-selectelement2").setAttribute("disabled", !enabled);
-    this.E(prefix + "ehh-selectelement").hidden = running;
-    this.E(prefix + "ehh-stopselection").hidden = !running;
-  },
-
   toggleSelection: function()
   {
     if (this.browser == Aardvark.browser)
@@ -299,13 +368,3 @@ WindowWrapper.prototype =
     Aardvark.quit();
   }
 };
-
-WindowWrapper.prototype.eventHandlers = [
-  ["abp-status-popup", "popupshowing", WindowWrapper.prototype.fillPopup],
-  ["abp-toolbar-popup", "popupshowing", WindowWrapper.prototype.fillPopup],
-  ["abp-menuitem-popup", "popupshowing", WindowWrapper.prototype.fillPopup],
-  ["ehh-command-selectelement", "command", WindowWrapper.prototype.toggleSelection],
-  ["ehh-command-selectelement2", "command", WindowWrapper.prototype.toggleSelection],
-];
-
-AppIntegration.startup();
diff --git a/modules/Prefs.jsm b/modules/Prefs.jsm
index 508bb67..488475d 100644
--- a/modules/Prefs.jsm
+++ b/modules/Prefs.jsm
@@ -29,12 +29,12 @@ const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
+Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 const prefRoot = "extensions.elemhidehelper.";
 
-let prefService = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
-let branch = prefService.getBranch(prefRoot);
+let branch = Services.prefs.getBranch(prefRoot);
 
 var Prefs =
 {
@@ -42,9 +42,11 @@ var Prefs =
 
   startup: function()
   {
+    if (this.initialized)
+      return;
     this.initialized = true;
 
-    let defaultBranch = prefService.getDefaultBranch(prefRoot);
+    let defaultBranch = Services.prefs.getDefaultBranch(prefRoot);
     for each (let name in defaultBranch.getChildList("", {}))
     {
       let type = defaultBranch.getPrefType(name);
@@ -75,7 +77,7 @@ var Prefs =
     }
 
     // Preferences used to be stored in Adblock Plus branch, import
-    let importBranch = prefService.getBranch("extensions.adblockplus.");
+    let importBranch = Services.prefs.getBranch("extensions.adblockplus.");
     if (importBranch.prefHasUserValue("ehh-selectelement_key") && importBranch.getPrefType("ehh-selectelement_key") == Ci.nsIPrefBranch.PREF_STRING)
     {
       Prefs.selectelement_key = importBranch.getCharPref("ehh-selectelement_key");
@@ -86,6 +88,23 @@ var Prefs =
       Prefs.showhelp = importBranch.getBoolPref("ehh.showhelp");
       importBranch.clearUserPref("ehh.showhelp");
     }
+  },
+
+  shutdown: function()
+  {
+    if (!this.initialized)
+      return;
+    this.initialized = false;
+
+    try
+    {
+      branch.QueryInterface(Ci.nsIPrefBranch2)
+            .removeObserver("", PrefsPrivate);
+    }
+    catch (e)
+    {
+      Cu.reportError(e);
+    }
   }
 };
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus-element-hiding-helper.git



More information about the Pkg-mozext-commits mailing list