[Pkg-mozext-commits] [stylish] 01/01: Imported Upstream version 2.0.0

Dmitry Smirnov onlyjob at moszumanska.debian.org
Thu Jan 1 06:20:45 UTC 2015


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

onlyjob pushed a commit to branch upstream
in repository stylish.

commit a3ad128 (upstream)
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date:   Thu Jan 1 06:13:57 2015

    Imported Upstream version 2.0.0
---
 .gitignore                                         |   1 +
 README                                             |  20 -
 README.md                                          |  49 ++
 chrome.manifest                                    |  61 +-
 components/aboutStylishEdit.js                     |  24 +
 components/stylishDataSource.js                    |   2 +-
 components/stylishStartup.js                       | 183 ++--
 components/stylishStyle.js                         |  69 +-
 content/addon.xbl                                  |  14 +-
 content/base-test.js                               |   2 +
 content/clear.js                                   |   2 +-
 content/common.js                                  | 275 ++----
 content/domiOverlay.xul                            |   1 +
 content/edit.js                                    | 351 ++++----
 content/edit.xul                                   | 200 +++--
 content/frame-utils.js                             | 124 +++
 content/install-frame-script.js                    |  95 +++
 content/install-overlay.js                         | 159 ----
 content/install.js                                 |  11 +-
 content/install.xul                                |  90 +-
 content/manage-addons-fx4.js                       |  76 --
 content/manage-addons.js                           |  90 ++
 .../{manage-addons-fx4.xul => manage-addons.xul}   |  22 +-
 content/manage-standalone.xul                      |  35 -
 content/manage.html                                |   1 +
 content/manage.js                                  | 498 -----------
 content/manage.xul                                 |  41 -
 content/options.xul                                |   2 +-
 content/overlay-mobile.xul                         |   1 -
 content/overlay.js                                 | 938 +++++++++++----------
 content/{overlay-fx4.xul => overlay.xul}           |  13 +-
 content/style.xbl                                  | 411 ---------
 content/test.xul                                   |   1 +
 defaults/preferences/stylish.js                    |  10 +-
 install.rdf                                        |  63 +-
 locale/cs/common.dtd                               |   2 +
 locale/cs/common.properties                        |   6 -
 locale/cs/edit.dtd                                 |   6 +-
 locale/cs/edit.properties                          |   2 -
 locale/cs/extensions.dtd                           | 160 ----
 locale/cs/install.dtd                              |   2 -
 locale/cs/manage.dtd                               |   9 -
 locale/cs/manage.properties                        |  17 -
 locale/cs/overlay.dtd                              |   6 +
 locale/cs/overlay.properties                       |   4 +
 locale/da/common.dtd                               |   2 +
 locale/da/common.properties                        |   6 -
 locale/da/edit.dtd                                 |   6 +-
 locale/da/edit.properties                          |   2 -
 locale/da/extensions.dtd                           | 160 ----
 locale/da/install.dtd                              |   2 -
 locale/da/manage.dtd                               |   9 -
 locale/da/manage.properties                        |  17 -
 locale/da/overlay.dtd                              |   6 +
 locale/da/overlay.properties                       |   4 +
 locale/de/common.dtd                               |   2 +
 locale/de/common.properties                        |   6 -
 locale/de/edit.dtd                                 |   6 +-
 locale/de/edit.properties                          |   2 -
 locale/de/extensions.dtd                           | 160 ----
 locale/de/install.dtd                              |   2 -
 locale/de/manage.dtd                               |   9 -
 locale/de/manage.properties                        |  17 -
 locale/de/overlay.dtd                              |   6 +
 locale/de/overlay.properties                       |   4 +
 locale/en-GB/common.dtd                            |   3 -
 locale/en-GB/common.properties                     |  10 -
 locale/en-GB/domi.dtd                              |   1 -
 locale/en-GB/edit.dtd                              |  24 -
 locale/en-GB/edit.properties                       |   7 -
 locale/en-GB/extensions.dtd                        | 160 ----
 locale/en-GB/install.dtd                           |   8 -
 locale/en-GB/manage.dtd                            |  19 -
 locale/en-GB/manage.properties                     |  24 -
 locale/en-GB/overlay.dtd                           |  12 -
 locale/en-GB/overlay.properties                    |  10 -
 locale/en-US/common.dtd                            |   2 +
 locale/en-US/common.properties                     |   6 -
 locale/en-US/edit.dtd                              |   8 +-
 locale/en-US/edit.properties                       |   2 -
 locale/en-US/extensions.dtd                        | 160 ----
 locale/en-US/install.dtd                           |   2 -
 locale/en-US/manage.dtd                            |  11 +-
 locale/en-US/manage.properties                     |  19 +-
 locale/en-US/overlay.dtd                           |  12 +-
 locale/en-US/overlay.properties                    |  10 +-
 locale/es-AR/common.dtd                            |   2 +
 locale/es-AR/common.properties                     |   6 -
 locale/es-AR/edit.dtd                              |   6 +-
 locale/es-AR/edit.properties                       |   2 -
 locale/es-AR/extensions.dtd                        | 160 ----
 locale/es-AR/install.dtd                           |   2 -
 locale/es-AR/manage.dtd                            |   9 -
 locale/es-AR/manage.properties                     |  17 -
 locale/es-AR/overlay.dtd                           |   6 +
 locale/es-AR/overlay.properties                    |   4 +
 locale/es-ES/common.dtd                            |   2 +
 locale/es-ES/common.properties                     |   6 -
 locale/es-ES/edit.dtd                              |   6 +-
 locale/es-ES/edit.properties                       |   2 -
 locale/es-ES/extensions.dtd                        | 160 ----
 locale/es-ES/install.dtd                           |   2 -
 locale/es-ES/manage.dtd                            |   9 -
 locale/es-ES/manage.properties                     |  17 -
 locale/es-ES/overlay.dtd                           |   6 +
 locale/es-ES/overlay.properties                    |   4 +
 locale/et-EE/common.dtd                            |   3 -
 locale/et-EE/common.properties                     |  10 -
 locale/et-EE/extensions.dtd                        | 160 ----
 locale/et-EE/manage.properties                     |  24 -
 locale/et/common.dtd                               |   5 +
 locale/et/common.properties                        |   4 +
 locale/{et-EE => et}/domi.dtd                      |   0
 locale/{et-EE => et}/edit.dtd                      |   6 +-
 locale/{et-EE => et}/edit.properties               |   2 -
 locale/{et-EE => et}/install.dtd                   |   2 -
 locale/{et-EE => et}/install.properties            |   0
 locale/{et-EE => et}/manage.dtd                    |   9 -
 locale/et/manage.properties                        |   7 +
 locale/{et-EE => et}/overlay.dtd                   |   6 +
 locale/{et-EE => et}/overlay.properties            |   4 +
 locale/fi/common.dtd                               |   2 +
 locale/fi/common.properties                        |   6 -
 locale/fi/edit.dtd                                 |   6 +-
 locale/fi/edit.properties                          |   2 -
 locale/fi/extensions.dtd                           | 160 ----
 locale/fi/install.dtd                              |   2 -
 locale/fi/manage.dtd                               |  11 +-
 locale/fi/manage.properties                        |  17 -
 locale/fi/overlay.dtd                              |   6 +
 locale/fi/overlay.properties                       |   4 +
 locale/fr/common.dtd                               |   2 +
 locale/fr/common.properties                        |   6 -
 locale/fr/edit.dtd                                 |   6 +-
 locale/fr/edit.properties                          |   2 -
 locale/fr/extensions.dtd                           | 160 ----
 locale/fr/install.dtd                              |   2 -
 locale/fr/manage.dtd                               |   9 -
 locale/fr/manage.properties                        |  17 -
 locale/fr/overlay.dtd                              |   6 +
 locale/fr/overlay.properties                       |   4 +
 locale/gl/common.dtd                               |   5 +
 locale/gl/common.properties                        |   4 +
 locale/gl/domi.dtd                                 |   1 +
 locale/gl/edit.dtd                                 |  22 +
 locale/gl/edit.properties                          |   5 +
 locale/gl/install.dtd                              |   6 +
 locale/gl/install.properties                       |   8 +
 locale/gl/manage.dtd                               |  10 +
 locale/gl/manage.properties                        |   7 +
 locale/gl/overlay.dtd                              |  18 +
 locale/gl/overlay.properties                       |  14 +
 locale/he/common.dtd                               |   2 +
 locale/he/common.properties                        |   6 -
 locale/he/edit.dtd                                 |   6 +-
 locale/he/edit.properties                          |   2 -
 locale/he/extensions.dtd                           | 160 ----
 locale/he/install.dtd                              |   2 -
 locale/he/manage.dtd                               |   9 -
 locale/he/manage.properties                        |  17 -
 locale/he/overlay.dtd                              |   6 +
 locale/he/overlay.properties                       |   4 +
 locale/hu-HU/common.properties                     |  10 -
 locale/hu-HU/extensions.dtd                        | 160 ----
 locale/hu-HU/manage.properties                     |  24 -
 locale/{hu-HU => hu}/common.dtd                    |   2 +
 locale/hu/common.properties                        |   4 +
 locale/{hu-HU => hu}/domi.dtd                      |   0
 locale/{hu-HU => hu}/edit.dtd                      |   6 +-
 locale/{hu-HU => hu}/edit.properties               |   2 -
 locale/{hu-HU => hu}/install.dtd                   |   2 -
 locale/{hu-HU => hu}/install.properties            |   0
 locale/{hu-HU => hu}/manage.dtd                    |   9 -
 locale/hu/manage.properties                        |   7 +
 locale/{hu-HU => hu}/overlay.dtd                   |   6 +
 locale/{hu-HU => hu}/overlay.properties            |   4 +
 locale/it/common.dtd                               |   2 +
 locale/it/common.properties                        |   6 -
 locale/it/edit.dtd                                 |   6 +-
 locale/it/edit.properties                          |   2 -
 locale/it/extensions.dtd                           | 160 ----
 locale/it/install.dtd                              |   2 -
 locale/it/manage.dtd                               |   9 -
 locale/it/manage.properties                        |  17 -
 locale/it/overlay.dtd                              |   6 +
 locale/it/overlay.properties                       |   4 +
 locale/ja/common.dtd                               |   2 +
 locale/ja/common.properties                        |   6 -
 locale/ja/edit.dtd                                 |   6 +-
 locale/ja/edit.properties                          |   2 -
 locale/ja/extensions.dtd                           | 160 ----
 locale/ja/install.dtd                              |   2 -
 locale/ja/manage.dtd                               |   9 -
 locale/ja/manage.properties                        |  17 -
 locale/ja/overlay.dtd                              |   6 +
 locale/ja/overlay.properties                       |   4 +
 locale/ko-KR/common.dtd                            |   3 -
 locale/ko-KR/common.properties                     |  10 -
 locale/ko-KR/extensions.dtd                        | 160 ----
 locale/ko-KR/manage.properties                     |  24 -
 locale/ko/common.dtd                               |   5 +
 locale/ko/common.properties                        |   4 +
 locale/{ko-KR => ko}/domi.dtd                      |   0
 locale/{ko-KR => ko}/edit.dtd                      |   6 +-
 locale/{ko-KR => ko}/edit.properties               |   2 -
 locale/{ko-KR => ko}/install.dtd                   |   2 -
 locale/{ko-KR => ko}/install.properties            |   0
 locale/{ko-KR => ko}/manage.dtd                    |   9 -
 locale/ko/manage.properties                        |   7 +
 locale/{ko-KR => ko}/overlay.dtd                   |   6 +
 locale/{ko-KR => ko}/overlay.properties            |   4 +
 locale/lt/common.dtd                               |   2 +
 locale/lt/common.properties                        |   6 -
 locale/lt/edit.dtd                                 |   6 +-
 locale/lt/edit.properties                          |   2 -
 locale/lt/extensions.dtd                           | 160 ----
 locale/lt/install.dtd                              |   2 -
 locale/lt/manage.dtd                               |   9 -
 locale/lt/manage.properties                        |  17 -
 locale/lt/overlay.dtd                              |   6 +
 locale/lt/overlay.properties                       |   4 +
 locale/nl/common.dtd                               |   2 +
 locale/nl/common.properties                        |   6 -
 locale/nl/edit.dtd                                 |   6 +-
 locale/nl/edit.properties                          |   2 -
 locale/nl/extensions.dtd                           | 160 ----
 locale/nl/install.dtd                              |   2 -
 locale/nl/manage.dtd                               |   9 -
 locale/nl/manage.properties                        |  17 -
 locale/nl/overlay.dtd                              |   6 +
 locale/nl/overlay.properties                       |   4 +
 locale/pl-PL/common.dtd                            |   3 -
 locale/pl-PL/common.properties                     |  10 -
 locale/pl-PL/extensions.dtd                        | 160 ----
 locale/pl-PL/manage.properties                     |  24 -
 locale/pl/common.dtd                               |   5 +
 locale/pl/common.properties                        |   4 +
 locale/{pl-PL => pl}/domi.dtd                      |   0
 locale/{pl-PL => pl}/edit.dtd                      |   6 +-
 locale/{pl-PL => pl}/edit.properties               |   2 -
 locale/{pl-PL => pl}/install.dtd                   |   2 -
 locale/{pl-PL => pl}/install.properties            |   0
 locale/{pl-PL => pl}/manage.dtd                    |   9 -
 locale/pl/manage.properties                        |   7 +
 locale/{pl-PL => pl}/overlay.dtd                   |   6 +
 locale/{pl-PL => pl}/overlay.properties            |   4 +
 locale/pt-BR/common.dtd                            |   2 +
 locale/pt-BR/common.properties                     |   8 +-
 locale/pt-BR/edit.dtd                              |   8 +-
 locale/pt-BR/edit.properties                       |   2 -
 locale/pt-BR/extensions.dtd                        | 160 ----
 locale/pt-BR/install.dtd                           |   2 -
 locale/pt-BR/install.properties                    |   4 +-
 locale/pt-BR/manage.dtd                            |  15 +-
 locale/pt-BR/manage.properties                     |  27 +-
 locale/pt-BR/overlay.dtd                           |   6 +
 locale/pt-BR/overlay.properties                    |   4 +
 locale/ro-RO/common.dtd                            |   3 -
 locale/ro-RO/common.properties                     |  10 -
 locale/ro-RO/extensions.dtd                        | 160 ----
 locale/ro-RO/install.properties                    |   8 -
 locale/ro-RO/manage.properties                     |  24 -
 locale/ro/common.dtd                               |   5 +
 locale/ro/common.properties                        |   4 +
 locale/{ro-RO => ro}/domi.dtd                      |   0
 locale/{ro-RO => ro}/edit.dtd                      |   6 +-
 locale/{ro-RO => ro}/edit.properties               |   2 -
 locale/{ro-RO => ro}/install.dtd                   |   2 -
 locale/{en-GB => ro}/install.properties            |   0
 locale/{ro-RO => ro}/manage.dtd                    |   9 -
 locale/ro/manage.properties                        |   7 +
 locale/{ro-RO => ro}/overlay.dtd                   |   6 +
 locale/{ro-RO => ro}/overlay.properties            |   4 +
 locale/ru-RU/common.dtd                            |   3 -
 locale/ru-RU/common.properties                     |  10 -
 locale/ru-RU/extensions.dtd                        | 160 ----
 locale/ru-RU/manage.dtd                            |  19 -
 locale/ru-RU/manage.properties                     |  24 -
 locale/ru-RU/overlay.properties                    |  10 -
 locale/ru/common.dtd                               |   5 +
 locale/ru/common.properties                        |   4 +
 locale/{ru-RU => ru}/domi.dtd                      |   0
 locale/{ru-RU => ru}/edit.dtd                      |   6 +-
 locale/{ru-RU => ru}/edit.properties               |   2 -
 locale/{ru-RU => ru}/install.dtd                   |   2 -
 locale/{ru-RU => ru}/install.properties            |   4 +-
 locale/ru/manage.dtd                               |  10 +
 locale/ru/manage.properties                        |   7 +
 locale/{ru-RU => ru}/overlay.dtd                   |  10 +-
 locale/ru/overlay.properties                       |  14 +
 locale/sr/common.dtd                               |   2 +
 locale/sr/common.properties                        |   6 -
 locale/sr/edit.dtd                                 |   6 +-
 locale/sr/edit.properties                          |   2 -
 locale/sr/extensions.dtd                           | 160 ----
 locale/sr/install.dtd                              |   2 -
 locale/sr/manage.dtd                               |   9 -
 locale/sr/manage.properties                        |  17 -
 locale/sr/overlay.dtd                              |   6 +
 locale/sr/overlay.properties                       |   4 +
 locale/sv-SE/common.dtd                            |   2 +
 locale/sv-SE/common.properties                     |   6 -
 locale/sv-SE/edit.dtd                              |   6 +-
 locale/sv-SE/edit.properties                       |   2 -
 locale/sv-SE/extensions.dtd                        | 160 ----
 locale/sv-SE/install.dtd                           |   2 -
 locale/sv-SE/manage.dtd                            |   9 -
 locale/sv-SE/manage.properties                     |  17 -
 locale/sv-SE/overlay.dtd                           |   6 +
 locale/sv-SE/overlay.properties                    |   4 +
 locale/uk/common.dtd                               |   2 +
 locale/uk/common.properties                        |   6 -
 locale/uk/edit.dtd                                 |   6 +-
 locale/uk/edit.properties                          |   2 -
 locale/uk/extensions.dtd                           | 160 ----
 locale/uk/install.dtd                              |   2 -
 locale/uk/manage.dtd                               |   9 -
 locale/uk/manage.properties                        |  17 -
 locale/uk/overlay.dtd                              |   6 +
 locale/uk/overlay.properties                       |   4 +
 locale/vi/common.dtd                               |   2 +
 locale/vi/common.properties                        |   6 -
 locale/vi/edit.dtd                                 |   6 +-
 locale/vi/edit.properties                          |   2 -
 locale/vi/extensions.dtd                           | 160 ----
 locale/vi/install.dtd                              |   2 -
 locale/vi/manage.dtd                               |   9 -
 locale/vi/manage.properties                        |  17 -
 locale/vi/overlay.dtd                              |   6 +
 locale/vi/overlay.properties                       |   4 +
 locale/zh-CN/common.dtd                            |   2 +
 locale/zh-CN/common.properties                     |   6 -
 locale/zh-CN/edit.dtd                              |   6 +-
 locale/zh-CN/edit.properties                       |   2 -
 locale/zh-CN/extensions.dtd                        | 160 ----
 locale/zh-CN/install.dtd                           |   2 -
 locale/zh-CN/install.properties                    |   2 +-
 locale/zh-CN/manage.dtd                            |   9 -
 locale/zh-CN/manage.properties                     |  17 -
 locale/zh-CN/overlay.dtd                           |   6 +
 locale/zh-CN/overlay.properties                    |   4 +
 locale/zh-TW/common.dtd                            |   4 +-
 locale/zh-TW/common.properties                     |   6 -
 locale/zh-TW/domi.dtd                              |   2 +-
 locale/zh-TW/edit.dtd                              |  20 +-
 locale/zh-TW/edit.properties                       |   2 -
 locale/zh-TW/extensions.dtd                        | 160 ----
 locale/zh-TW/install.dtd                           |   6 +-
 locale/zh-TW/manage.dtd                            |  11 +-
 locale/zh-TW/manage.properties                     |  17 -
 locale/zh-TW/overlay.dtd                           |  18 +-
 locale/zh-TW/overlay.properties                    |   8 +-
 pull_locales.rb                                    |  29 +
 skin/edit.css                                      |  32 +-
 skin/extensions-gnome.css                          | 429 ----------
 skin/extensions-mac.css                            | 374 --------
 skin/extensions-windows.css                        | 451 ----------
 skin/manage-addons-fx11.css                        |   7 -
 skin/manage-addons-fx6.css                         |   3 -
 skin/{manage-addons-fx4.css => manage-addons.css}  |  16 +-
 skin/manage.css                                    |  54 --
 skin/overlay.css                                   |   4 +
 skin/style.css                                     |  44 -
 363 files changed, 2247 insertions(+), 9377 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..170b93c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+pull_locales_login.rb
diff --git a/README b/README
deleted file mode 100644
index 69ad9f1..0000000
--- a/README
+++ /dev/null
@@ -1,20 +0,0 @@
-Stylish - a user style manager for Firefox.
-
-* Releases - https://addons.mozilla.org/en-US/firefox/addon/stylish/
-* Source respository - https://github.com/JasonBarnabe/stylish
-* Help - http://userstyles.org/help/stylish_firefox
-
-Copyright (C) 2005-2013 Jason Barnabe <jason.barnabe at gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2bb91ec
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+Stylish - a user style manager for Firefox, Thunderbird, SeaMonkey, Pale Moon, and other Mozilla-based software. Install styles from [userstyles.org](https://userstyles.org/) to change how web pages look.
+
+* [Releases](https://addons.mozilla.org/en-US/firefox/addon/stylish/)
+* [Source](https://github.com/JasonBarnabe/stylish)
+* [Help](https://userstyles.org/help/stylish_firefox)
+
+Contributing
+------------
+
+Pull requests are welcome. Translation work can be done [on Transifex](https://www.transifex.com/projects/p/stylish/) or with a pull request.
+
+Donations
+---------
+
+If you like Stylish, consider making a donation. Suggested amount is $5.
+
+* [Donate by PayPal or credit card](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=jason.barnabe@gmail.com&item_name=Contribution+for+Stylish)
+* Donate BitCoin to 1Q3snak84MbR2SvSX11Kyz3Rc4f61E5whq
+
+Other Stylishes
+---------------
+
+* [Chrome/Opera/other WebKit](https://github.com/JasonBarnabe/stylish-chrome)
+* [Safari](https://github.com/350d/stylish)
+* [Opera (Presto)](https://github.com/gera2ld/Stylish-oex)
+* [Dolphin](https://github.com/Pmmlabs/StylishForDolphin)
+
+Related projects
+-----------------
+
+ * [userstyles.org](https://github.com/JasonBarnabe/userstyles)
+
+License
+-------
+
+Copyright (C) 2005-2014 Jason Barnabe <jason.barnabe at gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/chrome.manifest b/chrome.manifest
index 45745d6..678a2cb 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -1,35 +1,35 @@
 content	stylish	content/
 
-overlay	about:addons	chrome://stylish/content/manage-addons-fx4.xul
-overlay	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/content/manage-addons-fx4.xul
+overlay	about:addons	chrome://stylish/content/manage-addons.xul
+overlay	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/content/manage-addons.xul
 
-overlay	chrome://browser/content/browser.xul	chrome://stylish/content/overlay-fx4.xul
+overlay	chrome://browser/content/browser.xul	chrome://stylish/content/overlay.xul
 
 overlay chrome://inspector/content/viewers/dom/dom.xul	chrome://stylish/content/domiOverlay.xul
-overlay	chrome://navigator/content/navigator.xul	chrome://stylish/content/overlay-fx4.xul
-overlay chrome://messenger/content/mailWindowOverlay.xul	chrome://stylish/content/overlay-fx4.xul
+overlay	chrome://navigator/content/navigator.xul	chrome://stylish/content/overlay.xul
+overlay chrome://messenger/content/mailWindowOverlay.xul	chrome://stylish/content/overlay.xul
 
 locale	stylish	cs	locale/cs/
 locale	stylish	da	locale/da/
 locale	stylish	de	locale/de/
-locale	stylish	en-GB	locale/en-GB/
 locale	stylish	en-US	locale/en-US/
 locale	stylish	es-AR	locale/es-AR/
 locale	stylish	es-ES	locale/es-ES/
-locale	stylish	et-EE	locale/et-EE/
+locale	stylish	et	locale/et/
 locale	stylish	fi	locale/fi/
 locale	stylish	fr	locale/fr/
+locale	stylish	gl	locale/gl/
 locale	stylish	he	locale/he/
-locale	stylish	hu-HU	locale/hu-HU/
+locale	stylish	hu	locale/hu/
 locale	stylish	it	locale/it/
 locale	stylish	ja	locale/ja/
-locale	stylish ko-KR	locale/ko-KR/
+locale	stylish ko	locale/ko/
 locale	stylish lt	locale/lt/
 locale	stylish	nl	locale/nl/
-locale	stylish	pl-PL	locale/pl-PL/
+locale	stylish	pl	locale/pl/
 locale	stylish	pt-BR	locale/pt-BR/
-locale	stylish	ro-RO	locale/ro-RO/
-locale	stylish	ru-RU	locale/ru-RU/
+locale	stylish	ro	locale/ro/
+locale	stylish	ru	locale/ru/
 locale	stylish	sr	locale/sr/
 locale	stylish	sv-SE	locale/sv-SE/
 locale	stylish	uk	locale/uk/
@@ -54,41 +54,12 @@ component {6ff9ed70-e673-11dc-95ff-0800200c9a66} components/stylishStartup.js
 contract @stylish/startup;2 {6ff9ed70-e673-11dc-95ff-0800200c9a66}
 category profile-after-change StylishStartup @stylish/startup;2
 
+component {3d4ef6d0-548b-11e4-916c-0800200c9a66} components/aboutStylishEdit.js
+contract @mozilla.org/network/protocol/about;1?what=stylish-edit {3d4ef6d0-548b-11e4-916c-0800200c9a66}
+
 skin	stylish	classic/1.0	skin/
 
 style	chrome://global/content/customizeToolbar.xul	chrome://stylish/skin/overlay.css
 
-style	chrome://stylish/content/manage-standalone.xul	chrome://stylish/skin/extensions-windows.css os=WINNT
-style	chrome://stylish/content/manage-standalone.xul	chrome://stylish/skin/extensions-gnome.css os=Linux
-style	chrome://stylish/content/manage-standalone.xul	chrome://stylish/skin/extensions-mac.css os=Darwin
-
-style	chrome://stylish/content/manage-standalone.xul?sidebar	chrome://stylish/skin/extensions-windows.css os=WINNT
-style	chrome://stylish/content/manage-standalone.xul?sidebar	chrome://stylish/skin/extensions-gnome.css os=Linux
-style	chrome://stylish/content/manage-standalone.xul?sidebar	chrome://stylish/skin/extensions-mac.css os=Darwin
-
-style	about:addons	chrome://stylish/skin/manage-addons-fx6.css 	application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}	appversion>=6.0a1
-style	about:addons	chrome://stylish/skin/manage-addons-fx6.css 	application={3550f703-e582-4d05-9a08-453d09bdfdc6}	appversion>=6.0a1
-style	about:addons	chrome://stylish/skin/manage-addons-fx6.css 	application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}	appversion>=2.3
-style	about:addons	chrome://stylish/skin/manage-addons-fx6.css 	application={36E66FA0-F259-11D9-850E-000D935D3368}
-style	about:addons	chrome://stylish/skin/manage-addons-fx6.css 	application={b1042fb5-9e9c-11db-b107-000d935d3368}
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx6.css 	application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}	appversion>=6.0a1
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx6.css 	application={3550f703-e582-4d05-9a08-453d09bdfdc6}	appversion>=6.0a1
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx6.css 	application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}	appversion>=2.3
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx6.css 	application={36E66FA0-F259-11D9-850E-000D935D3368}
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx6.css 	application={b1042fb5-9e9c-11db-b107-000d935d3368}
-
-style	about:addons	chrome://stylish/skin/manage-addons-fx11.css 	application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}	appversion>=11
-style	about:addons	chrome://stylish/skin/manage-addons-fx11.css 	application={3550f703-e582-4d05-9a08-453d09bdfdc6}	appversion>=11
-style	about:addons	chrome://stylish/skin/manage-addons-fx11.css 	application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}	appversion>=2.8
-style	about:addons	chrome://stylish/skin/manage-addons-fx11.css 	application={36E66FA0-F259-11D9-850E-000D935D3368}
-style	about:addons	chrome://stylish/skin/manage-addons-fx11.css 	application={b1042fb5-9e9c-11db-b107-000d935d3368}
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx11.css 	application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}	appversion>=11
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx11.css 	application={3550f703-e582-4d05-9a08-453d09bdfdc6}	appversion>=11
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx11.css 	application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}	appversion>=2.8
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx11.css 	application={36E66FA0-F259-11D9-850E-000D935D3368}
-style	chrome://mozapps/content/extensions/extensions.xul	chrome://stylish/skin/manage-addons-fx11.css 	application={b1042fb5-9e9c-11db-b107-000d935d3368}
-
 # fennec
-override chrome://stylish/content/overlay-fx4.xul chrome://stylish/content/overlay-mobile.xul	application={aa3c5121-dab2-40e2-81ca-7ea25febc110}
-override chrome://stylish/content/manage-standalone.xul chrome://stylish/content/manage.html	application={aa3c5121-dab2-40e2-81ca-7ea25febc110}
-
+override chrome://stylish/content/overlay.xul chrome://stylish/content/overlay-mobile.xul	application={aa3c5121-dab2-40e2-81ca-7ea25febc110}
diff --git a/components/aboutStylishEdit.js b/components/aboutStylishEdit.js
new file mode 100644
index 0000000..2b10676
--- /dev/null
+++ b/components/aboutStylishEdit.js
@@ -0,0 +1,24 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
+function AboutStylishEdit() { }
+AboutStylishEdit.prototype = {
+	classDescription: "about:stylish-edit",
+	contractID: "@mozilla.org/network/protocol/about;1?what=stylish-edit",
+	classID: Components.ID("{3d4ef6d0-548b-11e4-916c-0800200c9a66}"),
+	QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]),
+
+	getURIFlags: function(aURI) {
+		return Ci.nsIAboutModule.ALLOW_SCRIPT;
+	},
+
+	newChannel: function(aURI) {
+		let ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
+		let channel = ios.newChannel("chrome://stylish/content/edit.xul", null, null);
+		channel.originalURI = aURI;
+		return channel;
+	}
+};
+const NSGetFactory = XPCOMUtils.generateNSGetFactory([AboutStylishEdit]);
diff --git a/components/stylishDataSource.js b/components/stylishDataSource.js
index 47f5714..51683d8 100644
--- a/components/stylishDataSource.js
+++ b/components/stylishDataSource.js
@@ -52,7 +52,7 @@ StylishDataSource.prototype = {
 		if (!this._file) {
 			var path = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getCharPref("extensions.stylish.dbFile");
 			if (path) {
-				this._file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
+				this._file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
 				this._file.initWithPath(path);
 			} else {
 				this._file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
diff --git a/components/stylishStartup.js b/components/stylishStartup.js
index 398871d..25c2199 100644
--- a/components/stylishStartup.js
+++ b/components/stylishStartup.js
@@ -21,25 +21,23 @@ StylishStartup.prototype = {
 			AddonManagerPrivate.registerProvider(UserStyleManager, [{
 				id: "userstyle",
 				name: bundle.GetStringFromName("manageaddonstitle"),
-				uiPriority: 7000,
+				uiPriority: 4600,
 				viewType: AddonManager.VIEW_TYPE_LIST
 			}]);
 		}
+		wireUpMessaging();
 	}
 }
 
-// this throws and is unnecessary in firefox 4+
-try {
-Components.classes["@mozilla.org/categorymanager;1"].getService(Components.interfaces.nsICategoryManager).addCategoryEntry("profile-after-change", "StylishStartup", StylishStartup.prototype.contractID, true, true);
-} catch (ex) {}
-
 var turnOnOffObserver = {
 	observe: function(subject, topic, data) {
 		var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-		service.findEnabled(true, subject.QueryInterface(Components.interfaces.nsIPrefBranch2).getBoolPref(data) ? service.REGISTER_STYLE_ON_LOAD : service.UNREGISTER_STYLE_ON_LOAD, {});
+		service.findEnabled(true, subject.QueryInterface(Components.interfaces.nsIPrefBranch).getBoolPref(data) ? service.REGISTER_STYLE_ON_LOAD : service.UNREGISTER_STYLE_ON_LOAD, {});
 	}
 }
 
+var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+
 var UserStyleManager = {
 
 	getAddonsByTypes: function(aTypes, aCallback) {
@@ -121,25 +119,44 @@ var UserStyleManager = {
 	}
 };
 
-function getUserStyleWrapper(style) {
-	return {
-		id: style.id.toString(),
+function getUserStyleWrapper(s) {
+	var w = {
+		style: s,
 		type: "userstyle",
-		name: style.name,
-		homepageURL: style.url,
 		appDisabled: false,
 		pendingOperations: AddonManager.PENDING_NONE,
 		isCompatible: true,
 		isPlatformCompatible: true,
 		iconURL: "chrome://stylish/skin/32.png",
-		size: style.code.length,
 		scope: AddonManager.SCOPE_PROFILE,
 		blocklistState: Components.interfaces.nsIBlocklistService.STATE_NOT_BLOCKED,
 		pendingOperations: AddonManager.PENDING_NONE,
-		providesUpdatesSecurely: style.updateUrl == null || style.updateUrl == "",
 		version: "",
 		operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE,
-		styleTypes: style.getTypes({}).sort().join(","),
+
+		get id() {
+			return this.style.id.toString();
+		},
+
+		get name() {
+			return this.style.name;
+		},
+
+		get homepageURL() {
+			return this.style.url;
+		},
+
+		get size() {
+			return this.style.code.length;
+		},
+
+		get providesUpdatesSecurely() {
+			return this.style.updateUrl == null || this.style.updateUrl == "";
+		},
+
+		get styleTypes() {
+			return this.style.getTypes({}).sort().join(",");
+		},
 
 		get optionsURL() {
 			return null;
@@ -147,8 +164,8 @@ function getUserStyleWrapper(style) {
 
 		get permissions() {
 			return AddonManager.PERM_CAN_UNINSTALL | 
-				(style.enabled ? AddonManager.PERM_CAN_DISABLE : AddonManager.PERM_CAN_ENABLE) | 
-				(style.updateUrl != null && style.updateUrl != "" && style.updateUrl.length <= 2000 && Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getBoolPref("extensions.stylish.updatesEnabled") ? AddonManager.PERM_CAN_UPGRADE : 0); // if the url length is too long, a GET won't work, and it's probably going to be too much server-side to handle
+				(this.style.enabled ? AddonManager.PERM_CAN_DISABLE : AddonManager.PERM_CAN_ENABLE) |
+				(this.style.updateUrl != null && this.style.updateUrl != "" && this.style.updateUrl.length <= 2000 && prefService.getBoolPref("extensions.stylish.updatesEnabled") ? AddonManager.PERM_CAN_UPGRADE : 0); // if the url length is too long, a GET won't work, and it's probably going to be too much server-side to handle
 		},
 
 		get isActive() {
@@ -156,30 +173,25 @@ function getUserStyleWrapper(style) {
 		},
 
 		get userDisabled() {
-			return !style.enabled;
+			return !this.style.enabled;
 		},
 
 		set userDisabled(val) {
-			style.enabled = !val;
-			style.save();
+			if (this.style.enabled == !val) {
+				// no op
+				return;
+			}
+			this.style.enabled = !val;
+			this.style.save();
 			AddonManagerPrivate.callAddonListeners(val ? "onEnabling" : "onDisabling", this, false);
 		},
 
 		get description() {
-			var tagsA = style.getMeta("tag", {})
-			var tags = "";
-			if (tagsA.length > 0) {
-				tags = bundle.formatStringFromName("tagstyledescription", [tagsA.join(", ")], 1);
-			}
-			var applies = this.getAppliesString();
-			if (applies != "" && tags != "") {
-				return applies + " \n\n" + tags;
-			}
-			return applies + tags;
+			return this.getAppliesString();
 		},
 
 		getAppliesString: function() {
-			var types = style.getTypes({});
+			var types = this.style.getTypes({});
 			if (types.length == 1) {
 				if (types[0] == "global") {
 					return bundle.GetStringFromName("globalstyledescription");
@@ -188,19 +200,7 @@ function getUserStyleWrapper(style) {
 					return bundle.GetStringFromName("appstyledescription");
 				}
 			}
-
-			var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle)
-
-			var domains = style.getMeta("domain", {});
-			var urls = style.getMeta("url", {});
-			var urlPrefixes = style.getMeta("url-prefix", {});
-			var regexps = style.getMeta("regexp", {});
-
-			var affects = domains.concat(urls).concat(urlPrefixes.map(function(u) { 
-				return u + "*"
-			})).concat(regexps.map(function(a) {
-				return service.regexToSample(a);
-			}));
+			var affects = this.style.getPrettyAppliesTo({});
 			if (affects.length > 0) {
 				return bundle.formatStringFromName("sitestyledescription", [affects.join(", ")], 1);
 			}
@@ -208,11 +208,11 @@ function getUserStyleWrapper(style) {
 		},
 
 		uninstall: function() {
-			style.delete();
+			this.style.delete();
 		},
 
 		findUpdates: function(listener, flags) {
-			style.checkForUpdates(getUserStyleUpdateCheckObserver(this, listener));
+			this.style.checkForUpdates(getUserStyleUpdateCheckObserver(this, listener));
 		},
 
 		isCompatibleWith: function(appVersion, platformVersion) {
@@ -220,14 +220,24 @@ function getUserStyleWrapper(style) {
 		},
 
 		get applyBackgroundUpdates() {
-			return parseInt(style.applyBackgroundUpdates);
+			return parseInt(this.style.applyBackgroundUpdates);
 		},
 
 		set applyBackgroundUpdates(abu) {
-			style.applyBackgroundUpdates = abu;
-			style.save();
+			this.style.applyBackgroundUpdates = abu;
+			this.style.save();
+		},
+
+		observe: function(subject, topic, data) {
+			// Update our stuff if the style was changed
+			if (this.style.id == subject.id) {
+				this.style = subject;
+			}
 		}
 	};
+	var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
+	observerService.addObserver(w, "stylish-style-change", false);
+	return w;
 }
 
 // An observer for style update checks.
@@ -279,7 +289,7 @@ function getUserStyleUpdateInstallItem(addonItem) {
 			}, this);
 			var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
 			var that = this;
-			
+
 			// Results for "apply updates"
 			var updateAttemptObserver = {
 				observe: function(subject, topic, data) {
@@ -295,7 +305,7 @@ function getUserStyleUpdateInstallItem(addonItem) {
 							AddonManagerPrivate.callInstallListeners("onDownloadFailed", that.listeners, that);
 							break;
 						case "update-success":
-							AddonManagerPrivate.callInstallListeners("onInstallEnded", that.listeners, that);
+							AddonManagerPrivate.callInstallListeners("onInstallEnded", that.listeners, that, that.addon);
 							break;
 					}
 
@@ -335,14 +345,14 @@ var addonsObserver = {
 					name: subject.name,
 					type: "userstyle",
 					state: AddonManager.STATE_INSTALLED,
-					addon: getUserStyleWrapper(subject)
+					addon: itemWrapper
 				};
 				AddonManagerPrivate.callInstallListeners("onNewInstall", [], install);
 				AddonManagerPrivate.callInstallListeners("onInstallStarted", [], install);
 				AddonManagerPrivate.callInstallListeners("onInstallEnded", [], install, itemWrapper);
 				break;
 			case "stylish-style-change":
-				AddonManagerPrivate.callInstallListeners("onExternalInstall", null, itemWrapper, itemWrapper, false);
+				AddonManagerPrivate.callInstallListeners("onExternalInstall", [], itemWrapper, itemWrapper, false);
 				break;
 			case "stylish-style-delete":
 				AddonManagerPrivate.callAddonListeners("onUninstalled", itemWrapper);
@@ -355,10 +365,73 @@ observerService.addObserver(addonsObserver, "stylish-style-add", false);
 observerService.addObserver(addonsObserver, "stylish-style-change", false);
 observerService.addObserver(addonsObserver, "stylish-style-delete", false);
 
-Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2).addObserver("extensions.stylish.styleRegistrationEnabled", turnOnOffObserver, false);
+Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch).addObserver("extensions.stylish.styleRegistrationEnabled", turnOnOffObserver, false);
+
+function wireUpMessaging() {
+	Components.utils.import("chrome://stylish/content/common.js", this);
+	var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
+	var STRINGS = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService).createBundle("chrome://stylish/locale/overlay.properties");
+
+	var globalMM = Components.classes["@mozilla.org/globalmessagemanager;1"].getService(Components.interfaces.nsIMessageListenerManager);
+	globalMM.loadFrameScript("chrome://stylish/content/install-frame-script.js", true);
+
+	function reply(incomingMessage, name, data) {
+		incomingMessage.target.messageManager.sendAsyncMessage(name, data);
+	}
+
+	function messageToWindow(message) {
+		return message.target.ownerDocument.defaultView;
+	}
+
+	globalMM.addMessageListener("stylish:get-style-install-status", function(message) {
+		var style = service.findByUrl(message.data.idUrl, 0);
+		if (style) {
+			if (style.originalMd5 == message.data.md5) {
+				reply(message, "stylish:style-already-installed");
+			} else {
+				reply(message, "stylish:style-can-be-updated");
+			}
+		} else {
+			reply(message, "stylish:style-can-be-installed");
+		}
+	});
+
+	globalMM.addMessageListener("stylish:install-style", function(message) {
+		stylishCommon.installFromStyleInfo(message.data, function(result) {
+			if (result == "installed") {
+				reply(message, "stylish:style-installed");
+			}
+		}, messageToWindow(message));
+	});
+
+	globalMM.addMessageListener("stylish:update-style", function(message) {
+		var style = service.findByUrl(message.data.idUrl, service.REGISTER_STYLE_ON_CHANGE + service.CALCULATE_META);
+		var code = message.data.code;
+		var md5 = message.data.md5;
+		var md5Url = message.data.md5Url;
+		var updateUrl = message.data.updateUrl;
+		if (!style || !code) {
+			return;
+		}
+		var prompt = STRINGS.formatStringFromName("updatestyle", [style.name], 1);
+		var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+		if (prompts.confirmEx(messageToWindow(message), STRINGS.formatStringFromName("updatestyletitle", [], 0), prompt, prompts.BUTTON_POS_0 * prompts.BUTTON_TITLE_IS_STRING + prompts.BUTTON_POS_1 * prompts.BUTTON_TITLE_CANCEL, STRINGS.formatStringFromName("updatestyleok", [], 0), null, null, null, {}) == 0) {
+			style.code = code;
+
+			//we're now in sync with the remote style, so let's set things appropriately
+			style.originalCode = code;
+			style.md5Url = md5Url;
+			style.originalMd5 = md5;
+			style.updateUrl = updateUrl;
+
+			style.save();
+			reply(message, "stylish:style-updated");
+		}
+	});
+
+}
 
 if (XPCOMUtils.generateNSGetFactory)
     var NSGetFactory = XPCOMUtils.generateNSGetFactory([StylishStartup]);
 else
     var NSGetModule = XPCOMUtils.generateNSGetModule([StylishStartup]);
-
diff --git a/components/stylishStyle.js b/components/stylishStyle.js
index 58c4070..45fcd3d 100644
--- a/components/stylishStyle.js
+++ b/components/stylishStyle.js
@@ -61,6 +61,7 @@ Style.prototype = {
 
 	list: function(mode, count) {
 		var styles = this.findSql("SELECT * FROM styles;", {}, mode);
+		styles.sort(this.nameSort);
 		count.value = styles.length;
 		return styles;
 	},
@@ -77,6 +78,7 @@ Style.prototype = {
 
 	findEnabled: function(enabled, mode, count) {
 		var styles = this.findSql("SELECT * FROM styles WHERE enabled = :enabled;", {enabled: enabled}, mode);
+		styles.sort(this.nameSort);
 		count.value = styles.length;
 		return styles;
 	},
@@ -86,6 +88,7 @@ Style.prototype = {
 		styles = styles.filter(function(style) {
 			return style.appliesToUrl(url) || (includeGlobal && style.getTypes({}).indexOf("global") > -1);
 		});
+		styles.sort(this.nameSort);
 		count.value = styles.length;
 		return styles;
 	},
@@ -99,8 +102,13 @@ Style.prototype = {
 			this.bind(statement, "value", value);
 			var styles = [];
 			while (statement.executeStep()) {
-				styles.push(this.find(this.extract(statement, "style_id"), mode, connection));
+				// theoretically we shouldn't find a style that doesn't exist, but who knows?
+				var s = this.find(this.extract(statement, "style_id"), mode, connection);
+				if (s) {
+					styles.push(s);
+				}
 			}
+			styles.sort(this.nameSort);
 			count.value = styles.length;
 			return styles;
 		} catch (ex) {
@@ -347,13 +355,13 @@ Style.prototype = {
 		}
 		return this.regexpRules.some(function(rule) {
 			try {
-				var re = new RegExp(rule);
+				var re = new RegExp(this.ensureFullMatchRegexp(rule));
 			} catch (ex) {
 				//bad regexp
 				return false;
 			}
 			return re.test(url);
-		});
+		}, this);
 	},
 
 	//previewing make it so that the code for this style is always applied, even if it's disabled
@@ -666,7 +674,7 @@ Style.prototype = {
 		else if (
 			(hasGlobal && (namespaces.length == 0 || namespaces.indexOf(this.HTMLNS) != -1))
 			|| urlLikeRules.some(function(url) { return genericPattern.test(url) })
-			|| this.regexpRules.some(function(r) { return (new RegExp(r)).test("http://www.somesiteimadeup.com/");})
+			|| this.regexpRules.some(function(r) { return (new RegExp(that.ensureFullMatchRegexp(r))).test("http://www.somesiteimadeup.com/");})
 		)
 			this.addMeta("type", "global");
 		// everything else is site
@@ -693,7 +701,9 @@ Style.prototype = {
 		var registrationMethod = this.calculateRegistrationMethod();
 		// Save what we applied so we know what to remove later
 		this.appliedInfo = [dataUrl, registrationMethod];
-		this.sss.loadAndRegisterSheet(dataUrl, registrationMethod);
+		if (!this.sss.sheetRegistered(dataUrl, registrationMethod)) {
+			this.sss.loadAndRegisterSheet(dataUrl, registrationMethod);
+		}
 	},
 
 	unregister: function() {
@@ -710,11 +720,12 @@ Style.prototype = {
 			unregisterMethod = this.appliedInfo[1];
 		}
 		
-		if (this.sss.sheetRegistered(unregisterUrl, unregisterMethod))
+		if (this.sss.sheetRegistered(unregisterUrl, unregisterMethod)) {
 			this.sss.unregisterSheet(unregisterUrl, unregisterMethod);
 		// ignore unregistered styles if stylish isn't on
-		else if (this.stylishOn)
+		} else if (this.stylishOn) {
 			Components.utils.reportError("Stylesheet is supposed to be unregistered, but it's not registered in the first place.");
+		}
 		this.appliedInfo = null;
 	},
 
@@ -951,22 +962,18 @@ Style.prototype = {
 		}, false);
 		// QI it to nsIXMLHttpRequest to open and send the request:
 		request.QueryInterface(Components.interfaces.nsIXMLHttpRequest);
-		request.open("GET", url, true);
-		this.fixXHR(request);
-		request.send(null);
-	},
-
-	fixXHR: function(request) {
-		//only a problem on 1.9 toolkit
-		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
-		var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);
-		if (versionChecker.compare(appInfo.version, "1.9") >= 0 && Components.classes["@mozilla.org/webshell;1"]) {
-			//https://bugzilla.mozilla.org/show_bug.cgi?id=437174
-			var ds = Components.classes["@mozilla.org/webshell;1"].createInstance(Components.interfaces.nsIDocShellTreeItem).QueryInterface(Components.interfaces.nsIInterfaceRequestor);
-			ds.itemType = Components.interfaces.nsIDocShellTreeItem.typeContent;
-			request.channel.loadGroup = ds.getInterface(Components.interfaces.nsILoadGroup);
-			request.channel.loadFlags |= Components.interfaces.nsIChannel.LOAD_DOCUMENT_URI;
+		request.overrideMimeType("text/plain");
+		try {
+			// this can fail if URL is malformed
+			request.open("GET", url, true);
+		} catch(ex) {
+			Components.utils.reportError("Could not download URL '" + url + "'.");
+			if (failureCallback) {
+				failureCallback();
+			}
+			return;
 		}
+		request.send(null);
 	},
 
 	get stylishOn() {
@@ -1008,6 +1015,24 @@ Style.prototype = {
 				}
 			}, null
 		);
+	},
+
+	// Make sure a regexp is set to match the entire string, as opposed to just a portion
+	ensureFullMatchRegexp: function(pattern) {
+		if (pattern == null) {
+			return pattern;
+		}
+		if (pattern[0] != "^") {
+			pattern = "^" + pattern;
+		}
+		if (pattern[pattern.length - 1] != "$") {
+			pattern = pattern + "$";
+		}
+		return pattern;
+	},
+
+	nameSort: function(a, b) {
+		return a.name.localeCompare(b.name);
 	}
 
 };
diff --git a/content/addon.xbl b/content/addon.xbl
index 4943d02..fc8e6bc 100644
--- a/content/addon.xbl
+++ b/content/addon.xbl
@@ -9,7 +9,9 @@
 		<implementation>
 			<method name="openEdit">
 				<body>
-					stylishCommon.openEditForId(this.mAddon.id);
+					// get the chrome window so we can open in tab if necessary
+					var win = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]   .getService(Components.interfaces.nsIWindowWatcher).activeWindow;
+					stylishCommon.openEditForId(this.mAddon.id, win);
 				</body>
 			</method>
 		</implementation>
@@ -21,4 +23,14 @@
 		</content>
 		<implementation/>
 	</binding>
+	<binding id="addon-uninstalled-buttons">
+		<content>
+			<xbl:children/>
+			<xul:button anonid="report-style" label="&reportstyle;" class="button-link" oncommand="this.nextSibling.style.display = '';this.style.display = 'none';stylishManageAddons.reportStyle(document.getBindingParent(document.getBindingParent(this)).mAddon.id);"/>
+			<xul:label anonid="reported-style" value="&reportedstyle;" style="display: none"/>
+			<!-- We made the original spacer display: none so that we could put our button before it -->
+			<xul:spacer flex="5000"/>
+		</content>
+		<implementation/>
+	</binding>
 </bindings>
diff --git a/content/base-test.js b/content/base-test.js
index 2be76b4..4d1e318 100644
--- a/content/base-test.js
+++ b/content/base-test.js
@@ -351,6 +351,8 @@ function testType() {
 	ensureType("No namespace, http only URL prefix rule isn't global", "global");
 	style.code = "@-moz-document domain(google.com){* {color: blue}}";
 	ensureType("No namespace, domain rule", "site");
+	style.code = "@-moz-document regexp('h'){* {color: blue}}";
+	ensureType("Bad regexp", "site");
 }
 
 function testFindByUrl() {
diff --git a/content/clear.js b/content/clear.js
index 43e8901..fefcf25 100644
--- a/content/clear.js
+++ b/content/clear.js
@@ -1,4 +1,4 @@
-var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
+var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch);
 if (!prefService.getBoolPref("extensions.stylish.promptOnClear") || confirm("Are you sure you want to delete all Stylish styles?")) {
 	var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
 	service.list(service.REGISTER_STYLE_ON_CHANGE, {}).forEach(function(style) {
diff --git a/content/common.js b/content/common.js
index 0d3155a..3f05102 100644
--- a/content/common.js
+++ b/content/common.js
@@ -1,3 +1,5 @@
+var EXPORTED_SYMBOLS = ["stylishCommon"];
+
 var stylishCommon = {
 
 	XULNS: "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",
@@ -18,30 +20,11 @@ var stylishCommon = {
 			element.setAttribute(i, json[i]);
 	},
 
-	// CustomEvent is available in Firefox 11. Before that, the "data" parameter does nothing. If "data"
-	// is a custom object, __exposedProps__ must be set.
-	dispatchEvent: function(doc, type, data) {
-		if (!doc) {
-			return;
-		}
-		if (typeof data == "undefined") {
-			data = null;
-		}
-		var stylishEvent = null;
-		if (typeof doc.defaultView.CustomEvent != "undefined") {
-			stylishEvent = new doc.defaultView.CustomEvent(type, {detail: data});
-		} else {
-			stylishEvent = doc.createEvent("Events");
-			stylishEvent.initEvent(type, false, false, doc.defaultView, null);
-		}
-		doc.dispatchEvent(stylishEvent);
-	},
-
 	getAppName: function() {
 		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
 		return appInfo.name;
 	},
-	
+
 	isXULAvailable: Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).widgetToolkit.toLowerCase() != "android",
 
 	deleteWithPrompt: function(style) {
@@ -56,19 +39,6 @@ var stylishCommon = {
 		return true;
 	},
 
-	fixXHR: function(request) {
-		//only a problem on 1.9 toolkit
-		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
-		var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);
-		if (versionChecker.compare(appInfo.version, "1.9") >= 0 && versionChecker.compare(appInfo.version, "1.9.3a1pre") <= 0) {
-			//https://bugzilla.mozilla.org/show_bug.cgi?id=437174
-			var ds = Components.classes["@mozilla.org/webshell;1"].createInstance(Components.interfaces.nsIDocShellTreeItem).QueryInterface(Components.interfaces.nsIInterfaceRequestor);
-			ds.itemType = Components.interfaces.nsIDocShellTreeItem.typeContent;
-			request.channel.loadGroup = ds.getInterface(Components.interfaces.nsILoadGroup);
-			request.channel.loadFlags |= Components.interfaces.nsIChannel.LOAD_DOCUMENT_URI;
-		}
-	},
-
 	getWindowName: function(prefix, id) {
 		return (prefix + (id || Math.random())).replace(/\W/g, "");
 	},
@@ -91,27 +61,78 @@ var stylishCommon = {
 			win.focus();
 			return true;
 		}
+		// how about if it's open in tab?
+		var tbEnumerator = windowsMediator.getEnumerator("navigator:browser");
+		while (tbEnumerator.hasMoreElements()) {
+			var tbWin = tbEnumerator.getNext();
+			var browsers = tbWin.gBrowser.browsers;
+			for (var i = 0; i < browsers.length; i++) {
+				if (browsers[i].contentDocument.documentElement.getAttribute("windowtype") == name) {
+					tbWin.gBrowser.selectTabAtIndex(i);
+					tbWin.focus();
+					return true;
+				}
+			}
+		}
 		return false;
 	},
 
-	openEdit: function(name, params) {
+	/* Open the edit dialog.
+	 *   name: a window name - if that window is already open, it will be focussed
+	 *   params: a hash containing URL parameters to pass - id or code
+	 *   win: (optional) a window object to use in case there isn't one on the global scope
+	 */
+	openEdit: function(name, params, win) {
 		if (stylishCommon.focusWindow(name)) {
 			return;
 		}
+		if (!win) {
+			win = window;
+		}
+		var url = "about:stylish-edit";
+		var first = true;
+		for (i in params) {
+			if (params[i]) {
+				url += (first ? "?" : "&") + encodeURIComponent(i) + "=" + encodeURIComponent(params[i])
+			}
+		}
+		if (typeof win.gBrowser != "undefined" && Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getIntPref("extensions.stylish.editorWindowMode") == 0) {
+			win.gBrowser.loadOneTab(url, {inBackground: false, relatedToCurrent: true});
+			return;
+		}
 		params.windowType = name;
-		return openDialog("chrome://stylish/content/edit.xul", name, "chrome,resizable,dialog=no,centerscreen", params);		
+		return win.openDialog(url, name, "chrome,resizable,dialog=no");
 	},
 
-	openEditForStyle: function(style) {
-		return stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit", style.id), {style: style});
+	openEditForStyle: function(style, win) {
+		return stylishCommon.openEditForId(style.id, win);
 	},
 
-	openEditForId: function(id) {
-		var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-		var style = service.find(id, service.REGISTER_STYLE_ON_CHANGE | service.CALCULATE_META);
-		return stylishCommon.openEditForStyle(style);
+	openEditForId: function(id, win) {
+		return stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit", id), {id: id}, win);
 	},
-	
+
+	// Callback passes a string parameter - installed, failure, cancelled, existing
+	installFromSite: function(doc, callback) {
+		stylishFrameUtils.gatherStyleInfo(doc, function(results) {stylishCommon.installFromStyleInfo(results, callback);});
+	},
+
+	/* Fire the install process based on a hash of style info.
+	 *   results: the hash of style info
+	 *   callback: the callback to fire when the style is installed. Will be fired with one of: installed, existing, cancelled, failure
+	 *   win: (optional) a window object to use in case there isn't one on the global scope
+	 */
+	installFromStyleInfo: function(results, callback, win) {
+		if (results == null) {
+			callback("failure");
+			return;
+		}
+		var style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
+		style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
+		style.init(results["uri"], results["stylish-id-url"], results["stylish-update-url"], results["stylish-md5-url"], results["stylish-description"], results["stylish-code"], false, results["stylish-code"], results["stylish-md5"], null);
+		stylishCommon.openInstall({style: style, installPingURL: results["stylish-install-ping-url"], installCallback: callback}, win);
+	},
+
 	// Installing from URLs, with prompting and UI and such. startedCallback is called after the user has entered their URLs,
 	// endedCallback is called when the process is done.
 	startInstallFromUrls: function(startedCallback, endedCallback) {
@@ -209,6 +230,7 @@ var stylishCommon = {
 
 	installFromUrlCss: function(url, callback) {
 		var xhr = new XMLHttpRequest();
+		xhr.overrideMimeType("text/css");
 		xhr.onload = function() {
 			if (xhr.status >= 400) {
 				Components.utils.reportError("Stylish install from URL '" + url + "' resulted in HTTP error code " + this.status + ".");
@@ -220,127 +242,23 @@ var stylishCommon = {
 		xhr.open("GET", url);
 		xhr.send();
 	},
-	
-	// Callback passes a string parameter - installed, failure, cancelled, existing
-	installFromSite: function(doc, callback) {
-		// we want both the url and the content of the md5
-		var md5Url = stylishCommon.getMeta(doc, "stylish-md5-url");
-		var resourcesNeeded = [{name: "stylish-code", download: true}, {name: "stylish-description", download: true}, {name: "stylish-install-ping-url"}, {name: "stylish-update-url"}, {name: "stylish-md5-url", download: true}, {name: "stylish-id-url"}];
 
-		stylishCommon.getResourcesFromMetas(doc, resourcesNeeded, function(results) {
-			// This is the only required property
-			if (results["stylish-code"] == null || results["stylish-code"].length == 0) {
-				callback("failure")
-				return;
-			}
-			var uri = stylishCommon.cleanURI("documentURI" in doc ? doc.documentURI : doc.location.href);
-			if (results["stylish-id-url"] == null) {
-				results["stylish-id-url"] = uri
-			}
-
-			var style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
-			style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
-			style.init(uri, results["stylish-id-url"], results["stylish-update-url"], md5Url, results["stylish-description"], results["stylish-code"], false, results["stylish-code"], results["stylish-md5-url"], null);
-
-			stylishCommon.openInstall({style: style, installPingURL: results["stylish-install-ping-url"], installCallback: callback});
-
-		});
-	},
-	
-	// Results the value of the <link> with a "rel" of the passed name.
-	getMeta: function(doc, name) {
-		var e = doc.querySelector("link[rel='" + name + "']");
-		return e ? e.getAttribute("href") : null;
-	},
-	
-	// Gets the values of the passed meta names.
-	//   doc
-	//   resourcesToGet: an array of:
-	//     name: meta name to get
-	//     download: if true, will download if the value is a remote URL
-	//   callback: called with a hash of name to value
-	getResourcesFromMetas: function(doc, resourcesToGet, callback) {
-		var keyUrls = {};
-		var resourcesToDownload = [];
-		resourcesToGet.forEach(function(r) {
-			var c = stylishCommon.getMeta(doc, r.name);
-			if (r.download) {
-				resourcesToDownload.push({name: r.name, url: c});
-			} else {
-				keyUrls[r.name] = c;
-			}
-		});
-		stylishCommon.getResources(doc, resourcesToDownload, function(results) {
-			results.forEach(function(r) {
-				keyUrls[r.name] = r.value;
-			});
-			callback(keyUrls);
-		});
-	},
-	
-	// Gets the values of the passed URLs.
-	//   doc
-	//   resources: an array of:
-	//     name: name of the resource
-	//     url: url of the resource
-	//   callback: called with a hash of name to value
-	getResources: function(doc, resources, callback) {
-		var results = [];
-		
-		function assembleResults(name, value) {
-			results.push({name: name, value: value});
-			if (results.length == resources.length) {
-				callback(results);
-			}
-		}
-		
-		resources.forEach(function(resource) {
-			stylishCommon.getResource(doc, resource.name, resource.url, assembleResults);
-		});
-	},
-	
-	// Get the value of the passed URL.
-	getResource: function(doc, name, url, callback) {
-		if (url == null) {
-			callback(name, null);
-			return;
-		}
-		if (url.indexOf("#") == 0) {
-			callback(name, doc.getElementById(url.substring(1)).textContent);
-			return;
-		}
-		var xhr = new XMLHttpRequest();
-		xhr.onload = function() {
-			if (xhr.status >= 400) {
-				callback(name, null);
-			} else {
-				callback(name, xhr.responseText);
-			}
-		}
-		if (url.length > 2000) {
-			var parts = url.split("?");
-			xhr.open("POST", parts[0], true);
-			xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
-			xhr.send(parts[1]);
-		} else {
-			xhr.open("GET", url, true);
-			xhr.send();
-		}
-	},
-	
-	installFromFile: function(doc) {
-		stylishCommon.installFromString(doc.body.textContent, doc.location.href);
-	},
-	
 	installFromString: function(css, uri, callback) {
-		uri = stylishCommon.cleanURI(uri);
+		uri = stylishFrameUtils.cleanURI(uri);
 		var style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
 		style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
 		style.init(uri, uri, uri, null, null, css, false, css, null, null);
 		stylishCommon.openInstall({style: style, installCallback: callback});
 	},
 
-	openInstall: function(params) {
+	/* Open the installation dialog.
+	 *   params: a hash containing style and installCallback. installCallback will be fired with one of: installed, existing, cancelled, failure
+	 *   win: (optional) a window object to use in case there isn't one on the global scope
+	 */
+	openInstall: function(params, win) {
+		if (!win) {
+			win = window;
+		}
 		var style = params.style;
 		// let's check if it's already installed
 		var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
@@ -350,7 +268,7 @@ var stylishCommon = {
 			}
 			return;
 		}
-		
+
 		if (!stylishCommon.isXULAvailable) {
 			var installStrings = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService).createBundle("chrome://stylish/locale/install.properties");
 			var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
@@ -374,7 +292,6 @@ var stylishCommon = {
 				if (params.installPingURL) {
 					var req = new XMLHttpRequest();
 					req.open("GET", params.installPingURL, true);
-					stylishCommon.fixXHR(req);
 					req.send(null);
 				}
 				if (params.installCallback) {
@@ -389,48 +306,16 @@ var stylishCommon = {
 		}
 		
 		function fillName(prefix) {
-			params.windowType = stylishCommon.getWindowName(prefix, params.triggeringDocument ? stylishCommon.cleanURI(params.triggeringDocument.location.href) : null);
-		}
-		if (Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getBoolPref("extensions.stylish.editOnInstall")) {
-			fillName("stylishEdit");
-			stylishCommon.openEdit(params.windowType, params);
-		} else {
-			fillName("stylishInstall");
-			if (!stylishCommon.focusWindow(params.windowType)) {
-				openDialog("chrome://stylish/content/install.xul", params.windowType, "chrome,resizable,dialog=no,centerscreen,resizable", params);
-			}
+			params.windowType = stylishCommon.getWindowName(prefix, params.triggeringDocument ? stylishFrameUtils.cleanURI(params.triggeringDocument.location.href) : null);
 		}
-	},
-
-	cleanURI: function(uri) {
-		var hash = uri.indexOf("#");
-		if (hash > -1) {
-			uri = uri.substring(0, hash);
+		fillName("stylishInstall");
+		if (!stylishCommon.focusWindow(params.windowType)) {
+			win.openDialog("chrome://stylish/content/install.xul", params.windowType, "chrome,resizable,dialog=no,centerscreen,resizable", params);
 		}
-		return uri;
 	},
 
-	// Removes whitespace and duplicate tags. Pass in a string and receive an array.
-	cleanTags: function(tags) {
-		tags = tags.split(/[\s,]+/);
-		var uniqueTags = [];
-		tags.filter(function(tag) {
-			return !/^\s*$/.test(tag);
-		}).forEach(function(tag) {
-			if (!uniqueTags.some(function(utag) {
-				return utag.toLowerCase() == tag.toLowerCase();
-			})) {
-				uniqueTags.push(tag);
-			}
-		});
-		return uniqueTags;
-	},
-
-	addCode: function(code) {
-		var style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
-		style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
-		style.init(null, null, null, null, null, code, false, null, null, null);
-		stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit"), {style: style});
+	addCode: function(code, win) {
+		stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit"), {code: code}, win);
 	},
 
 	generateSelectors: function(node) {
diff --git a/content/domiOverlay.xul b/content/domiOverlay.xul
index 58efbb0..55f457a 100644
--- a/content/domiOverlay.xul
+++ b/content/domiOverlay.xul
@@ -9,6 +9,7 @@
 <overlay id="stylish-overlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
+	<script type="application/javascript" src="frame-utils.js"/>
 	<script type="application/javascript" src="common.js"/>
 	<script type="application/javascript" src="domiOverlay.js"/>
 
diff --git a/content/edit.js b/content/edit.js
index afab3f5..547bbc9 100644
--- a/content/edit.js
+++ b/content/edit.js
@@ -1,10 +1,8 @@
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 var require = null;
-var autocompleter = null;
 try {
 	require = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools.require;
-	autocompleter = require("devtools/sourceeditor/autocomplete");
 } catch (ex) {
 	// file not available...
 }
@@ -12,9 +10,7 @@ try {
 var saved = false;
 var style = null;
 var strings = null;
-var codeE, nameE, tagsE, updateUrlE;
-var installPingURL = null;
-var installCallback = null;
+var codeE, nameE, updateUrlE;
 //because some editors can have different CRLF settings than what we've saved as, we'll only save if the code in the editor has changed. this will prevent update notifications when there are none
 var initialCode;
 var prefs = Services.prefs.getBranch("extensions.stylish.");
@@ -22,15 +18,58 @@ var prefs = Services.prefs.getBranch("extensions.stylish.");
 const CSSXULNS = "@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);";
 const CSSHTMLNS = "@namespace url(http://www.w3.org/1999/xhtml);";
 
+// Because the edit windows have different URL, we need to do this ourselves to persist the position for all edit windows.
+// Only do this if we're opened with openDialog, in which case window.opener is set
+if (window.opener) {
+	var windowPersist = JSON.parse(prefs.getCharPref("editorWindowPersist"));
+	window.moveTo(windowPersist.screenX, windowPersist.screenY);
+	window.resizeTo(windowPersist.width, windowPersist.height);
+	if (windowPersist.windowState == 1) {
+		//https://bugzilla.mozilla.org/show_bug.cgi?id=1079962
+		window.addEventListener("load", function() {
+			setTimeout(function() {
+				window.maximize();
+			}, 100);
+		});
+	} else {
+		window.moveTo(windowPersist.screenX, windowPersist.screenY);
+	}
+	window.addEventListener("unload", function() {
+		// save windowState if it's maximized or normal - otherwise use value
+		var ws = (window.windowState == 1 || window.windowState == 3) ? window.windowState : windowPersist.windowState;
+		// save the other stuff if it's normal state, otherwise use previous
+		if (ws == 3) {
+			// width and height get read from document but set from document.documentElement
+			// this can fail if this is in a tab. if so, don't save.
+			try {
+				windowPersist = {
+					width: window.outerWidth,
+					height: window.outerHeight,
+					screenX: window.screenX,
+					screenY: window.screenY
+				}
+			} catch (ex) {
+				return;
+			}
+		}
+		windowPersist.windowState = ws;
+
+		prefs.setCharPref("editorWindowPersist", JSON.stringify(windowPersist));
+	});
+}
+
 var sourceEditorType = null;
 var sourceEditor = null;
 function init() {
 	nameE = document.getElementById("name");
-	tagsE = document.getElementById("tags");
+	nameE.addEventListener("input", function() {enableSave(true);});
 	updateUrlE = document.getElementById("update-url")
+	updateUrlE.addEventListener("input", function() {enableSave(true);});
 	strings = document.getElementById("strings");
 	codeE = document.getElementById("internal-code");
 
+	initStyle();
+
 	if (prefs.getIntPref("editor") == 0) {
 		// sourceeditor, firefox 27+
 		let Editor = null;
@@ -43,120 +82,100 @@ function init() {
 		}
 		if (Editor && ("modes" in Editor)) {
 			document.getElementById("itsalltext").style.visibility = "hidden";
+			// disable Firefox's built-in find
+			document.documentElement.setAttribute("disablefastfind", "true");
+			var extraKeys = {};
+			// This needs to be uppercase to work, some locales use lowercase to match a character in the label
+			extraKeys[Editor.accel(document.getElementById("save-button").getAttribute("accesskey").toUpperCase())] = save;
+			extraKeys["F3"] = "find";
+			extraKeys["Shift-F3"] = "findPrev";
 			sourceEditor = new Editor({
 				mode: Editor.modes.css,
 				lineNumbers: true,
-				contextMenu: "orion-context"
+				contextMenu: "sourceeditor-context",
+				value: style.code,
+				extraKeys: extraKeys,
+				autocomplete: true
 			});
 			var sourceEditorElement = document.getElementById("sourceeditor");
-			document.getElementById("editor").selectedIndex = 2;
+			document.getElementById("editor").selectedIndex = 1;
 			sourceEditorType = "sourceeditor";
 			sourceEditor.appendTo(sourceEditorElement).then(init2);
-			return;
-		}
-		
-		// orion, firefox 8-26
-		var obj = {};
-		try {
-			Components.utils.import("resource:///modules/source-editor.jsm", obj);
-		} catch (ex) {
-			try {
-				// (moved circa firefox 27)
-				Components.utils.import("resource:///modules/devtools/sourceeditor/source-editor.jsm", obj);
-			} catch (ex) {
-				// orion not available
-			}
-		}
-		// check orion's pref
-		if ("SourceEditor" in obj && Services.prefs.getCharPref(obj.SourceEditor.PREFS.COMPONENT) != "textarea") {
-			// use orion
-			sourceEditor = new obj.SourceEditor();
-			sourceEditorType = "orion";
-			initOrion();
+			sourceEditor.on("change", function(cm, changeObj) {
+				enableSave(true);
+				enablePreview(true);
+				enableCheckForErrors(true);
+			});
 			return;
 		}
 	}
 	// textbox
 	sourceEditorType = "textarea";
 	sourceEditor = codeE;
+	codeE.addEventListener("input", function() {
+		enableSave(true);
+		enablePreview(true);
+		enableCheckForErrors(true);
+	});
+
 	setTimeout(init2, 100);
 }
 
 function initStyle() {
 	var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
 
-	// See if the ID is in the URL
+	// See if the ID/code is in the URL
 	var id;
+	var code = null;
 	var urlParts = location.href.split("?");
 	if (urlParts.length > 1) {
 		params = urlParts[1].split("&");
 		params.forEach(function(param) {
 			var kv = param.split("=");
-			if (kv.length > 1 && kv[0] == "id") {
-				id = kv[1];
+			if (kv.length > 1) {
+				if (kv[0] == "id") {
+					id = decodeURIComponent(kv[1]);
+				} else if (kv[0] == "code") {
+					code = decodeURIComponent(kv[1]);
+				}
 			}
 		});
 	}
 	if (id) {
 		style = service.find(id, service.CALCULATE_META | service.REGISTER_STYLE_ON_CHANGE);
-
-	// See the arguments passed in
-	} else if (window.arguments) {
-		if ("id" in window.arguments[0]) {
-			style = service.find(window.arguments[0].id, service.CALCULATE_META | service.REGISTER_STYLE_ON_CHANGE);
-		} else if ("style" in window.arguments[0]) {
-			style = window.arguments[0].style;
-			style.mode = service.CALCULATE_META | service.REGISTER_STYLE_ON_CHANGE;
+		enableSave(false);
+		enablePreview(!style.enabled);
+		document.documentElement.setAttribute("windowtype", stylishCommon.getWindowName("stylishEdit", id));
+	} else {
+		if (code == null) {
+			code = "";
 		}
-		installPingURL = window.arguments[0].installPingURL;
-		installCallback = window.arguments[0].installCallback;
-		document.documentElement.setAttribute("windowtype", window.arguments[0].windowType);
+		style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
+		style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
+		style.init(null, null, null, null, null, code, false, null, null, null);
+		enableSave(true);
+		enablePreview(true);
 	}
 
 	if (style) {
 		nameE.value = style.name;
-		tagsE.value = style.getMeta("tag", {}).join(" ");
 		updateUrlE.value = style.updateUrl;
-		codeElementWrapper.value = style.code;
-		// if the style already has an id, it's been previously saved, so this is an edit
-		// if the style has no id but has a url, it's an install
-		document.documentElement.getButton("extra1").hidden = style.id || !style.url;
-		if (style.id) {
-			document.title = strings.getFormattedString("editstyletitle", [style.name]);
-		} else {
-			document.title = strings.getString("newstyletitle");
-		}
-	} else {
-		style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
-		document.documentElement.getButton("extra1").hidden = true;
-		document.title = strings.getString("newstyletitle");
+		updateTitle();
 	}
 }
 
-function initOrion() {
-		// orion and it's all text don't get along. it's all text will update display later, so let's use visibility
-		document.getElementById("itsalltext").style.visibility = "hidden";
-		
-		var orionElement = document.getElementById("orion");
-		sourceEditor.init(orionElement, {mode: sourceEditor.MODES.CSS, showLineNumbers: true}, init2);
-		document.getElementById("editor").selectedIndex = 1;
-		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
-		var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);
-		// before firefox 11, we need to set up our own undo key binding
-		if ((appInfo.ID == "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" || appInfo.ID == "{3550f703-e582-4d05-9a08-453d09bdfdc6}") && versionChecker.compare(appInfo.version, "11.0a1") < 0) {
-			orionElement.addEventListener("keypress", handleOrionUndo, false);
-		}
-		window.controllers.insertControllerAt(0, undoController);
-		// only use our custom undo
-		document.getElementById("menu_undo").style.display = "none";
-		document.getElementById("stylish_menu_undo").style.display = "";
+function updateTitle() {
+	// if the style already has an id, it's been previously saved, so this is an edit
+	// if the style has no id but has a url, it's an install
+	if (style.id) {
+		document.title = strings.getFormattedString("editstyletitle", [style.name]);
+	} else {
+		document.title = strings.getString("newstyletitle");
+	}
 }
 
 function init2() {
 
-	if (sourceEditorType == "orion") {
-		sourceEditor.addEventListener("ContextMenu", handleOrionContext, false);
-	}
 	if (sourceEditorType == "textarea" || (sourceEditorType == "sourceeditor" && "setOption" in sourceEditor)) {
 		var wrapLines = prefs.getBoolPref("wrap_lines");
 		refreshWordWrap(wrapLines);
@@ -164,20 +183,11 @@ function init2() {
 		wrapLinesE.checked = wrapLines;
 		wrapLinesE.style.display = "";
 	}
-	var autocompleteEnabled = false;
-	try {
-		autocompleteEnabled = Services.prefs.getBoolPref("devtools.styleeditor.autocompletion-enabled");
-	} catch (ex) {}
-	if (sourceEditorType == "sourceeditor" && autocompleteEnabled) {
-		// Up to Firefox 28, sometimes "require" will return an object when something is not available instead of throwing.
-		// Rather than trying to detect if autocompleter is available, let's just try to use it.
-		try {
-			sourceEditor.extend(autocompleter);
-			sourceEditor.setupAutoCompletion(null);
-		} catch (ex) { }
-	}
 
-	initStyle();
+	// the initial value for sourceeditor is set in the Editor constructor, which has the benefit of not being undoable
+	if (sourceEditorType != "sourceeditor") {
+		codeElementWrapper.value = style.code;
+	}
 
 	setTimeout(function(){
 		// the code returned is different for some reason a little later...
@@ -187,20 +197,10 @@ function init2() {
 			codeElementWrapper.setSelectionRange(0, 0);
 		}
 	},100);
-}
 
-function handleOrionUndo(event) {
-	if (event.ctrlKey) {
-		if (event.which == 122 || event.which == 90) { // Z
-			if (event.shiftKey) {
-				sourceEditor.redo();
-			} else {
-				sourceEditor.undo()
-			}
-		} else if (event.which == 121 || event.which == 89) { // Y
-			sourceEditor.redo();
-		}
-	}
+	initFinder();
+
+	codeElementWrapper.focus();
 }
 
 var undoController = {
@@ -223,26 +223,6 @@ var undoController = {
 	onEvent: function() {}
 }
 
-function handleOrionContext(event) {
-	sourceEditor.focus();
-	goUpdateGlobalEditMenuItems();
-	goUpdateCommand("stylish_cmd_undo");
-	var menu = document.getElementById("orion-context");
-	if (menu.state == "closed") {
-		menu.openPopupAtScreen(event.screenX, event.screenY, true);
-	}
-}
-
-function switchToInstall() {
-	Services.prefs.setBoolPref("extensions.stylish.editOnInstall", false);
-	style.name = nameE.value;
-	if (codeElementWrapper.value != initialCode) {
-		style.code = codeElementWrapper.value;
-	}
-	stylishCommon.openInstall({style: style, installPingURL: installPingURL, installCallback: installCallback});
-	window.close();
-}
-
 function save() {
 	style.name = nameE.value;
 	if (!style.name) {
@@ -269,57 +249,44 @@ function save() {
 		style.revert();
 	}
 
-	style.removeAllMeta("tag")
-	stylishCommon.cleanTags(tagsE.value).forEach(function(v) {
-		style.addMeta("tag", v);
-	});
 	style.updateUrl = updateUrlE.value;
+
+	var newStyle = !style.id;
+
 	style.save();
 	saved = true;
-	if (installPingURL) {
-		var req = new XMLHttpRequest();
-		req.open("GET", installPingURL, true);
-		stylishCommon.fixXHR(req);
-		req.send(null);
+
+	if (newStyle) {
+		location.href = location.href.split("?")[0] + "?id=" + style.id;
+		return true;
 	}
 
+	updateTitle();
+
+	enableSave(false);
+	enablePreview(!style.enabled);
+
 	return true;
 }
 
+function enableSave(enabled) {
+	document.getElementById("save-button").disabled = !enabled;
+}
+
+function enablePreview(enabled) {
+	document.getElementById("preview-button").disabled = !enabled;
+}
+
+function enableCheckForErrors(enabled) {
+	document.getElementById("check-for-errors-button").disabled = !enabled;
+}
+
 function preview() {
 	style.name = nameE.value;
 	style.code = codeElementWrapper.value;
-	checkForErrors();
 	// delay this so checkForErrors doesn't pick up on what happens
 	setTimeout(function() { style.setPreview(true);}, 50);
-}
-
-function cancelDialog() {
-	if (!saved && initialCode != codeElementWrapper.value) {
-		var ps = Components.interfaces.nsIPromptService
-		var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(ps);
-		switch (promptService.confirmEx(window, strings.getString("unsavedchangestitle"), strings.getString("unsavedchanges"), ps.BUTTON_POS_0 * ps.BUTTON_TITLE_SAVE + ps.BUTTON_POS_1 * ps.BUTTON_TITLE_DONT_SAVE + ps.BUTTON_POS_2 * ps.BUTTON_TITLE_CANCEL, "", "", "", null, {})) {
-			case 0:
-				return save();
-			case 1:
-				return true;
-			case 2:
-				return false;
-		}
-	}
-	return true;
-}
-
-function dialogClosing() {
-	//turn off preview!
-	style.setPreview(false);
-	if (!saved) {
-		style.revert();
-	}
-	
-	if (installCallback) {
-		installCallback(saved ? "success" : "cancelled");
-	}
+	enablePreview(false);
 }
 
 function checkForErrors() {
@@ -353,6 +320,7 @@ function checkForErrors() {
 		}
 	}
 	style.checkForErrors(codeElementWrapper.value, errorListener);
+	enableCheckForErrors(false);
 }
 
 function goToLine(line, col) {
@@ -578,14 +546,14 @@ if (finderJsmStyle) {
 
 var codeElementWrapper = {
 	get value() {
-		if (sourceEditorType == "orion" || sourceEditorType == "sourceeditor") {
+		if (sourceEditorType == "sourceeditor") {
 			return sourceEditor.getText();
 		}
 		return sourceEditor.value;
 	},
 
 	set value(v) {
-		if (sourceEditorType == "orion" || sourceEditorType == "sourceeditor") {
+		if (sourceEditorType == "sourceeditor") {
 			sourceEditor.setText(v);
 		} else {
 			sourceEditor.value = v;
@@ -593,9 +561,7 @@ var codeElementWrapper = {
 	},
 
 	setSelectionRange: function(start, end) {
-		if (sourceEditorType == "orion") {
-			sourceEditor.setSelection(start, end);
-		} else if (sourceEditorType == "sourceeditor") {
+		if (sourceEditorType == "sourceeditor") {
 			sourceEditor.setSelection(sourceEditor.getPosition(start), sourceEditor.getPosition(end));
 		} else {
 			sourceEditor.setSelectionRange(start, end);
@@ -607,9 +573,6 @@ var codeElementWrapper = {
 	},
 
 	get selectionStart() {
-		if (sourceEditorType == "orion") {
-			return sourceEditor.getSelection().start;
-		}
 		if (sourceEditorType == "sourceeditor") {
 			return sourceEditor.getOffset(sourceEditor.getCursor("start"));
 		}
@@ -617,9 +580,6 @@ var codeElementWrapper = {
 	},
 
 	get selectionEnd() {
-		if (sourceEditorType == "orion") {
-			return sourceEditor.getSelection().end;
-		}
 		if (sourceEditorType == "sourceeditor") {
 			return sourceEditor.getOffset(sourceEditor.getCursor("end"));
 		}
@@ -635,15 +595,12 @@ var codeElementWrapper = {
 	},
 
 	get scrollElement() {
-		if (sourceEditorType == "orion") {
-			return sourceEditor._view._viewDiv;
-		}
 		return sourceEditor.inputField;
 	}
 
 }
 
-window.addEventListener("load", function() {
+function initFinder() {
 	// sourceeditor has its own way of doing this
 	if (sourceEditorType != "sourceeditor") {
 		var findBar = document.getElementById("findbar");
@@ -667,7 +624,20 @@ window.addEventListener("load", function() {
 			event.preventDefault();
 		}
 	}, false);
-}, false);
+}
+
+// if the style we're editing has been changed, turn off preview
+var changeObserver = {
+	observe: function(subject, topic, data) {
+		if (subject.id == style.id) {
+			// unapply any preview and get our internal style object in sync with the changes
+			style.setPreview(false);
+			style.code = subject.code;
+			style.enabled = subject.enabled;
+		}
+	}
+};
+Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService).addObserver(changeObserver, "stylish-style-change", false);
 
 // if the style we're editing has been deleted, turn off preview and close the window
 var deleteObserver = {
@@ -682,3 +652,30 @@ var deleteObserver = {
 	}
 };
 Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService).addObserver(deleteObserver, "stylish-style-delete", false);
+
+// Prompt for unsaved changes.
+// This is firing twice in some cases like on Seamonkey, so don't do it if we've shown it in the past 5 seconds.
+var lastBeforeUnload = null;
+window.addEventListener("beforeunload", function(event) {
+	if (!saved && initialCode != codeElementWrapper.value && (lastBeforeUnload == null || Date.now() - lastBeforeUnload > 5000)) {
+		lastBeforeUnload = Date.now();
+		// Firefox will show its own stuff, so the text doesn't matter as long as it's text
+		event.returnValue = "You're going to lose your changes - close anyway?";
+	}
+});
+
+// Closing by closing the window (e.g. pressing the X when in windowed mode) doesn't fire beforeunload. Cancel the close event and close it ourselves so beforeunload runs.
+window.addEventListener("close", function(event) {
+	event.preventDefault();
+	window.close();
+})
+
+window.addEventListener("unload", function(event) {
+	//turn off preview!
+	style.setPreview(false);
+	if (!saved) {
+		style.revert();
+	}
+});
+
+window.addEventListener("load", init);
diff --git a/content/edit.xul b/content/edit.xul
index 261b416..85c4673 100644
--- a/content/edit.xul
+++ b/content/edit.xul
@@ -1,105 +1,95 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://stylish/skin/edit.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
-<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
-
-<!DOCTYPE dialog [
-	<!ENTITY % edit SYSTEM "chrome://stylish/locale/edit.dtd">
-	<!ENTITY % internaledit SYSTEM "chrome://global/locale/editMenuOverlay.dtd">
-	%edit;
-	%internaledit;
-]>
-
-<dialog
-	id="stylish"
-	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-	buttons="accept,cancel,extra1,extra2"
-	persist="screenX screenY width height sizemode"
-	width="600"
-	height="400"
-	onload="init()"
-	onunload="dialogClosing()"
-	ondialogaccept="return save()"
-	ondialogcancel="return cancelDialog()"
-	ondialogextra2="preview();"
-	ondialogextra1="switchToInstall();"
-	buttonlabelaccept="&save;"
-	buttonaccesskeyaccept="&save.ak;"
-	buttonlabelextra2="&preview;"
-	buttonaccesskeyextra2="&preview.ak;"
-	buttonlabelextra1="&switchtoinstall;"
-	buttonaccesskeyextra1="&switchtoinstall.ak;">
-	
-	<script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
-	<script type="application/javascript" src="edit.js"/>
-	<script type="application/javascript" src="common.js"/>
-
-	<script type="application/javascript" src="chrome://itsalltext/content/API.js"/>
-
-	<stringbundle id="strings" src="chrome://stylish/locale/edit.properties"/>
-
-	<keyset>
-		<key id="save-key" modifiers="control" key="S" oncommand="save()"/>
-		<key id="find-key" modifiers="control" key="F" oncommand="document.getElementById('findbar').open();document.getElementById('findbar')._findField.focus()"/>
-	</keyset>
-
-	<commandset>
-		<command id="stylish_cmd_undo" oncommand="goDoCommand('stylish_cmd_undo')" disabled="true"/>
-	</commandset>
-
-	<menupopup id="orion-context">
-		<!-- custom undo for orion -->
-		<menuitem id="stylish_menu_undo" label="&undoCmd.label;" key="key_undo" accesskey="&undoCmd.accesskey;" command="stylish_cmd_undo" style="display: none"/>
-		<menuitem id="menu_undo"/>
-		<menuseparator/>
-		<menuitem id="menu_cut"/>
-		<menuitem id="menu_copy"/>
-		<menuitem id="menu_paste"/>
-		<menuitem id="menu_delete"/>
-		<menuseparator/>
-		<menuitem id="menu_selectAll" onclick="codeElementWrapper.setSelectionRange(0,codeElementWrapper.value.length)"/>
-	</menupopup>
-
-	<commandset id="editMenuCommands"/>
-
-	<vbox flex="1">
-		<grid>
-			<columns>
-				<column/>
-				<column flex="1"/>
-			</columns>
-			<rows>
-				<row align="center">
-					<label control="name" accesskey="&name.ak;">&name;</label>
-					<textbox id="name" flex="1"/>
-				</row>
-				<row align="center">
-					<label control="tags" accesskey="&tags.ak;">&tags;</label>
-					<textbox id="tags" flex="1"/>
-				</row>
-			</rows>
-		</grid>
-		<textbox id="update-url" style="display:none"/>
-		<hbox id="editor-tools">
-			<button label="&insert;" accesskey="&insert.ak;" type="menu">
-				<menupopup>
-					<menuitem id="insert-html" label="&htmlnamespace;" accesskey="&htmlnamespace.ak;" oncommand="insertCodeAtStart(CSSHTMLNS);"/>
-					<menuitem id="insert-xul" label="&xulnamespace;" accesskey="&xulnamespace.ak;" oncommand="insertCodeAtStart(CSSXULNS);"/>
-					<menuitem id="insert-chrome-folder" label="&chromefolder;" accesskey="&chromefolder.ak;" oncommand="insertChromePath()"/>
-					<menuitem id="insert-data-uri" label="&dataURI;" accesskey="&dataURI.ak;" oncommand="insertDataURI()"/>
-				</menupopup>
-			</button>
-			<button id="itsalltext" label="&openintexternaleditor;" accesskey="&openintexternaleditor.ak;" itsalltext-control="internal-code" itsalltext-extension=".css" style="display: none;"/>
-			<checkbox id="wrap-lines" label="&wraplines;" accesskey="&wraplines.ak;" oncommand="changeWordWrap(this.checked)" style="display: none"/>
-		</hbox>
-		<deck id="editor" flex="1">
-			<textbox id="internal-code" multiline="true" flex="1"/>
-			<hbox id="orion" flex="1"/>
-			<hbox id="sourceeditor" flex="1"/>
-		</deck>
-		<findbar id="findbar" browserid="internal-code"/>
-		<vbox id="errors" style="display:none;"/>
-	</vbox>
-
-</dialog>
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://stylish/skin/edit.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
+<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
+
+<!DOCTYPE window [
+	<!ENTITY % edit SYSTEM "chrome://stylish/locale/edit.dtd">
+	<!ENTITY % internaledit SYSTEM "chrome://global/locale/editMenuOverlay.dtd">
+	%edit;
+	%internaledit;
+]>
+
+<window
+	class="theme-body"
+	id="stylish-edit"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+	xmlns:html="http://www.w3.org/1999/xhtml">
+
+	<html:link rel="icon" href="chrome://stylish/skin/16.png" style="display:none"/>
+
+	<script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
+	<script type="application/javascript" src="chrome://stylish/content/edit.js"/>
+	<script type="application/javascript" src="chrome://stylish/content/frame-utils.js"/>
+	<script type="application/javascript" src="chrome://stylish/content/common.js"/>
+	<script type="application/javascript;version=1.8" src="chrome://browser/content/devtools/theme-switching.js"></script>
+
+	<script type="application/javascript" src="chrome://itsalltext/content/API.js"/>
+
+	<stringbundle id="strings" src="chrome://stylish/locale/edit.properties"/>
+
+	<keyset>
+		<key id="save-key" modifiers="control" key="S" oncommand="save()"/>
+		<key id="find-key" modifiers="control" key="F" oncommand="document.getElementById('findbar').open();document.getElementById('findbar')._findField.focus()"/>
+	</keyset>
+
+	<menupopup id="sourceeditor-context">
+		<menuitem id="menu_undo"/>
+		<menuseparator/>
+		<menuitem id="menu_cut"/>
+		<menuitem id="menu_copy"/>
+		<menuitem id="menu_paste"/>
+		<menuitem id="menu_delete"/>
+		<menuseparator/>
+		<menuitem id="menu_selectAll" onclick="codeElementWrapper.setSelectionRange(0,codeElementWrapper.value.length)"/>
+	</menupopup>
+
+	<commandset id="editMenuCommands"/>
+
+	<vbox id="main-area" flex="1" class="theme-toolbar">
+		<hbox id="editor-tools">
+			<button class="devtools-toolbarbutton" id="save-button" label="&save;" accesskey="&save.ak;" oncommand="save()"/>
+			<button class="devtools-toolbarbutton" id="preview-button" label="&preview;" accesskey="&preview.ak;" oncommand="checkForErrors();preview()"/>
+			<button class="devtools-toolbarbutton" id="check-for-errors-button" label="&checkforerrors;" accesskey="&checkforerrors.ak;" oncommand="checkForErrors()"/>
+
+			<vbox class="devtools-separator"></vbox>
+
+			<button class="devtools-toolbarbutton" label="&insert;" accesskey="&insert.ak;" type="menu">
+				<menupopup>
+					<menuitem id="insert-html" label="&htmlnamespace;" accesskey="&htmlnamespace.ak;" oncommand="insertCodeAtStart(CSSHTMLNS);"/>
+					<menuitem id="insert-xul" label="&xulnamespace;" accesskey="&xulnamespace.ak;" oncommand="insertCodeAtStart(CSSXULNS);"/>
+					<menuitem id="insert-chrome-folder" label="&chromefolder;" accesskey="&chromefolder.ak;" oncommand="insertChromePath()"/>
+					<menuitem id="insert-data-uri" label="&dataURI;" accesskey="&dataURI.ak;" oncommand="insertDataURI()"/>
+				</menupopup>
+			</button>
+			<button id="itsalltext" label="&openintexternaleditor;" accesskey="&openintexternaleditor.ak;" itsalltext-control="internal-code" itsalltext-extension=".css" style="display: none;"/>
+			<checkbox id="wrap-lines" label="&wraplines;" accesskey="&wraplines.ak;" oncommand="changeWordWrap(this.checked)" style="display: none"/>
+		</hbox>
+		<separator orient="horizontal" class="devtools-horizontal-splitter"/>
+		<grid>
+			<columns>
+				<column/>
+				<column flex="1"/>
+			</columns>
+			<rows>
+				<row align="center">
+					<label control="name" accesskey="&name.ak;">&name;</label>
+					<textbox class="devtools-textinput" id="name" flex="1"/>
+				</row>
+				<row align="center" class="update-url-row">
+					<label control="update-url">Update URL</label>
+					<textbox class="devtools-textinput" id="update-url" flex="1"/>
+				</row>
+			</rows>
+		</grid>
+		<separator orient="horizontal" class="devtools-horizontal-splitter"/>
+		<deck id="editor" flex="1">
+			<textbox id="internal-code" multiline="true" flex="1"/>
+			<hbox id="sourceeditor" flex="1"/>
+		</deck>
+		<findbar class="theme-toolbar" id="findbar" browserid="internal-code"/>
+		<vbox class="theme-toolbar" id="errors" style="display:none;"/>
+	</vbox>
+
+</window>
diff --git a/content/frame-utils.js b/content/frame-utils.js
new file mode 100644
index 0000000..36e92ea
--- /dev/null
+++ b/content/frame-utils.js
@@ -0,0 +1,124 @@
+var EXPORTED_SYMBOLS = ["stylishFrameUtils"];
+
+/* Functions to be used by both frame and chrome scripts */
+var stylishFrameUtils = {
+	cleanURI: function(uri) {
+		var hash = uri.indexOf("#");
+		if (hash > -1) {
+			uri = uri.substring(0, hash);
+		}
+		return uri;
+	},
+
+	// Returns the value of the <link> with a "rel" of the passed name.
+	getMeta: function(doc, name) {
+		var e = doc.querySelector("link[rel='" + name + "']");
+		return e ? e.getAttribute("href") : null;
+	},
+
+	// Callback passes hash or null
+	gatherStyleInfo: function(doc, callback) {
+		// we want both the url and the content of the md5
+		var md5Url = stylishFrameUtils.getMeta(doc, "stylish-md5-url");
+		var resourcesNeeded = [{name: "stylish-code", download: true}, {name: "stylish-description", download: true}, {name: "stylish-install-ping-url"}, {name: "stylish-update-url"}, {name: "stylish-md5-url", download: true}, {name: "stylish-id-url"}];
+
+		stylishFrameUtils.getResourcesFromMetas(doc, resourcesNeeded, function(results) {
+			// This is the only required property
+			if (results["stylish-code"] == null || results["stylish-code"].length == 0) {
+				callback(null);
+				return;
+			}
+			var uri = stylishFrameUtils.cleanURI("documentURI" in doc ? doc.documentURI : doc.location.href);
+			results["uri"] = uri;
+			if (results["stylish-id-url"] == null) {
+				results["stylish-id-url"] = uri
+			}
+			results["stylish-md5"] = results["stylish-md5-url"];
+			results["stylish-md5-url"] = md5Url;
+
+			callback(results);
+		});
+	},
+
+	// Gets the values of the passed meta names.
+	//   doc
+	//   resourcesToGet: an array of:
+	//     name: meta name to get
+	//     download: if true, will download if the value is a remote URL
+	//   callback: called with a hash of name to value
+	getResourcesFromMetas: function(doc, resourcesToGet, callback) {
+		var keyUrls = {};
+		var resourcesToDownload = [];
+		resourcesToGet.forEach(function(r) {
+			var c = stylishFrameUtils.getMeta(doc, r.name);
+			if (r.download) {
+				resourcesToDownload.push({name: r.name, url: c});
+			} else {
+				keyUrls[r.name] = c;
+			}
+		});
+		stylishFrameUtils.getResources(doc, resourcesToDownload, function(results) {
+			results.forEach(function(r) {
+				keyUrls[r.name] = r.value;
+			});
+			callback(keyUrls);
+		});
+	},
+	
+	// Gets the values of the passed URLs.
+	//   doc
+	//   resources: an array of:
+	//     name: name of the resource
+	//     url: url of the resource
+	//   callback: called with a hash of name to value
+	getResources: function(doc, resources, callback) {
+		var results = [];
+		
+		function assembleResults(name, value) {
+			results.push({name: name, value: value});
+			if (results.length == resources.length) {
+				callback(results);
+			}
+		}
+		
+		resources.forEach(function(resource) {
+			stylishFrameUtils.getResource(doc, resource.name, resource.url, assembleResults);
+		});
+	},
+	
+	// Get the value of the passed URL.
+	getResource: function(doc, name, url, callback) {
+		if (url == null) {
+			callback(name, null);
+			return;
+		}
+		if (url.indexOf("#") == 0) {
+			callback(name, doc.getElementById(url.substring(1)).textContent);
+			return;
+		}
+		// Use the page's XHR if possible
+		var xhr = doc.defaultView ? new doc.defaultView.XMLHttpRequest() : new XMLHttpRequest();
+		xhr.onload = function() {
+			if (xhr.status >= 400) {
+				Components.utils.reportError("Download of '" + url + "' resulted in status '" + xhr.status + "'.");
+				callback(name, null);
+			} else {
+				callback(name, xhr.responseText);
+			}
+		}
+		xhr.onerror = function() {
+			Components.utils.reportError("Download of '" + url + "' resulted in error.");
+			callback(name, null);
+		}
+		if (url.length > 2000) {
+			var parts = url.split("?");
+			xhr.open("POST", parts[0], true);
+			xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+			xhr.send(parts[1]);
+		} else {
+			xhr.open("GET", url, true);
+			xhr.send();
+		}
+	},
+
+}
diff --git a/content/install-frame-script.js b/content/install-frame-script.js
new file mode 100644
index 0000000..3af3b62
--- /dev/null
+++ b/content/install-frame-script.js
@@ -0,0 +1,95 @@
+Components.utils.import("chrome://stylish/content/frame-utils.js", this);
+
+function isAllowedToInstall(doc) {
+	// main doc only
+	if (doc.nodeName != "#document" || doc.defaultView.frameElement) {
+		return false;
+	}
+	//this can throw for some reason
+	try {
+		var domain = doc.domain;
+	} catch (ex) {
+		return false;
+	}
+	if (!domain) {
+		return false;
+	}
+	if (doc.defaultView.location.href == "about:blank") {
+		return false;
+	}
+	var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
+	prefs = prefs.getBranch("extensions.stylish.install.");
+	var allowedDomains = prefs.getCharPref("allowedDomains").split(" ");
+	if (allowedDomains.indexOf(domain) > -1) {
+		return true;
+	}
+	//maybe this is a subdomain 
+	for (var i = 0; i < allowedDomains.length; i++) {
+		var subdomain = "." + allowedDomains[i];
+
+		var subdomainIndex = domain.lastIndexOf(subdomain);
+		if (subdomainIndex > -1 && subdomainIndex == domain.length - subdomain.length) {
+			return true;
+		}
+	}
+	return false;
+}
+
+addEventListener("DOMContentLoaded", function(event) {
+	if (isAllowedToInstall(event.originalTarget)) {
+		stylishFrameUtils.getResourcesFromMetas(content.document, [{name: "stylish-md5-url", download: true}, {name: "stylish-id-url"}], function(results) {
+			sendAsyncMessage("stylish:get-style-install-status", {idUrl: results["stylish-id-url"], md5:results["stylish-md5-url"]});
+		});
+	}
+});
+
+addMessageListener("stylish:style-can-be-installed", function(message) {
+	dispatchEvent("styleCanBeInstalled");
+	content.document.addEventListener("stylishInstall", installFromSite);
+});
+
+function installFromSite(event) {
+	stylishFrameUtils.gatherStyleInfo(content.document, function(results) {
+		if (results) {
+			sendAsyncMessage("stylish:install-style", results);
+		}
+	});
+}
+
+addMessageListener("stylish:style-installed", function(message) {
+	dispatchEvent("styleInstalled");
+});
+
+addMessageListener("stylish:style-already-installed", function(message) {
+	dispatchEvent("styleAlreadyInstalled");
+	// listen to this regardless, the page may decide to allow updates anyway (e.g. for styles with settings)
+	content.document.addEventListener("stylishUpdate", updateFromSite);
+});
+
+addMessageListener("stylish:style-can-be-updated", function(message) {
+	dispatchEvent("styleCanBeUpdated");
+	content.document.addEventListener("stylishUpdate", updateFromSite);
+});
+
+function updateFromSite(event) {
+	var doc = event.originalTarget;
+	if (isAllowedToInstall(doc)) {
+		stylishFrameUtils.getResourcesFromMetas(doc, [{name: "stylish-md5-url", download: true}, {name: "stylish-update-url"}, {name: "stylish-id-url"}, {name: "stylish-code", download: true}], function(results) {
+			// we want both the url and the content of the md5
+			var md5Url = stylishFrameUtils.getMeta(doc, "stylish-md5-url");
+			sendAsyncMessage("stylish:update-style", {idUrl: results["stylish-id-url"], md5:results["stylish-md5-url"], md5Url: md5Url, updateUrl: results["stylish-update-url"], code: results["stylish-code"]});
+		});
+	}
+}
+
+addMessageListener("stylish:style-updated", function(message) {
+	dispatchEvent("styleInstalled");
+});
+
+function dispatchEvent(type, data) {
+	if (typeof data == "undefined") {
+		data = null;
+	}
+	var stylishEvent = new content.CustomEvent(type, {detail: data});
+	content.document.dispatchEvent(stylishEvent);
+}
diff --git a/content/install-overlay.js b/content/install-overlay.js
deleted file mode 100644
index 783d2a1..0000000
--- a/content/install-overlay.js
+++ /dev/null
@@ -1,159 +0,0 @@
-// Overlay for installing styles
-var stylishInstallOverlay = {
-	service: Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle),
-
-	init: function() {
-		stylishInstallOverlay.STRINGS = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService).createBundle("chrome://stylish/locale/overlay.properties");
-
-		//page load listener
-		var appcontent = document.getElementById("appcontent"); // browser
-		if (!appcontent) {
-			appcontent = document.getElementById("frame_main_pane"); // songbird
-		}
-		if (!appcontent) {
-			appcontent = document.getElementById("browsers"); // fennec
-		}
-		if (appcontent) {
-			appcontent.addEventListener("DOMContentLoaded", stylishInstallOverlay.onPageLoad, true);
-		}
-	},
-
-	isAllowedToInstall: function(doc) {
-		//this can throw for some reason
-		try {
-			var domain = doc.domain;
-		} catch (ex) {
-			return false;
-		}
-		if (!domain) {
-			return false;
-		}
-		var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
-		prefs = prefs.getBranch("extensions.stylish.install.");
-		var allowedDomains = prefs.getCharPref("allowedDomains").split(" ");
-		if (allowedDomains.indexOf(doc.domain) > -1) {
-			return true;
-		}
-		//maybe this is a subdomain 
-		for (var i = 0; i < allowedDomains.length; i++) {
-			var subdomain = "." + allowedDomains[i];
-
-			var subdomainIndex = doc.domain.lastIndexOf(subdomain);
-			if (subdomainIndex > -1 && subdomainIndex == doc.domain.length - subdomain.length) {
-				return true;
-			}
-		}
-		return false;
-	},
-
-	getCodeFromPage: function(doc) {
-		//workaround for bug 194231 
-		var codeTextNodes = doc.getElementById("stylish-code").childNodes;
-		var code = "";
-		for (var i = 0; i < codeTextNodes.length; i++) {
-			code += codeTextNodes[i].nodeValue;
-		}
-		return code;
-	},
-
-	checkUpdateEvent: function(doc, style) {
-		var code = stylishInstallOverlay.getCodeFromPage(doc);
-		// Give the page the updateUrl so it can initialize settings. exposedProps lets us get around security restrictions.
-		var data = {updateUrl: style.updateUrl, __exposedProps__ : { updateUrl : "r"}};
-		if (!stylishCommon.cssAreEqual((style.originalCode || style.code), code)) {
-			stylishCommon.dispatchEvent(doc, "styleCanBeUpdated", data);
-		} else {
-			stylishCommon.dispatchEvent(doc, "styleAlreadyInstalled", data);
-		}
-		// listen to this regardless, the page may decide to allow updates anyway (e.g. for styles with settings)
-		doc.addEventListener("stylishUpdate", stylishInstallOverlay.updateFromSite, false);
-	},
-
-	getIdUrl: function(doc) {
-		var idUrlElement = doc.querySelector("link[rel='stylish-id-url']");
-		return idUrlElement ? idUrlElement.href : stylishCommon.cleanURI(doc.location.href);
-	},
-
-	onPageLoad: function(event) {
-		if (event.originalTarget.nodeName == "#document" && stylishInstallOverlay.isAllowedToInstall(event.originalTarget)) {
-			var doc = event.originalTarget;
-
-			//style installed status
-			var style = stylishInstallOverlay.service.findByUrl(stylishInstallOverlay.getIdUrl(doc), 0);
-			if (style) {
-				// If the code isn't available, ask for it and wait
-				var code = stylishInstallOverlay.getCodeFromPage(doc);
-				if (code) {
-					stylishInstallOverlay.checkUpdateEvent(doc, style);
-				} else {
-					doc.addEventListener("stylishCodeLoaded", function(){stylishInstallOverlay.checkUpdateEvent(doc, style)}, false);
-					doc.addEventListener("stylishCodeCantBeLoaded", function(){stylishInstallOverlay.checkUpdateEvent(doc, style)}, false);
-					stylishCommon.dispatchEvent(doc, "styleLoadCode");
-				}
-			} else {
-				stylishCommon.dispatchEvent(doc, "styleCanBeInstalled");
-				doc.addEventListener("stylishInstall", stylishInstallOverlay.installFromSite, false);
-			}
-		}
-	},
-
-	installFromSite: function(event) {
-		stylishCommon.installFromSite(event.target, function(result) {
-			if (result == "installed") {
-				stylishCommon.dispatchEvent(event.target, "styleInstalled");
-			}
-		});
-	},
-
-	updateFromSite: function(event) {
-		var doc = event.target;
-		style = stylishInstallOverlay.service.findByUrl(stylishInstallOverlay.getIdUrl(doc), stylishInstallOverlay.service.REGISTER_STYLE_ON_CHANGE + stylishInstallOverlay.service.CALCULATE_META);
-		if (!style) {
-			return;
-		}
-		var links = doc.getElementsByTagName("link");
-		var code;
-		for (i in links) {
-			switch (links[i].rel) {
-				case "stylish-code":
-					var id = links[i].getAttribute("href").replace("#", "");
-					var element = doc.getElementById(id);
-					if (element) {
-						code = element.textContent;
-					}
-					break;
-			}
-		}
-		if (!code) {
-			return;
-		}
-		var prompt = stylishInstallOverlay.STRINGS.formatStringFromName("updatestyle", [style.name], 1);
-		var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
-		if (prompts.confirmEx(window, stylishInstallOverlay.STRINGS.formatStringFromName("updatestyletitle", [], 0), prompt, prompts.BUTTON_POS_0 * prompts.BUTTON_TITLE_IS_STRING + prompts.BUTTON_POS_1 * prompts.BUTTON_TITLE_CANCEL, stylishInstallOverlay.STRINGS.formatStringFromName("updatestyleok", [], 0), null, null, null, {}) == 0) {
-			style.code = code;
-
-			//we're now in sync with the remote style, so let's set things appropriately
-			style.originalCode = code;
-			// we want both the url and the content of the md5
-			var md5Url = stylishCommon.getMeta(doc, "stylish-md5-url");
-			style.md5Url = md5Url;
-			var originalMd5 = null;
-			var resourcesNeeded = [{name: "stylish-update-url"}, {name: "stylish-md5-url", download: true}];
-			stylishCommon.getResourcesFromMetas(doc, resourcesNeeded, function(results) {
-				style.updateUrl = results["stylish-update-url"];
-				style.originalMd5 = results["stylish-md5-url"];
-				style.save();
-				stylishCommon.dispatchEvent(doc, "styleInstalled");
-			});
-		}
-	},
-
-	installFromFile: function(event) {
-		stylishCommon.installFromFile(content.document);
-	}
-
-};
-
-addEventListener("load", stylishInstallOverlay.init, false);
-addEventListener("unload", stylishInstallOverlay.destroy, false);
-
diff --git a/content/install.js b/content/install.js
index 5a561ee..4c8a988 100644
--- a/content/install.js
+++ b/content/install.js
@@ -54,12 +54,6 @@ function init() {
 	}
 }
 
-function switchToEdit() {
-	Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setBoolPref("extensions.stylish.editOnInstall", true);
-	stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit", style.idUrl), {style: style, installPingURL: installPingURL, installCallback: installCallback});
-	window.close();
-}
-
 function save(andClose) {
 	if (!nameElement.value) {
 		alert(strings.getString("missingname"));
@@ -71,7 +65,6 @@ function save(andClose) {
 	if (installPingURL) {
 		var req = new XMLHttpRequest();
 		req.open("GET", installPingURL, true);
-		stylishCommon.fixXHR(req);
 		req.send(null);
 	}
 	saved = true;
@@ -88,5 +81,7 @@ function preview() {
 }
 
 function callCallback() {
-	installCallback(saved ? "installed" : "cancelled");
+	if (installCallback) {
+		installCallback(saved ? "installed" : "cancelled");
+	}
 }
diff --git a/content/install.xul b/content/install.xul
index 1ed35dd..696e57a 100644
--- a/content/install.xul
+++ b/content/install.xul
@@ -1,46 +1,44 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://stylish/skin/install.css" type="text/css"?>
-
-<!DOCTYPE dialog [
-	<!ENTITY % edit SYSTEM "chrome://stylish/locale/install.dtd">
-	%edit;
-]>
-
-<dialog
-	id="stylish"
-	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-	xmlns:html="http://www.w3.org/1999/xhtml"
-	persist="screenX screenY width height sizemode"
-	width="500"
-	height="300"
-	buttons="accept,cancel,extra1,extra2"
-	onload="init()"
-	onunload="callCallback()"
-	title="&title;"
-	ondialogaccept="return save(true)"
-	ondialogextra2="preview();"
-	ondialogextra1="switchToEdit();"
-	ondialogcancel="style.setPreview(false)"
-	buttonlabelaccept="&install;"
-	buttonaccesskeyaccept="&install.ak;"
-	buttonlabelextra2="&preview;"
-	buttonaccesskeyextra2="&preview.ak;"
-	buttonlabelextra1="&switchtoedit;"
-	buttonaccesskeyextra1="&switchtoedit.ak;">
-	
-	<script type="application/javascript" src="common.js"/>
-	<script type="application/javascript" src="install.js"/>
-
-	<stringbundle id="strings" src="chrome://stylish/locale/install.properties"/>
-
-	<description id="install-intro"/>
-	<vbox id="applies-to-container" flex="1">
-		<html:ul id="applies-to" style="display: none"/>
-	</vbox>
-	<vbox id="name-container" style="display: none">
-		<label value="&entername;"/>
-		<textbox id="name"/>
-	</vbox>
-
-</dialog>
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://stylish/skin/install.css" type="text/css"?>
+
+<!DOCTYPE dialog [
+	<!ENTITY % edit SYSTEM "chrome://stylish/locale/install.dtd">
+	%edit;
+]>
+
+<dialog
+	id="stylish"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+	xmlns:html="http://www.w3.org/1999/xhtml"
+	persist="screenX screenY width height sizemode"
+	width="500"
+	height="300"
+	buttons="accept,cancel,extra1"
+	onload="init()"
+	onunload="callCallback()"
+	title="&title;"
+	ondialogaccept="return save(true)"
+	ondialogextra1="preview();"
+	ondialogcancel="style.setPreview(false)"
+	buttonlabelaccept="&install;"
+	buttonaccesskeyaccept="&install.ak;"
+	buttonlabelextra1="&preview;"
+	buttonaccesskeyextra1="&preview.ak;">
+
+	<script type="application/javascript" src="frame-utils.js"/>
+	<script type="application/javascript" src="common.js"/>
+	<script type="application/javascript" src="install.js"/>
+
+	<stringbundle id="strings" src="chrome://stylish/locale/install.properties"/>
+
+	<description id="install-intro"/>
+	<vbox id="applies-to-container" flex="1">
+		<html:ul id="applies-to" style="display: none"/>
+	</vbox>
+	<vbox id="name-container" style="display: none">
+		<label value="&entername;"/>
+		<textbox id="name"/>
+	</vbox>
+
+</dialog>
diff --git a/content/manage-addons-fx4.js b/content/manage-addons-fx4.js
deleted file mode 100644
index 392908c..0000000
--- a/content/manage-addons-fx4.js
+++ /dev/null
@@ -1,76 +0,0 @@
-var stylishManageAddonsFx4 = {
-
-	getSortButtons: function() {
-		return document.getElementById('userstyle-sorting').getElementsByTagName('button');
-	},
-
-	changeSort: function(event) {
-		var button = event.target;
-
-		// remove checkState from other buttons
-		var buttons = stylishManageAddonsFx4.getSortButtons();
-		Array.filter(buttons, function(b) { return b != button; }).forEach(function(b) { b.removeAttribute("checkState");b.removeAttribute("checked");});
-
-		button.setAttribute('checkState', button.getAttribute('checkState') == "2" ? "1" : "2");
-		button.setAttribute("checked", "true");
-
-		stylishManageAddonsFx4.applySort();
-	},
-
-	applySort: function() {
-		var list = document.getElementById('addon-list');
-		var buttons = stylishManageAddonsFx4.getSortButtons();
-		var checkedButton = Array.filter(buttons, function(b) { return b.hasAttribute('checkState'); })[0];
-		if (checkedButton == null) {
-			checkedButton = buttons[0];
-		}
-
-		var ascending = checkedButton.getAttribute('checkState') != "1";
-		var sortBy = checkedButton.getAttribute('sortBy').split(',');
-
-		var items = Array.slice(list.childNodes, 0);
-		sortElements(items, sortBy, ascending);
-		while (list.hasChildNodes()) {
-			list.removeChild(list.lastChild);
-		}
-		var frag = document.createDocumentFragment();
-		items.forEach(function(el) {
-			frag.appendChild(el);
-		});
-		list.appendChild(frag);
-	},
-	
-	startInstallFromUrls: function(button) {
-		var startedCallback = function() {
-			button.setAttribute("image", "chrome://browser/skin/tabbrowser/connecting.png");
-			button.setAttribute("disabled", "true");
-		}
-		var endedCallback = function() {
-			button.setAttribute("image", "");
-			button.setAttribute("disabled", "");
-		}
-		stylishCommon.startInstallFromUrls(startedCallback, endedCallback);
-	}
-}
-
-// add some more properties so we can sort on them
-stylishManageAddonsFx4._createItem = createItem,
-createItem = function(addon, b, c) {
-	var item = stylishManageAddonsFx4._createItem(addon, b, c);
-	if (addon.type == "userstyle") {
-		item.setAttribute("styleTypes", addon.styleTypes);
-	}
-	return item;
-}
-
-window.addEventListener('ViewChanged', function(e) {
-	if (e.target.getAttribute("type") == "userstyle") {
-		stylishManageAddonsFx4.applySort();
-	}
-}, false);
-window.addEventListener("load", function(e) {
-	if (document.getElementById("list-view").getAttribute("type") == "userstyle") {
-		stylishManageAddonsFx4.applySort();
-	}
-}, false);
-
diff --git a/content/manage-addons.js b/content/manage-addons.js
new file mode 100644
index 0000000..7cd498b
--- /dev/null
+++ b/content/manage-addons.js
@@ -0,0 +1,90 @@
+var stylishManageAddons = {
+
+	getSortButtons: function() {
+		return document.getElementById('userstyle-sorting').getElementsByTagName('button');
+	},
+
+	getActiveSort: function() {
+		var buttons = stylishManageAddons.getSortButtons();
+		var checkedButton = Array.filter(buttons, function(b) { return b.hasAttribute('checkState'); })[0];
+		if (checkedButton == null) {
+			checkedButton = buttons[0];
+		}
+		var ascending = checkedButton.getAttribute('checkState') != "1";
+		var sortBy = checkedButton.getAttribute('sortBy').split(',');
+		return [sortBy, ascending];
+	},
+
+	changeSort: function(event) {
+		var button = event.target;
+
+		// remove checkState from other buttons
+		var buttons = stylishManageAddons.getSortButtons();
+		Array.filter(buttons, function(b) { return b != button; }).forEach(function(b) { b.removeAttribute("checkState");b.removeAttribute("checked");});
+
+		button.setAttribute('checkState', button.getAttribute('checkState') == "2" ? "1" : "2");
+		button.setAttribute("checked", "true");
+
+		stylishManageAddons.applySort();
+	},
+
+	applySort: function() {
+		var list = document.getElementById('addon-list');
+		// this stuff doesn't matter, we're overriding sortElements below
+		sortList(list, "name", true);
+	},
+
+	startInstallFromUrls: function(button) {
+		var startedCallback = function() {
+			button.setAttribute("image", "chrome://browser/skin/tabbrowser/connecting.png");
+			button.setAttribute("disabled", "true");
+		}
+		var endedCallback = function() {
+			button.setAttribute("image", "");
+			button.setAttribute("disabled", "");
+		}
+		stylishCommon.startInstallFromUrls(startedCallback, endedCallback);
+	},
+
+	openAdd: function() {
+		// get the chrome window so we can open in tab if necessary
+		var win = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher).activeWindow;
+		stylishCommon.addCode('', win);
+	},
+
+	reportStyle: function(id) {
+		var style = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle).find(id, 0);
+		if (!style || !style.idUrl) {
+			return;
+		}
+		var http = new XMLHttpRequest();
+		http.open("POST", "https://userstyles.org/report", true);
+		var params = "idUrl=" + encodeURIComponent(style.idUrl);
+		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+		http.setRequestHeader("Content-length", params.length);
+		http.setRequestHeader("Connection", "close");
+		http.send(params);
+	}
+}
+
+// add some more properties so we can sort on them
+stylishManageAddons._createItem = createItem,
+createItem = function(o, aIsInstall, aIsRemote) {
+	var item = stylishManageAddons._createItem(o, aIsInstall, aIsRemote);
+	if (item.mAddon.type == "userstyle") {
+		item.setAttribute("styleTypes", item.mAddon.styleTypes);
+		item.setAttribute("reportable", item.mAddon.style.idUrl == null ? false : (item.mAddon.style.idUrl.indexOf("http://userstyles.org/") == 0));
+	}
+	return item;
+}
+
+// override sortElements so that we can use a different sort on load
+stylishManageAddons._sortElements = sortElements;
+sortElements = function(aList, aSortBy, aAscending) {
+	if (aList.length == 0 || aList[0].getAttribute("type") != "userstyle") {
+		stylishManageAddons._sortElements(aList, aSortBy, aAscending);
+		return;
+	}
+	var sort = stylishManageAddons.getActiveSort();
+	stylishManageAddons._sortElements(aList, sort[0], sort[1]);
+}
diff --git a/content/manage-addons-fx4.xul b/content/manage-addons.xul
similarity index 66%
rename from content/manage-addons-fx4.xul
rename to content/manage-addons.xul
index afefcc7..8898c61 100644
--- a/content/manage-addons-fx4.xul
+++ b/content/manage-addons.xul
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<?xml-stylesheet href="chrome://stylish/skin/manage-addons-fx4.css" type="text/css"?>
+<?xml-stylesheet href="chrome://stylish/skin/manage-addons.css" type="text/css"?>
 
 <!DOCTYPE overlay [
 	<!ENTITY % manage SYSTEM "chrome://stylish/locale/manage.dtd">
@@ -10,40 +10,40 @@
 
 <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
+	<script src="chrome://stylish/content/frame-utils.js"></script>
 	<script src="chrome://stylish/content/common.js"></script>
-	<script src="chrome://stylish/content/manage-addons-fx4.js"></script>
+	<script src="chrome://stylish/content/manage-addons.js"></script>
 
 	<richlistbox id="categories">
 		<stringbundle id="stylishStrings" src="chrome://stylish/locale/manage.properties"/>
-		<richlistitem id="category-userstyles" insertafter="category-plugins" name="&manageaddonstitle;" class="category" value="addons://list/userstyle"/>
 	</richlistbox>
 
 	<vbox id="list-view">
 		<hbox id="userstyle-sorting" class="view-header" insertafter="addon-list-empty">
-			<button id="new-userstyle" label="&writenew;" oncommand="stylishCommon.addCode('')" class="addon-control"/>
-			<button id="install-from-url" label="&installfromurls;" oncommand="stylishManageAddonsFx4.startInstallFromUrls(this)" class="addon-control"/>
+			<button id="new-userstyle" label="&writenew;" oncommand="stylishManageAddons.openAdd()" class="addon-control"/>
+			<button id="install-from-url" label="&installfromurls;" oncommand="stylishManageAddons.startInstallFromUrls(this)" class="addon-control"/>
 			<spacer flex="1"/>
 			<button id="userstyle-sorting-status" label="&sortenabled;" tooltiptext="&sortenabled;"
 				class="sorter" sortBy="uiState,name"
-				onclick="stylishManageAddonsFx4.changeSort(event)" persist="checkState,checked"/>
+				onclick="stylishManageAddons.changeSort(event)" persist="checkState,checked"/>
 			<button id="userstyle-sorting-name" label="&sortname;" tooltiptext="&sortname;"
-				class="sorter" sortBy="name" onclick="stylishManageAddonsFx4.changeSort(event)" persist="checkState,checked"/>
+				class="sorter" sortBy="name" onclick="stylishManageAddons.changeSort(event)" persist="checkState,checked"/>
 			<button id="userstyle-sorting-type" label="&sorttype;" tooltiptext="&sorttype;"
-				class="sorter" sortBy="styleTypes,name" onclick="stylishManageAddonsFx4.changeSort(event)" persist="checkState,checked"/>
+				class="sorter" sortBy="styleTypes,name" onclick="stylishManageAddons.changeSort(event)" persist="checkState,checked"/>
 		</hbox>
 		<hbox id="userstyle-footer" insertafter="addon-list">
-			<description id="userstyles-note">&nostylesstart;<label href="http://userstyles.org/" class="text-link">userstyles.org</label>&nostylesend;</description>
+			<description id="userstyles-note">&nostylesstart;<label href="https://userstyles.org/" class="text-link">userstyles.org</label>&nostylesend;</description>
 		</hbox>
 
 	</vbox>
 
 	<vbox id="addon-list-empty">
 		<hbox position="3">
-			<description id="no-styles-note">&nostylesstart;<label href="http://userstyles.org/" class="text-link">userstyles.org</label>&nostylesend;</description>
+			<description id="no-styles-note">&nostylesstart;<label href="https://userstyles.org/" class="text-link">userstyles.org</label>&nostylesend;</description>
 		</hbox>
 		<hbox>
 			<button id="no-styles-write-new" position="4" label="&writenew;" oncommand="stylishCommon.addCode('')" class="addon-control"/>
-			<button id="no-styles-install-from-url" label="&installfromurls;" oncommand="stylishManageAddonsFx4.startInstallFromUrls(this)" class="addon-control"/>
+			<button id="no-styles-install-from-url" label="&installfromurls;" oncommand="stylishManageAddons.startInstallFromUrls(this)" class="addon-control"/>
 		</hbox>
 	</vbox>
 
diff --git a/content/manage-standalone.xul b/content/manage-standalone.xul
deleted file mode 100644
index c34be0b..0000000
--- a/content/manage-standalone.xul
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<?xul-overlay href="chrome://stylish/content/manage.xul"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://mozapps/skin/extensions/extensions.css" type="text/css"?>
-
-<!DOCTYPE window [
-	<!ENTITY % extensionsDTD SYSTEM "chrome://stylish/locale/extensions.dtd">
-	%extensionsDTD;
-	<!ENTITY % manage SYSTEM "chrome://stylish/locale/manage.dtd">
-	%manage;
-]>
-
-<window
-	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-	id="stylish-manage-standalone"
-	persist="screenX screenY width height sizemode"
-	width="600"
-	height="400"
-	title="&managetitle;"
-	windowtype="stylishManage">
-
-	<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
-
-	<stringbundleset id="stylish-stringbundleset"/>
-	<stringbundle id="extensionsStrings" src="chrome://mozapps/locale/extensions/extensions.properties"/>
-
-	<notificationbox id="styles-container"/>
-
-	<hbox>
-		<button id="update-all" label="&cmd.checkUpdatesAll.label;" accesskey="&cmd.checkUpdatesAll.accesskey;" oncommand="stylishManage.updateAll()"/>
-		<spacer flex="1"/>
-		<button id="new-style" label="&writenew;" accesskey="&writenew.ak;" oncommand="stylishManage.newStyle()"/>
-	</hbox>
-
-</window>
diff --git a/content/manage.html b/content/manage.html
index 05f616d..3c39619 100644
--- a/content/manage.html
+++ b/content/manage.html
@@ -61,6 +61,7 @@
 			display: inline;
 		}
 	</style>
+	<script src="frame-utils.js"></script>
 	<script src="common.js"></script>
 </head>
 <body>
diff --git a/content/manage.js b/content/manage.js
deleted file mode 100644
index c1d5c37..0000000
--- a/content/manage.js
+++ /dev/null
@@ -1,498 +0,0 @@
-var stylishManage = {
-
-	filterText: "",
-	strings: null,
-
-	init: function() {
-		this.strings = document.getElementById("stylishStrings");
-		this.build(true);
-
-		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-		observerService.addObserver(this.observer, "stylish-style-add", false);
-		observerService.addObserver(this.observer, "stylish-style-change", false);
-		observerService.addObserver(this.observer, "stylish-style-delete", false);
-		//observerService.addObserver(this.observer, "stylish-style-update-check-done", false);
-
-		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
-		prefService.addObserver("extensions.stylish.styleRegistrationEnabled", this.observer, false);
-		if (!prefService.getBoolPref("extensions.stylish.styleRegistrationEnabled")) {
-			this.addStylesOffNotification();
-		}
-	},
-
-	destroy: function() {
-		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-		observerService.removeObserver(this.observer, "stylish-style-add");
-		observerService.removeObserver(this.observer, "stylish-style-change");
-		observerService.removeObserver(this.observer, "stylish-style-delete");
-		//observerService.removeObserver(this.observer, "stylish-style-update-check-done");
-
-		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
-		prefService.removeObserver("extensions.stylish.styleRegistrationEnabled", this.observer);
-
-		this.saveUIState();
-	},
-
-	observer: {
-		observe: function(subject, topic, data) {
-			if (topic == "nsPref:changed") {
-				if (subject.QueryInterface(Components.interfaces.nsIPrefBranch2).getBoolPref(data)) {
-					document.getElementById("styles-container").removeAllNotifications(false);
-				} else {
-					stylishManage.addStylesOffNotification();
-				}
-				return;
-			}
-			/*if (topic == "stylish-style-update-check-done") {
-				stylishManage.updateNext();
-				return;
-			}*/
-			var container = document.getElementById("styles");
-			// check to see if we should be rebuilding (mass updates may want us to wait until the end)
-			if (container.getAttribute("suspend-rebuild") == "true") {
-				return;
-			}
-			// if we're deleting the current selection, it's no longer the current selection
-			if (topic == "stylish-style-delete" && container.currentSelection && container.currentSelection.styleObject.id == subject.id) {
-				container.currentSelection = null;
-			}
-			// don't rebuild on update because then we'd lose all the update UI
-			if (data != "update") {
-				stylishManage.build();
-			}
-		}
-	},
-
-	addStylesOffNotification: function() {
-		var container = document.getElementById("styles-container");
-		function callback(box, button) {
-			Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2).setBoolPref("extensions.stylish.styleRegistrationEnabled", true);
-		}
-		container.appendNotification(stylishManage.strings.getString("styleRegistrationOff"), "stylesOff", null, container.PRIORITY_WARNING_LOW, [{label: stylishManage.strings.getString("styleRegistrationTurnOn"), accessKey: stylishManage.strings.getString("styleRegistrationTurnOn.ak"), callback: callback}]);
-	},
-
-	build: function(skipSaveUIState) {
-
-		if (skipSaveUIState !== true) {
-			this.saveUIState();
-		}
-
-		// store the previously selected id and group, if any
-		var container = document.getElementById("styles");
-		var previousId, previousGroupId;
-		if (container.currentSelection && container.currentSelection.parentNode) {
-			previousId = container.currentSelection.styleObject.id;
-			if (container.currentSelection.parentNode.nodeName == "style-container") {
-				previousGroupId = container.currentSelection.parentNode.id;
-			}
-		}
-
-		var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-		var styles = service.list(service.REGISTER_STYLE_ON_CHANGE, {});
-
-		var deck = document.getElementById("styles-deck");
-		if (styles.length == 0) {
-			deck.selectedIndex = 1;
-			return;
-		}
-		deck.selectedIndex = 0;
-		styles = styles.filter(this.filter);
-		var fragment = document.createDocumentFragment();
-		var groups = this.group(styles);
-		groups.forEach(function(g) {
-			// don't show empty groups
-			if (g.styles.length == 0)
-				return;
-			// parent is what we'll dump the style items into
-			var parent;
-			// set up the group header, if available
-			if (g.id) {
-				var heading = document.createElement("style-container");
-				heading.setAttribute("id", g.id);
-				heading.setAttribute("label", g.label || stylishManage.strings.getString(g.id));
-				heading.setAttribute("group-type", g.type);
-				heading.setAttribute("group-value", g.value);
-				fragment.appendChild(heading);
-				parent = heading;
-			} else {
-				parent = fragment;
-			}
-			g.styles.sort(stylishManage.sortName).forEach(function(s) {
-				var item = document.createElement("richlistitem");
-				item.setAttribute("style-id", s.id);
-				item.styleObject = s;
-				parent.appendChild(item);
-			});
-		});
-
-		// xbl destructors aren't called when removing, so we have to ensure things are torn down
-		function removeChildren(e) {
-			while (e.hasChildNodes()) {
-				var child = e.firstChild;
-				if (child.hasChildNodes()) {
-					removeChildren(child);
-				}
-				if ("destroy" in child) {
-					child.destroy();
-				}
-				e.removeChild(child);
-			}	
-		}
-		removeChildren(container);
-		
-		container.appendChild(fragment);
-
-		this.loadUIState();
-
-		// restore the previous selection
-		// restore in the correct group, if it's still there
-		if (previousGroupId) {
-			selectionBase = document.getElementById(previousGroupId);
-			if (selectionBase) {
-				selectionBase.removeAttribute("closed");
-				var possibleSelections = selectionBase.getElementsByAttribute("style-id", previousId);
-				if (possibleSelections.length > 0) {
-					possibleSelections[0].click();
-					return;
-				}
-			}
-		}
-		// restore any instance of the style
-		if (previousId) {
-			var newSelections = container.getElementsByAttribute("style-id", previousId);
-			if (newSelections.length > 0) {
-				newSelections[0].click();
-			}
-		}
-	},
-
-	group: function(styles) {
-		var groups = [];
-		var groupType = document.getElementById("styles-sort").value;
-		// name is not grouped
-		if (groupType == "name") {
-			groups.push({styles: styles});
-		// enabled goes into enabled/disabled
-		} else if (groupType == "enabled") {
-			var enabled = [];
-			var disabled = [];
-			styles.forEach(function(s) {
-				if (s.enabled)
-					enabled.push(s);
-				else
-					disabled.push(s);
-			});
-			groups.push({id:"groupEnabledTrue", styles: enabled, type: "enabled", value: "true"});
-			groups.push({id:"groupEnabledFalse", styles: disabled, type: "enabled", value: "false"});
-		// by type. styles have 0 to many types
-		} else if (groupType == "type") {
-			var app = [];
-			var site = [];
-			var global = [];
-			var none = [];
-			styles.forEach(function(s) {
-				var types = s.getMeta("type", {});
-				if (types.length == 0) {
-					none.push(s);
-					return;
-				}
-				if (types.indexOf("app") > -1)
-					app.push(s);
-				if (types.indexOf("global") > -1)
-					global.push(s);
-				if (types.indexOf("site") > -1)
-					site.push(s);
-			});
-			groups.push({id:"groupTypeApp", styles: app, type: "type", value: "app"});
-			groups.push({id:"groupTypeGlobal", styles: global, type: "type", value: "global"});
-			groups.push({id:"groupTypeSite", styles: site, type: "type", value: "site"});
-			groups.push({id:"groupTypeNone", styles: none, type: "type", value: ""});
-		// by tag. styles have 0 to many tags
-		} else if (groupType == "tag") {
-			var tagGroups = {};
-			var none = [];
-			styles.forEach(function(s) {
-				var types = s.getMeta("tag", {});
-				// filter out whitespace ones. they shouldn't exist, but we need to make sure because they can hork us up
-				types.filter(function(tag) {
-					return !/^\s*$/.test(tag);
-				}).forEach(function(tag) {
-					if (tag in tagGroups)
-						tagGroups[tag].push(s);
-					else
-						tagGroups[tag] = [s];
-				});
-				if (types.length == 0) {
-					none.push(s);
-					return;
-				}
-			});
-			for (i in tagGroups) {
-				groups.push({id:"groupTag" + i, label: i, styles: tagGroups[i], type: "tag", value: i});
-			}
-			groups.sort(function(a, b) {
-				return stylishManage.sortAlpha(a.label, b.label);
-			});
-			if (none.length > 0) {
-				groups.push({id:"groupTagNone", styles: none, type: "tag", value: ""});
-			}
-		}
-		return groups;
-	},
-
-	sortName: function(a, b) {
-		return stylishManage.sortAlpha(a.name, b.name);
-	},
-
-	sortAlpha: function(a, b) {
-		a = a.toLowerCase();
-		b = b.toLowerCase();
-		if (a > b)
-			return 1;
-		if (b > a)
-			return -1;
-		return 0;
-	},
-
-	newStyle: function() {
-		var style = Components.classes["@userstyles.org/style;1"].createInstance(Components.interfaces.stylishStyle);
-		style.mode = style.CALCULATE_META | style.REGISTER_STYLE_ON_CHANGE;
-		style.init(null, null, null, null, null, "", false, null, null, null);
-		stylishCommon.openEdit(stylishCommon.getWindowName("stylishEdit"), {style: style});
-	},
-
-	filter: function(style) {
-		if (stylishManage.filterText.length == 0)
-			return true;
-		var filterWords = stylishManage.filterText.split(/\s+/);
-		var styleWords = style.name.toLowerCase();
-		var styleTypes = style.getMeta("type", {});
-		var styleTags = style.getMeta("tag", {});
-		return filterWords.every(function(word) {
-			//straight up word match
-			if (styleWords.indexOf(word) > -1)
-				return true;
-			//types
-			if (styleTypes.indexOf(word) > -1)
-				return true;
-			//tags
-			if (styleTags.some(function(tag) {
-				return tag.indexOf(word) > -1;
-			}))
-				return true;
-			//urls
-			var url = stylishManage.convertToUrl(word);
-			if (url)
-				return style.appliesToUrl(url);
-			return false;
-		});
-	},
-
-	updateFilter: function(text) {
-		this.filterText = text.toLowerCase();
-		this.build();
-	},
-
-	convertToUrl: function(text) {
-		//if it has a colon, it may already be an url
-		if (/:/.test(text))
-			return text;
-		//if there's no colon and no period, we'll assume it's not a url
-		if (!/\./.test(text)) {
-			return null;
-		}
-		//if there's period but no colon, assume http
-		return "http://" + text;
-	},
-
-	updateAll: function() {
-		var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-		service.list(service.REGISTER_STYLE_ON_CHANGE, {}).forEach(function(style) {
-			style.checkForUpdates(null);
-		});
-	},
-
-	handleKeyPress: function(event) {
-		if (event.keyCode != 38 && event.keyCode != 40)
-			return;
-		var styles = document.getElementById("styles");
-		var currentSelection = styles.currentSelection;
-		var nextSelection = null;
-		if (!currentSelection) {
-			// no previous selection, select the first one
-			nextSelection = styles.firstChild;
-		} else {
-			var items = styles.getElementsByTagName("richlistitem");
-			var index;
-			for (index = 0; index < items.length; index++) {
-				if (items[index] == currentSelection) {
-					break;
-				}
-			}
-			function move() {
-				if (event.keyCode == 38) {
-					if (index == 0) {
-						return false;
-					}
-					index--;
-				} else {
-					if (index == items.length - 1) {
-						return false;
-					}
-					index++;
-				}
-				return true;
-			}
-			while(move()) {
-				var item = items[index];
-				// skip over items in collapsed containers
-				if (item.parentNode.nodeName != "style-container" || item.parentNode.getAttribute("closed") != "true") {
-					nextSelection = item;
-					break;
-				}
-			}
-		}
-		if (nextSelection) {
-			nextSelection.click();
-			styles.ensureElementIsVisible(nextSelection);
-		}
-	},
-
-	// workaround for bug 115296
-	loadUIState: function() {
-		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
-		prefService.getCharPref("extensions.stylish.closedContainers").split(" ").forEach(function(id) {
-			if (id) {
-				var element = document.getElementById(id);
-				if (element) {
-					element.setAttribute("closed", "true");
-				}
-			}
-		});
-	},
-
-	saveUIState: function() {
-		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
-		// We can't just create a new list of ids of things that are closed because the user may have switched 
-		// grouping and we wouldn't want to lose all their settings from the other grouping.
-		var ids = [];
-		// Check things that were closed last time, and remove them if they're open.
-		prefService.getCharPref("extensions.stylish.closedContainers").split(" ").forEach(function(id) {
-			if (id) {
-				var element = document.getElementById(id);
-				if (!element || element.getAttribute("closed") == "true") {
-					ids.push(id);
-				}
-			}
-		});
-		// Now, get the ids of things that are closed that aren't in the list already.
-		ids = ids.concat(Array.filter(document.getElementsByTagName("style-container"), function(element) {
-			return element.getAttribute("closed") == "true";
-		}).map(function(element) {
-			return element.id;
-		}).filter(function(id) {
-			return ids.indexOf(id) == -1;
-		}));
-		// And save them
-		prefService.setCharPref("extensions.stylish.closedContainers", ids.join(" "));
-	},
-
-	dragService: Components.classes["@mozilla.org/widget/dragservice;1"].getService().QueryInterface(Components.interfaces.nsIDragService),
-	dragObserver: {
-		onDragStart: function (event, transferData, action) {
-			var style = event.target.styleObject;
-			//var selection = document.getElementById("styles").currentSelection;
-			var selection = event.target;
-			var data = selection.styleObject.id + " " + selection.parentNode.getAttribute("group-value");
-
-			transferData.data = new TransferData();
-			transferData.data.addDataForFlavour("text/stylish-move", data);
-		},
-		getSupportedFlavours: function () {
-			var flavours = new FlavourSet();
-			flavours.appendFlavour("text/stylish-move");
-			return flavours;
-		},
-		onDrop: function(event, transferData, session) {
-			var data = transferData.data.split(" ");
-			var styleId = data[0];
-			var originalGroupValue = data[1];
-
-			var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-			style = service.find(styleId, service.REGISTER_STYLE_ON_CHANGE | service.CALCULATE_META);
-
-			var group = stylishManage.dragObserver.getGroup(event);
-			if (!group) {
-				Component.utils.reportError("Could not determine destination group.");
-			}
-
-			switch (group.getAttribute("group-type")) {
-				case "enabled":
-					style.enabled = group.getAttribute("group-value");
-					style.save();
-					break;
-				case "tag":
-					if (originalGroupValue != "") {
-						style.removeMeta("tag", originalGroupValue);
-					}
-					if (group.getAttribute("group-value") != "" && style.getMeta("tag", {}).indexOf(group.getAttribute("group-value")) == -1) {
-						style.addMeta("tag", group.getAttribute("group-value"));
-					}
-					style.save();
-					break;
-				default:
-					Components.utils.reportError("Unknown group type - '" + group.getAttribute("group-type") + "'.");
-			};
-		},
-		onDragOver: function (event, flavour, session) {
-			var dragSession = stylishManage.dragService.getCurrentSession();
-			session.canDrop = this.canDrop(event, dragSession);
-		},
-		canDrop: function(event, dragSession) {
-			var group = stylishManage.dragObserver.getGroup(event);
-			if (!group)
-				return false;
-			var groupValue = group.getAttribute("group-value");
-
-			var td = nsTransferable.createTransferable();
-			td.addDataFlavor("text/stylish-move");
-			dragSession.getData(td, 0);
-			var data = {};
-			td.getTransferData("text/stylish-move", data, {});
-			data = data.value.QueryInterface(Components.interfaces.nsISupportsString).data.split(" ");
-			var styleId = data[0];
-			var originalGroupValue = data[1];
-
-			var service = Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle);
-			var style = service.find(styleId, 0);
-
-			switch (group.getAttribute("group-type")) {
-				case "enabled":
-					if (style.enabled == new Boolean(groupValue)) {
-						return false;
-					}
-					break;
-				case "tag":
-					if (style.getMeta("tag", {}).indexOf(groupValue) > -1) {
-						return false;
-					}
-					break;
-				default:
-					return false;
-			}
-			return true;
-		},
-		getGroup: function(event) {
-			var group = event.target;
-			while (group && group.nodeName != "style-container") {
-				group = group.parentNode;
-			}
-			return group;
-		}
-
-	}
-};
-
-window.addEventListener("load", function(){stylishManage.init()}, false);
-window.addEventListener("unload", function(){stylishManage.destroy()}, false);
-
diff --git a/content/manage.xul b/content/manage.xul
deleted file mode 100644
index ebaeeec..0000000
--- a/content/manage.xul
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://stylish/skin/manage.css" type="text/css"?>
-
-<!DOCTYPE overlay [
-	<!ENTITY % manage SYSTEM "chrome://stylish/locale/manage.dtd">
-	%manage;
-]>
-
-<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-	<script type="application/javascript" src="chrome://global/content/nsDragAndDrop.js"/>
-	<script type="application/javascript" src="chrome://stylish/content/common.js"/>
-	<script type="application/javascript" src="chrome://stylish/content/manage.js"/>
-
-	<stringbundleset id="stylish-stringbundleset">
-		<stringbundle id="stylishStrings" src="chrome://stylish/locale/manage.properties"/>
-		<stringbundle id="stylish-common-strings" src="chrome://stylish/locale/common.properties"/>
-	</stringbundleset>
-
-	<notificationbox id="styles-container" flex="1">
-		<deck id="styles-deck" flex="1">
-			<vbox>
-				<hbox id="userstyles-heading">
-					<textbox id="styles-filter" emptytext="&filter;" type="search" timeout="500" oncommand="stylishManage.updateFilter(this.value)" flex="1"/>
-					<label for="styles-sort" value="&sortgroup;"/>
-					<menulist id="styles-sort" oncommand="stylishManage.build()" persist="value">
-						<menupopup>
-							<menuitem label="&sortname;" value="name"/>
-							<menuitem label="&sortenabled;" value="enabled"/>
-							<menuitem label="&sorttype;" value="type"/>
-							<menuitem label="&sorttag;" value="tag"/>
-						</menupopup>
-					</menulist>
-				</hbox>
-				<richlistbox id="styles" flex="1" onkeypress="stylishManage.handleKeyPress(event)" ondraggesture="nsDragAndDrop.startDrag(event, stylishManage.dragObserver)" ondragover="nsDragAndDrop.dragOver(event, stylishManage.dragObserver);" ondragdrop="nsDragAndDrop.drop(event, stylishManage.dragObserver);" />
-			</vbox>
-			<description id="no-styles-note">&nostylesstart;<label href="http://userstyles.org/" class="text-link">userstyles.org</label>&nostylesend;</description>
-		</deck>
-	</notificationbox>
-
-</overlay>
diff --git a/content/options.xul b/content/options.xul
index 894abb2..dd16187 100644
--- a/content/options.xul
+++ b/content/options.xul
@@ -5,6 +5,6 @@
 <vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 	<setting type="control">
 		<script type="application/javascript" src="chrome://stylish/content/options.js"/>  
-		<button id="addons-stylish-manage" label="&managestyles;" oncommand="var view = document.getElementById('category-userstyle');if (view) { view.click(); } else { location.href = 'chrome://stylish/content/manage-standalone.xul'; }"/>  
+		<button id="addons-stylish-manage" label="&managestyles;" oncommand="var view = document.getElementById('category-userstyle');if (view) { view.click(); } else { location.href = 'chrome://stylish/content/manage.html'; }"/>  
 	</setting>
 </vbox>
diff --git a/content/overlay-mobile.xul b/content/overlay-mobile.xul
index 715c7a1..101584e 100644
--- a/content/overlay-mobile.xul
+++ b/content/overlay-mobile.xul
@@ -12,6 +12,5 @@
 		};
 	</script>
 	<script type="application/javascript" src="common.js"/>
-	<script type="application/javascript" src="install-overlay.js"/>
 
 </overlay>
diff --git a/content/overlay.js b/content/overlay.js
index 1ac109d..3a24245 100644
--- a/content/overlay.js
+++ b/content/overlay.js
@@ -1,423 +1,515 @@
-var stylishOverlay = {
-	service: Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle),
-	styleMenuItemTemplate: null,
-
-	//cached number of global styles
-	globalCount: null,
-
-	uiElementIds: ["stylish-toolbar-button"],
-
-	init: function() {
-		stylishOverlay.STRINGS = document.getElementById("stylish-strings");
-		stylishOverlay.URL_STRINGS = document.getElementById("stylish-url-strings");
-
-		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2);
-		switch (prefService.getIntPref("extensions.stylish.firstRun")) {
-			case 0:
-				// show firstrun page
-				if (typeof openUILinkIn != "undefined") {
-					setTimeout(function() {openUILinkIn(stylishOverlay.URL_STRINGS.getString("firstrun"), "tab")}, 100);
-				}
-			case 2:
-				// add to nav bar
-				var navbar = document.getElementById("nav-bar");
-				var button = document.getElementById("stylish-toolbar-button");
-				if (navbar && !button) {
-					var newCurrentSet = navbar.currentSet.split(",").concat(["stylish-toolbar-button"]).join(",");
-					navbar.currentSet = newCurrentSet; // for immediate display
-					navbar.setAttribute("currentset", newCurrentSet); // for persisting
-					document.persist(navbar.id, "currentset");
-					try {
-						BrowserToolboxCustomizeDone(true);
-					} catch (e) {
-						Components.utils.reportError(e);
-					}
-				}
-				prefService.setIntPref("extensions.stylish.firstRun", 3);
-		}
-
-		stylishOverlay.styleMenuItemTemplate = document.createElementNS(stylishCommon.XULNS, "menuitem");
-		stylishCommon.domApplyAttributes(stylishOverlay.styleMenuItemTemplate, {
-			"type": "checkbox",
-			"class": "style-menu-item",
-			"context": "stylish-style-context"
-		});
-
-		// sets attributes for 24-based hour of the day
-		function updateTimes() {
-			var date = new Date();
-			document.documentElement.setAttribute("stylish-hour", date.getHours());
-			document.documentElement.setAttribute("stylish-day", date.getDay());
-			document.documentElement.setAttribute("stylish-date", date.getDate());
-			document.documentElement.setAttribute("stylish-month", date.getMonth() + 1);
-		}
-		// once a minute
-		setInterval(updateTimes, 1000 * 60);
-		// now
-		updateTimes();
-
-		// the ways the current url can change:
-		if (typeof gBrowser != "undefined") {
-			// document loads
-			gBrowser.addProgressListener(stylishOverlay.urlLoadedListener);
-			// tab changes
-			// already covered by location changes?
-			gBrowser.tabContainer.addEventListener("TabSelect", stylishOverlay.urlUpdated, false);
-			//document.addEventListener("TabOpen", function(){setTimeout(stylishOverlay.urlUpdated,10)}, false);
-		}
-		// on a new browser
-		stylishOverlay.urlUpdated();
-
-		// app info for styling
-		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
-		document.documentElement.setAttribute("stylish-platform", window.navigator.platform);
-		document.documentElement.setAttribute("stylish-application", appInfo.name);
-		document.documentElement.setAttribute("stylish-application-version", appInfo.version);
-
-		// other things that can change the status:
-
-		// global on/off pref
-		prefService.addObserver("extensions.stylish.styleRegistrationEnabled", stylishOverlay, false);
-
-		// style add/delete
-		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-		observerService.addObserver(stylishOverlay, "stylish-style-add", false);
-		observerService.addObserver(stylishOverlay, "stylish-style-change", false);
-		observerService.addObserver(stylishOverlay, "stylish-style-delete", false);
-	},
-
-	destroy: function() {
-		if (typeof gBrowser != "undefined") {
-			gBrowser.removeProgressListener(stylishOverlay.urlLoadedListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT); 
-		}
-		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-		observerService.removeObserver(stylishOverlay, "stylish-style-add");
-		observerService.removeObserver(stylishOverlay, "stylish-style-change");
-		observerService.removeObserver(stylishOverlay, "stylish-style-delete");
-	},
-
-	observe: function(subject, topic, data) {
-		//clear global count cache
-		stylishOverlay.globalCount = null;
-		stylishOverlay.updateStatus();
-	},
-
-	urlLoadedListener: {
-		QueryInterface: function(aIID) {
-			if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
-				aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
-				aIID.equals(Components.interfaces.nsISupports))
-				return this;
-			throw Components.results.NS_NOINTERFACE; 
-		},
-		onLocationChange: function(progress, request, uri) {
-			// only if it's the current tab
-			if (uri && uri.spec == content.document.location.href) {
-				stylishOverlay.urlUpdated();
-			}
-		},
-		onStateChange: function() {},
-		onProgressChange: function() {},
-		onStatusChange: function() {},
-		onSecurityChange: function() {},
-		onLinkIconAvailable: function() {}
-	},
-
-	// some of reasons this will be called overlap, so make sure we're not doing extra work
-	lastUrl: null,
-
-	urlUpdated: function() {
-		if (stylishOverlay.lastUrl == content.location.href)
-			return;
-		stylishOverlay.lastUrl = content.location.href;
-		document.documentElement.setAttribute("stylish-url", content.location.href);
-		try {
-			if (content.document.domain)
-				document.documentElement.setAttribute("stylish-domain", content.document.domain);
-			else
-				document.documentElement.setAttribute("stylish-domain", "");
-		} catch (ex) {
-				document.documentElement.setAttribute("stylish-domain", "");
-		}
-		stylishOverlay.updateStatus();
-	},
-
-	updateStatus: function() {
-		function updateAttribute(value) {
-			stylishOverlay.uiElementIds.forEach(function(id) {
-				var e = document.getElementById(id);
-				if (e) {
-					e.setAttribute("styles-applied", value);
-				}
-			});
-		}
-
-		function updateTooltip(string) {
-			var tooltip = document.getElementById("stylish-tooltip").firstChild;
-			while (tooltip.hasChildNodes()) {
-				tooltip.removeChild(tooltip.lastChild);
-			}
-			tooltip.appendChild(document.createTextNode(string));
-		}
-
-		if (!Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2).getBoolPref("extensions.stylish.styleRegistrationEnabled")) {
-			updateAttribute("styles-off");
-			updateTooltip(stylishOverlay.STRINGS.getString("tooltipStylesOff"));
-			return;
-		}
-
-		function isEnabled(style) {
-			return style.enabled;
-		}
-
-		var siteStyles = stylishOverlay.service.findForUrl(content.location.href, false, 0, {}).filter(isEnabled).length;
-
-		if (stylishOverlay.globalCount == null)
-			stylishOverlay.globalCount = stylishOverlay.service.findByMeta("type", "global", 0, {}).filter(isEnabled).length;
-
-		var attributeValues = [];
-		if (siteStyles)
-			attributeValues.push("site");
-		if (stylishOverlay.globalCount)
-			attributeValues.push("global");
-		updateAttribute(attributeValues.join(" "));
-
-		updateTooltip(stylishOverlay.STRINGS.getFormattedString("tooltip", [siteStyles, stylishOverlay.globalCount]));
-	},
-
-	toggleStyle: function(style) {
-		style.enabled = !style.enabled;
-		style.save();
-	},
-
-	writeStylePopupShowing: function(event) {
-		var popup = event.target;
-		var addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
-		addSite.setAttribute("label", stylishOverlay.STRINGS.getString("writeforsite"));
-		addSite.setAttribute("accesskey", stylishOverlay.STRINGS.getString("writeforsiteaccesskey"));
-		addSite.addEventListener("command", stylishOverlay.addSite, false);
-		popup.appendChild(addSite);
-
-		var domain = null;
-		try {
-			domain = content.document.domain;
-		} catch (ex) {}
-		if (domain) {
-			var domains = [];
-			stylishOverlay.getDomainList(content.document.domain, domains);
-			for (var i = 0; i < domains.length; i++) {
-				popup.appendChild(stylishOverlay.getDomainMenuItem(domains[i]));
-			}
-		}
-
-		addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
-		addSite.setAttribute("label", stylishOverlay.STRINGS.getString("writeblank"));
-		addSite.setAttribute("accesskey", stylishOverlay.STRINGS.getString("writeblankaccesskey"));
-		addSite.addEventListener("command", function() {stylishOverlay.addCode('')}, false);
-		popup.appendChild(addSite);
-	},
-
-	popupShowing: function(event) {
-		var popup = event.target;
-
-		if (popup.id != "stylish-popup") {
-			return;
-		}
-
-		if (popup.triggerNode) {
-			popup.triggerNode.setAttribute("open", "true");
-		}
-
-		//popup.position = document.popupNode.nodeName == "toolbarbutton" ? "after_start" : "";
-
-		//XXX fix for non-browsers (maybe list everything?)
-		var menuitems = stylishOverlay.service.findForUrl(content.location.href, true, stylishOverlay.service.REGISTER_STYLE_ON_CHANGE, {}).map(function(style, index) {
-			var menuitem = stylishOverlay.styleMenuItemTemplate.cloneNode(true);
-			menuitem.addEventListener("command", function(event) {stylishOverlay.toggleStyle(this.stylishStyle);event.stopPropagation();}, false);
-			stylishCommon.domApplyAttributes(menuitem, {
-				"label": style.name,
-				"checked": style.enabled,
-				"style-type": style.getTypes({}).join(" ")
-			});		
-			if (index < 9) {
-				menuitem.setAttribute("accesskey", index + 1);
-			}
-			menuitem.stylishStyle = style;
-			return menuitem;
-		});
-		if (menuitems.length > 0) {
-			var separator = document.createElementNS(stylishCommon.XULNS, "menuseparator");
-			separator.className = "stylish-menuseparator";
-			popup.appendChild(separator);
-		}
-		menuitems.forEach(function(menuitem) {
-			popup.appendChild(menuitem);
-		});
-
-		//you can only add CSS files
-		document.getElementById("stylish-add-file").style.display = (content.document.contentType == "text/css") ? "-moz-box" : "none";
-		var stylesOn = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getBoolPref("extensions.stylish.styleRegistrationEnabled");
-		document.getElementById("stylish-turn-on").style.display = stylesOn ? "none" : "-moz-box";
-		document.getElementById("stylish-turn-off").style.display = stylesOn ? "-moz-box" : "none";
-	},
-
-	popupHiding: function(event) {
-		var popup = event.target;
-		if (popup.triggerNode) {
-			popup.triggerNode.removeAttribute("open");
-		}
-		stylishOverlay.clearStyleMenuItems(event);
-	},
-
-	getDomainList: function(domain, array) {
-		//don't want to list tlds
-		if (Components.interfaces.nsIEffectiveTLDService) {
-			try {
-				var tld = Components.classes["@mozilla.org/network/effective-tld-service;1"].getService(Components.interfaces.nsIEffectiveTLDService);
-				if (Components.ID('{b07cb0f0-3394-572e-6260-dbaed0a292ba}').equals(Components.interfaces.nsIStyleSheetService)) {	
-					if (domain.length <= tld.getEffectiveTLDLength(domain)) {
-						return;
-					}
-				} else {
-					if (domain == tld.getPublicSuffixFromHost(domain)) {
-						return;
-					}
-				}
-			} catch(ex) { 
-				//this can happen if it's an ip address
-				return;
-			}
-		}
-		array[array.length] = domain;
-		var firstDot = domain.indexOf(".");
-		var lastDot = domain.lastIndexOf(".");
-		if (firstDot != lastDot) {
-			//if after the last dot it's a number, this is an ip address, so it's not part of a domain
-			if (!isNaN(parseInt(domain.substring(lastDot + 1, domain.length), 10))) {
-				return;
-			}
-			stylishOverlay.getDomainList(domain.substring(firstDot + 1, domain.length), array);
-		}
-	},
-
-	getDomainMenuItem: function(domain) {
-		var addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
-		addSite.setAttribute("label", stylishOverlay.STRINGS.getFormattedString("writefordomain", [domain]));
-		addSite.addEventListener("command", function() {stylishOverlay.addDomain(domain);}, false);
-		return addSite;
-	},
-
-	findStyle: function(e) {
-		openUILinkIn(stylishOverlay.URL_STRINGS.getFormattedString("findstylesforthissiteurl", [encodeURIComponent(content.location.href)]), "tab");
-	},
-
-	menuItemClassesToClear: ["stylish-menuseparator", "style-menu-item", "no-style-menu-item"],
-	clearStyleMenuItems: function(event) {
-		var popup = event.target;
-		for (var i = popup.childNodes.length - 1; i >= 0; i--) {
-			for (var j = 0; j < stylishOverlay.menuItemClassesToClear.length; j++) {
-				if (popup.childNodes[i].className.indexOf(stylishOverlay.menuItemClassesToClear[j]) != -1) {
-					popup.removeChild(popup.childNodes[i]);
-					break;
-				}
-			}
-		}
-	},
-
-	addSite: function() {
-		var url = content.location.href;
-		var namespaceURI = content.document.documentElement.namespaceURI;
-		var code = "@namespace url(" + namespaceURI + ");\n\n at -moz-document url(\"" + url + "\") {\n\n}";
-		stylishOverlay.addCode(code);
-	},
-
-	addDomain: function(domain) {
-		var code = "@namespace url(http://www.w3.org/1999/xhtml);\n\n at -moz-document domain(\"" + domain + "\") {\n\n}";
-		stylishOverlay.addCode(code);
-	},
-
-	addCode: function(code) {
-		stylishCommon.addCode(code);
-	},
-
-	openManage: function() {
-		var manageView = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getIntPref("extensions.stylish.manageView");
-		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
-		var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);
-
-		function getWindow(name) {
-			return Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow(name);
-		}
-		// seamonkey 2 can't do add-ons dialog
-		if (manageView == 0 && appInfo.ID == "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}" && versionChecker.compare(appInfo.version, "2.1b1") < 0) {
-			manageView = 1;
-		}
-		switch (manageView) {
-			case 2: // sidebar
-				var em = getWindow("navigator:browser");
-				if (em) {
-					em.toggleSidebar('viewStylishSidebar', true);
-					break;
-				}
-			case 1: // stand-alone dialog
-				var em = getWindow("stylishManage");
-				if (em) {
-					em.focus();
-				} else {
-					window.openDialog("chrome://stylish/content/manage-standalone.xul", "", "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable");
-				}
-				break;
-			default: // add-ons
-				if (typeof BrowserOpenAddonsMgr != "undefined") {
-					BrowserOpenAddonsMgr("addons://list/userstyle");
-				} else if (typeof toEM != "undefined") {
-					toEM("addons://list/userstyle");
-				} else if (typeof openAddonsMgr != "undefined") {
-					openAddonsMgr("addons://list/userstyle");
-				} else {
-					var em = getWindow("Extension:Manager");
-					if (em) {
-						em.document.getElementById("userstyles-view").click();
-						em.focus();
-						return;
-					}
-					window.openDialog("chrome://mozapps/content/extensions/extensions.xul", "", "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable", "userstyles");
-				}
-		}
-	},
-
-	showApplicableContextItems: function(event) {
-		var style = document.popupNode.stylishStyle;
-		document.getElementById("stylish-style-context-enable").hidden = style.enabled;
-		document.getElementById("stylish-style-context-disable").hidden = !style.enabled;
-	},
-
-	contextSetEnabled: function(enabled) {
-		var style = document.popupNode.stylishStyle;
-		style.enabled = enabled;
-		style.save();
-	},
-
-	contextEdit: function() {
-		stylishCommon.openEditForStyle(document.popupNode.stylishStyle);
-	},
-
-	contextDelete: function() {
-		stylishCommon.deleteWithPrompt(document.popupNode.stylishStyle);
-	},
-
-	turnOnOff: function(on) {
-		Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setBoolPref("extensions.stylish.styleRegistrationEnabled", on);
-	},
-
-	handleStatusClick: function(event) {
-		//open manage styles on middle click
-		if (event.target.id == "stylish-toolbar-button" && event.button == 1) {
-			stylishOverlay.openManage();
-		}
-	}
-};
-
-addEventListener("load", stylishOverlay.init, false);
-addEventListener("unload", stylishOverlay.destroy, false);
-
+var stylishOverlay = {
+	service: Components.classes["@userstyles.org/style;1"].getService(Components.interfaces.stylishStyle),
+	styleMenuItemTemplate: null,
+	bundle: Components.classes["@mozilla.org/intl/stringbundle;1"].createInstance(Components.interfaces.nsIStringBundleService).createBundle("chrome://stylish/locale/overlay.properties"),
+
+	//cached number of global styles
+	globalCount: null,
+
+	uiElementIds: ["stylish-toolbar-button"],
+
+	init: function() {
+		stylishOverlay.STRINGS = document.getElementById("stylish-strings");
+		stylishOverlay.URL_STRINGS = document.getElementById("stylish-url-strings");
+
+		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch);
+		switch (prefService.getIntPref("extensions.stylish.firstRun")) {
+			case 0:
+				// show firstrun page
+				if (typeof openUILinkIn != "undefined") {
+					setTimeout(function() {openUILinkIn(stylishOverlay.URL_STRINGS.getString("firstrun"), "tab")}, 100);
+				}
+			case 2:
+				// add to nav bar
+				var navbar = document.getElementById("nav-bar");
+				var button = document.getElementById("stylish-toolbar-button");
+				if (navbar && !button) {
+					var newCurrentSet = navbar.currentSet.split(",").concat(["stylish-toolbar-button"]).join(",");
+					navbar.currentSet = newCurrentSet; // for immediate display
+					navbar.setAttribute("currentset", newCurrentSet); // for persisting
+					document.persist(navbar.id, "currentset");
+					try {
+						BrowserToolboxCustomizeDone(true);
+					} catch (e) {
+						Components.utils.reportError(e);
+					}
+				}
+				prefService.setIntPref("extensions.stylish.firstRun", 3);
+		}
+
+		stylishOverlay.styleMenuItemTemplate = document.createElementNS(stylishCommon.XULNS, "menuitem");
+		stylishCommon.domApplyAttributes(stylishOverlay.styleMenuItemTemplate, {
+			"type": "checkbox",
+			"class": "style-menu-item",
+			"context": "stylish-style-context"
+		});
+
+		// sets attributes for 24-based hour of the day
+		function updateTimes() {
+			var date = new Date();
+			document.documentElement.setAttribute("stylish-hour", date.getHours());
+			document.documentElement.setAttribute("stylish-day", date.getDay());
+			document.documentElement.setAttribute("stylish-date", date.getDate());
+			document.documentElement.setAttribute("stylish-month", date.getMonth() + 1);
+		}
+		// once a minute
+		setInterval(updateTimes, 1000 * 60);
+		// now
+		updateTimes();
+
+		// the ways the current url can change:
+		if (typeof gBrowser != "undefined") {
+			// document loads
+			gBrowser.addProgressListener(stylishOverlay.urlLoadedListener);
+			// tab changes
+			// already covered by location changes?
+			gBrowser.tabContainer.addEventListener("TabSelect", stylishOverlay.urlUpdated, false);
+			//document.addEventListener("TabOpen", function(){setTimeout(stylishOverlay.urlUpdated,10)}, false);
+		}
+		// on a new browser
+		stylishOverlay.urlUpdated();
+
+		// app info for styling
+		var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
+		document.documentElement.setAttribute("stylish-platform", window.navigator.platform);
+		document.documentElement.setAttribute("stylish-application", appInfo.name);
+		document.documentElement.setAttribute("stylish-application-version", appInfo.version);
+
+		// other things that can change the status:
+
+		// global on/off pref
+		prefService.addObserver("extensions.stylish.styleRegistrationEnabled", stylishOverlay, false);
+
+		// style add/delete
+		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
+		observerService.addObserver(stylishOverlay, "stylish-style-add", false);
+		observerService.addObserver(stylishOverlay, "stylish-style-change", false);
+		observerService.addObserver(stylishOverlay, "stylish-style-delete", false);
+	},
+
+	destroy: function() {
+		if (typeof gBrowser != "undefined") {
+			gBrowser.removeProgressListener(stylishOverlay.urlLoadedListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT); 
+		}
+		var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
+		observerService.removeObserver(stylishOverlay, "stylish-style-add");
+		observerService.removeObserver(stylishOverlay, "stylish-style-change");
+		observerService.removeObserver(stylishOverlay, "stylish-style-delete");
+	},
+
+	observe: function(subject, topic, data) {
+		//clear global count cache
+		stylishOverlay.globalCount = null;
+		stylishOverlay.updateStatus();
+	},
+
+	urlLoadedListener: {
+		QueryInterface: function(aIID) {
+			if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
+				aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
+				aIID.equals(Components.interfaces.nsISupports))
+				return this;
+			throw Components.results.NS_NOINTERFACE; 
+		},
+		onLocationChange: function(progress, request, uri) {
+			// only if it's the current tab
+			if (uri && uri.spec == content.document.location.href) {
+				stylishOverlay.urlUpdated();
+			}
+		},
+		onStateChange: function() {},
+		onProgressChange: function() {},
+		onStatusChange: function() {},
+		onSecurityChange: function() {},
+		onLinkIconAvailable: function() {}
+	},
+
+	// some of reasons this will be called overlap, so make sure we're not doing extra work
+	lastUrl: null,
+
+	urlUpdated: function() {
+		if (stylishOverlay.lastUrl == content.document.location.href)
+			return;
+		stylishOverlay.lastUrl = content.document.location.href;
+		document.documentElement.setAttribute("stylish-url", content.document.location.href);
+		try {
+			if (content.document.domain)
+				document.documentElement.setAttribute("stylish-domain", content.document.domain);
+			else
+				document.documentElement.setAttribute("stylish-domain", "");
+		} catch (ex) {
+				document.documentElement.setAttribute("stylish-domain", "");
+		}
+		stylishOverlay.updateStatus();
+	},
+
+	updateStatus: function() {
+		function updateAttribute(value) {
+			stylishOverlay.uiElementIds.forEach(function(id) {
+				var e = document.getElementById(id);
+				if (e) {
+					e.setAttribute("styles-applied", value);
+				}
+			});
+		}
+
+		function updateTooltip(string) {
+			var tooltip = document.getElementById("stylish-tooltip").firstChild;
+			while (tooltip.hasChildNodes()) {
+				tooltip.removeChild(tooltip.lastChild);
+			}
+			tooltip.appendChild(document.createTextNode(string));
+		}
+
+		if (!Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch).getBoolPref("extensions.stylish.styleRegistrationEnabled")) {
+			updateAttribute("styles-off");
+			updateTooltip(stylishOverlay.STRINGS.getString("tooltipStylesOff"));
+			return;
+		}
+
+		function isEnabled(style) {
+			return style.enabled;
+		}
+
+		var siteStyles = stylishOverlay.service.findForUrl(content.location.href, false, 0, {}).filter(isEnabled).length;
+
+		if (stylishOverlay.globalCount == null)
+			stylishOverlay.globalCount = stylishOverlay.service.findByMeta("type", "global", 0, {}).filter(isEnabled).length;
+
+		var attributeValues = [];
+		if (siteStyles)
+			attributeValues.push("site");
+		if (stylishOverlay.globalCount)
+			attributeValues.push("global");
+		updateAttribute(attributeValues.join(" "));
+
+		updateTooltip(stylishOverlay.STRINGS.getFormattedString("tooltip", [siteStyles, stylishOverlay.globalCount]));
+	},
+
+	toggleStyle: function(style) {
+		style.enabled = !style.enabled;
+		style.save();
+	},
+
+	writeStylePopupShowing: function(event) {
+		var popup = event.target;
+		var addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
+		addSite.setAttribute("label", stylishOverlay.STRINGS.getString("writeforsite"));
+		addSite.setAttribute("accesskey", stylishOverlay.STRINGS.getString("writeforsiteaccesskey"));
+		addSite.addEventListener("command", stylishOverlay.addSite, false);
+		popup.appendChild(addSite);
+
+		var domain = null;
+		try {
+			domain = content.document.domain;
+		} catch (ex) {}
+		if (domain) {
+			var domains = [];
+			stylishOverlay.getDomainList(content.document.domain, domains);
+			for (var i = 0; i < domains.length; i++) {
+				popup.appendChild(stylishOverlay.getDomainMenuItem(domains[i]));
+			}
+		}
+
+		addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
+		addSite.setAttribute("label", stylishOverlay.STRINGS.getString("writeblank"));
+		addSite.setAttribute("accesskey", stylishOverlay.STRINGS.getString("writeblankaccesskey"));
+		addSite.addEventListener("command", function() {stylishOverlay.addCode('')}, false);
+		popup.appendChild(addSite);
+	},
+
+	popupShowing: function(event) {
+		var popup = event.target;
+
+		// This fires for children too!
+		if (popup.id != "stylish-popup") {
+			return;
+		}
+
+		if (popup.triggerNode) {
+			popup.triggerNode.setAttribute("open", "true");
+		}
+
+		// Add the passed styles as menuitems under the passed parent, with startIndex indicating the number of menuitems already added (for creating an accesskey)
+		function addStyleMenuItems(styles, parent, startIndex) {
+			if (!startIndex) {
+				startIndex = 0;
+			}
+			var items = styles.map(function(style, index) {
+				var menuitem = stylishOverlay.styleMenuItemTemplate.cloneNode(true);
+				menuitem.addEventListener("command", function(event) {stylishOverlay.toggleStyle(this.stylishStyle);event.stopPropagation();}, false);
+				stylishCommon.domApplyAttributes(menuitem, {
+					"label": style.name,
+					"checked": style.enabled,
+					"style-type": style.getTypes({}).join(" ")
+				});
+				if ((startIndex + index) < 9) {
+					menuitem.setAttribute("accesskey", startIndex + index + 1);
+				}
+				menuitem.stylishStyle = style;
+				return menuitem;
+			});
+			items.forEach(function(menuitem) {
+				parent.appendChild(menuitem);
+			});
+		}
+
+		// Add the passed styles in a submenu with the passed label, and add that submenu
+		function addStylesInSubmenu(styles, menuLabel) {
+			if (styles.length == 0) {
+				return;
+			}
+			addSeparatorIfNecessary();
+			var menu = document.createElement("menu");
+			stylishCommon.domApplyAttributes(menu, {label: menuLabel, class: "style-menu-item"});
+			menu.appendChild(document.createElement("menupopup"));
+			addStyleMenuItems(styles, menu.firstChild);
+			popup.appendChild(menu);
+		}
+
+		var separatorAdded = false;
+		function addSeparatorIfNecessary() {
+			if (!separatorAdded) {
+				var separator = document.createElement("menuseparator");
+				separator.className = "stylish-menuseparator";
+				popup.appendChild(separator);
+				separatorAdded = true;
+			}
+		}
+
+		var _stylesForCurrentSite = null;
+		function stylesForCurrentSite() {
+			if (_stylesForCurrentSite == null) {
+				_stylesForCurrentSite = stylishOverlay.service.findForUrl(content.location.href, false, stylishOverlay.service.REGISTER_STYLE_ON_CHANGE, {});
+			}
+			return _stylesForCurrentSite;
+		}
+
+		function nonMatchingStyles() {
+			var styles = stylishOverlay.service.findByMeta("type", "site", stylishOverlay.service.REGISTER_STYLE_ON_CHANGE, {});
+			// Remove the matching ones
+			stylesForCurrentSite().forEach(function(style) {
+				var i = styles.indexOf(style);
+				if (i != -1) {
+					styles.splice(i, 1);
+				}
+			});
+			return styles;
+		}
+
+		function globalStyles() {
+			return stylishOverlay.service.findByMeta("type", "global", stylishOverlay.service.REGISTER_STYLE_ON_CHANGE, {});
+		}
+
+		function appStyles() {
+			return stylishOverlay.service.findByMeta("type", "app", stylishOverlay.service.REGISTER_STYLE_ON_CHANGE, {});
+		}
+
+		const SHOW = 'show';
+		const SHOW_IN_SUBMENU = 'submenu';
+		const DONT_SHOW = 'hide';
+
+		var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch);
+
+		var showMatchingSiteStyles = prefService.getCharPref("extensions.stylish.buttonStylesDisplay.siteMatching");
+		var showNonMatchingSiteStyles = prefService.getCharPref("extensions.stylish.buttonStylesDisplay.siteNonMatching");
+		var showGlobalStyles = prefService.getCharPref("extensions.stylish.buttonStylesDisplay.global");
+		var showAppStyles = prefService.getCharPref("extensions.stylish.buttonStylesDisplay.app");
+
+		if (showMatchingSiteStyles == SHOW_IN_SUBMENU) {
+			addStylesInSubmenu(stylesForCurrentSite(), this.bundle.GetStringFromName("submenuformatchingsite"));
+		}
+
+		if (showNonMatchingSiteStyles == SHOW_IN_SUBMENU) {
+			addStylesInSubmenu(nonMatchingStyles(), this.bundle.GetStringFromName("submenufornonmatchingsite"));
+		}
+
+		if (showGlobalStyles == SHOW_IN_SUBMENU) {
+			addStylesInSubmenu(globalStyles(), this.bundle.GetStringFromName("submenuforglobal"));
+		}
+
+		if (showAppStyles == SHOW_IN_SUBMENU) {
+			addStylesInSubmenu(appStyles(), this.bundle.GetStringFromName("submenuforapp"));
+		}
+
+		// Add the passed styles to the main menu
+		// Keep track of the index so we have proper accesskeys
+		var mainMenuIndex = 0;
+		function addStylesToMainMenu(styles) {
+			if (styles.length == 0) {
+				return;
+			}
+			addSeparatorIfNecessary();
+			addStyleMenuItems(styles, popup, mainMenuIndex);
+			mainMenuIndex += styles.length;
+		}
+
+		if (showMatchingSiteStyles == SHOW) {
+			addStylesToMainMenu(stylesForCurrentSite());
+		}
+
+		if (showNonMatchingSiteStyles == SHOW) {
+			addStylesToMainMenu(nonMatchingStyles());
+		}
+
+		if (showGlobalStyles == SHOW) {
+			addStylesToMainMenu(globalStyles());
+		}
+
+		if (showAppStyles == SHOW) {
+			addStylesToMainMenu(appStyles())
+		}
+
+		//you can only add CSS files
+		document.getElementById("stylish-add-file").style.display = (content.document.contentType == "text/css") ? "-moz-box" : "none";
+		var stylesOn = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).getBoolPref("extensions.stylish.styleRegistrationEnabled");
+		document.getElementById("stylish-turn-on").style.display = stylesOn ? "none" : "-moz-box";
+		document.getElementById("stylish-turn-off").style.display = stylesOn ? "-moz-box" : "none";
+	},
+
+	popupHiding: function(event) {
+		var popup = event.target;
+
+		// This fires for children too!
+		if (popup.id != "stylish-popup") {
+			return;
+		}
+
+		if (popup.triggerNode) {
+			popup.triggerNode.removeAttribute("open");
+		}
+		stylishOverlay.clearStyleMenuItems(event);
+	},
+
+	getDomainList: function(domain, array) {
+		//don't want to list tlds
+		if (Components.interfaces.nsIEffectiveTLDService) {
+			try {
+				var tld = Components.classes["@mozilla.org/network/effective-tld-service;1"].getService(Components.interfaces.nsIEffectiveTLDService);
+				if (Components.ID('{b07cb0f0-3394-572e-6260-dbaed0a292ba}').equals(Components.interfaces.nsIStyleSheetService)) {	
+					if (domain.length <= tld.getEffectiveTLDLength(domain)) {
+						return;
+					}
+				} else {
+					if (domain == tld.getPublicSuffixFromHost(domain)) {
+						return;
+					}
+				}
+			} catch(ex) { 
+				//this can happen if it's an ip address
+				return;
+			}
+		}
+		array[array.length] = domain;
+		var firstDot = domain.indexOf(".");
+		var lastDot = domain.lastIndexOf(".");
+		if (firstDot != lastDot) {
+			//if after the last dot it's a number, this is an ip address, so it's not part of a domain
+			if (!isNaN(parseInt(domain.substring(lastDot + 1, domain.length), 10))) {
+				return;
+			}
+			stylishOverlay.getDomainList(domain.substring(firstDot + 1, domain.length), array);
+		}
+	},
+
+	getDomainMenuItem: function(domain) {
+		var addSite = document.createElementNS(stylishCommon.XULNS, "menuitem");
+		addSite.setAttribute("label", stylishOverlay.STRINGS.getFormattedString("writefordomain", [domain]));
+		addSite.addEventListener("command", function() {stylishOverlay.addDomain(domain);}, false);
+		return addSite;
+	},
+
+	findStyle: function(e) {
+		openUILinkIn(stylishOverlay.URL_STRINGS.getFormattedString("findstylesforthissiteurl", [encodeURIComponent(content.location.href)]), "tab");
+	},
+
+	menuItemClassesToClear: ["stylish-menuseparator", "style-menu-item", "no-style-menu-item"],
+	clearStyleMenuItems: function(event) {
+		var popup = event.target;
+		for (var i = popup.childNodes.length - 1; i >= 0; i--) {
+			for (var j = 0; j < stylishOverlay.menuItemClassesToClear.length; j++) {
+				if (popup.childNodes[i].className.indexOf(stylishOverlay.menuItemClassesToClear[j]) != -1) {
+					popup.removeChild(popup.childNodes[i]);
+					break;
+				}
+			}
+		}
+	},
+
+	addSite: function() {
+		var url = content.location.href;
+		var namespaceURI = content.document.documentElement.namespaceURI;
+		var code = "@namespace url(" + namespaceURI + ");\n\n at -moz-document url(\"" + url + "\") {\n\n}";
+		stylishOverlay.addCode(code);
+	},
+
+	addDomain: function(domain) {
+		var code = "@namespace url(http://www.w3.org/1999/xhtml);\n\n at -moz-document domain(\"" + domain + "\") {\n\n}";
+		stylishOverlay.addCode(code);
+	},
+
+	addCode: function(code) {
+		stylishCommon.addCode(code);
+	},
+
+	openManage: function() {
+		function getWindow(name) {
+			return Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow(name);
+		}
+		if (typeof BrowserOpenAddonsMgr != "undefined") {
+			BrowserOpenAddonsMgr("addons://list/userstyle");
+		} else if (typeof toEM != "undefined") {
+			toEM("addons://list/userstyle");
+		} else if (typeof openAddonsMgr != "undefined") {
+			openAddonsMgr("addons://list/userstyle");
+		} else {
+			var em = getWindow("Extension:Manager");
+			if (em) {
+				em.document.getElementById("userstyles-view").click();
+				em.focus();
+				return;
+			}
+			window.openDialog("chrome://mozapps/content/extensions/extensions.xul", "", "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable", "userstyles");
+		}
+	},
+
+	showApplicableContextItems: function(event) {
+		var style = document.popupNode.stylishStyle;
+		document.getElementById("stylish-style-context-enable").hidden = style.enabled;
+		document.getElementById("stylish-style-context-disable").hidden = !style.enabled;
+	},
+
+	contextSetEnabled: function(enabled) {
+		var style = document.popupNode.stylishStyle;
+		style.enabled = enabled;
+		style.save();
+	},
+
+	contextEdit: function() {
+		stylishCommon.openEditForStyle(document.popupNode.stylishStyle);
+	},
+
+	contextDelete: function() {
+		stylishCommon.deleteWithPrompt(document.popupNode.stylishStyle);
+	},
+
+	turnOnOff: function(on) {
+		Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setBoolPref("extensions.stylish.styleRegistrationEnabled", on);
+	},
+
+	handleStatusClick: function(event) {
+		//open manage styles on middle click
+		if (event.target.id == "stylish-toolbar-button" && event.button == 1) {
+			stylishOverlay.openManage();
+		}
+	},
+
+	installFromFile: function(event) {
+		var doc = content.document;
+		stylishCommon.installFromString(doc.body.textContent, doc.location.href);
+	}
+};
+
+addEventListener("load", stylishOverlay.init, false);
+addEventListener("unload", stylishOverlay.destroy, false);
+
diff --git a/content/overlay-fx4.xul b/content/overlay.xul
similarity index 89%
rename from content/overlay-fx4.xul
rename to content/overlay.xul
index 2d5123f..e275e15 100644
--- a/content/overlay-fx4.xul
+++ b/content/overlay.xul
@@ -3,10 +3,8 @@
 <?xml-stylesheet href="chrome://stylish/skin/overlay.css" type="text/css"?>
 
 <!DOCTYPE overlay [
-	<!ENTITY % extensions SYSTEM "chrome://stylish/locale/extensions.dtd">
 	<!ENTITY % overlay SYSTEM "chrome://stylish/locale/overlay.dtd">
 	<!ENTITY % common SYSTEM "chrome://stylish/locale/common.dtd">
-	%extensions;
 	%overlay;
 	%common;
 ]>
@@ -15,7 +13,6 @@
 
 	<script type="application/javascript" src="common.js"/>
 	<script type="application/javascript" src="overlay.js"/>
-	<script type="application/javascript" src="install-overlay.js"/>
 
 	<stringbundleset id="stringbundleset">
 		<stringbundle id="stylish-strings" src="chrome://stylish/locale/overlay.properties"/>
@@ -28,7 +25,7 @@
 			<menuitem id="stylish-manage" label="&managestyles;" accesskey="&managestyles.ak;" oncommand="stylishOverlay.openManage()"/>
 			<menuitem id="stylish-turn-on" label="&turnon;" accesskey="&turnon.ak;" oncommand="stylishOverlay.turnOnOff(true)"/>
 			<menuitem id="stylish-turn-off" label="&turnoff;" accesskey="&turnoff.ak;" oncommand="stylishOverlay.turnOnOff(false)"/>
-			<menuitem id="stylish-add-file" label="&addfile;" accesskey="&addfile.ak;" oncommand="stylishInstallOverlay.installFromFile(event)"/>
+			<menuitem id="stylish-add-file" label="&addfile;" accesskey="&addfile.ak;" oncommand="stylishOverlay.installFromFile(event)"/>
 			<menuitem id="stylish-find-styles" label="&findstylebrowser;" accesskey="&findstylebrowser.ak;" oncommand="stylishOverlay.findStyle(event)" onclick="checkForMiddleClick(this, event)"/>
 			<menu id="stylish-write-style-menu" label="&writestyle;" accesskey="&writestyle.ak;">
 				<menupopup onpopupshowing="stylishOverlay.writeStylePopupShowing(event)" onpopuphiding="stylishCommon.clearAllMenuItems(event)"/>
@@ -76,12 +73,4 @@
 		<toolbarbutton id="stylish-toolbar-button" label="&stylish;" popup="stylish-popup" tooltip="stylish-tooltip" onclick="stylishOverlay.handleStatusClick(event)" class="toolbarbutton-1" type="menu"/>
 	</toolbarpalette>
 
-	<broadcasterset id="mainBroadcasterSet">
-		<broadcaster id="viewStylishSidebar" autoCheck="false" label="&stylish;" type="checkbox" group="sidebar" sidebarurl="chrome://stylish/content/manage-standalone.xul?sidebar" sidebartitle="&stylish;" oncommand="toggleSidebar('viewStylishSidebar');"/>
-	</broadcasterset>
-
-	<menupopup id="viewSidebarMenu">
-		<menuitem id="stylish-view-sidebar" observes="viewStylishSidebar"/>
-	</menupopup>
-
 </overlay>
diff --git a/content/style.xbl b/content/style.xbl
deleted file mode 100644
index 1a6f418..0000000
--- a/content/style.xbl
+++ /dev/null
@@ -1,411 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE bindings [
-	<!ENTITY % extensionsDTD SYSTEM "chrome://stylish/locale/extensions.dtd">
-	<!ENTITY % manageDTD SYSTEM "chrome://stylish/locale/manage.dtd">
-	<!ENTITY % commonDTD SYSTEM "chrome://stylish/locale/common.dtd">
-	%extensionsDTD;
-	%manageDTD;
-	%commonDTD;
-]>
-
-<bindings xmlns="http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-	<binding id="regular">
-		<resources>
-			<stylesheet src="chrome://stylish/skin/style.css"/>
-		</resources>
-		<content>
-			<xul:hbox flex="1" context="_child">
-				<xul:vbox>
-					<xul:image anonid="status-icon" ondblclick="document.getBindingParent(this).toggleEnabled()"/>
-					<xul:spacer flex="1"/>
-				</xul:vbox>
-				<xul:vbox flex="1">
-					<xul:label anonid="name" crop="end" xbl:inherits="value=style-name"/>
-					<xul:label anonid="tags" crop="end" xbl:inherits="value=tags"/>
-					<xul:label anonid="id" crop="end" xbl:inherits="value=style-id"/>
-					<xul:label anonid="type" crop="end" xbl:inherits="value=type"/>
-					<xul:deck anonid="actions">
-						<xul:hbox anonid="edit-actions" flex="1">
-							<xul:button anonid="edit" label="&editstyle;" oncommand="document.getBindingParent(this).edit()"/>
-							<xul:spacer flex="1"/>
-							<xul:button anonid="enable" label="&cmd.enable.label;" accesskey="&cmd.enable.accesskey;" oncommand="document.getBindingParent(this).enable()"/>
-							<xul:button anonid="disable" label="&cmd.disable.label;" accesskey="&cmd.disable.accesskey;" oncommand="document.getBindingParent(this).disable()"/>
-							<xul:button anonid="delete" label="&cmd.uninstall.label;" accesskey="&cmd.uninstall2.accesskey;" oncommand="document.getBindingParent(this).delete()"/>
-						</xul:hbox>
-						<xul:hbox anonid="update-actions" flex="1">
-							<xul:label anonid="update-status"/>
-							<xul:spacer flex="1"/>
-							<xul:button anonid="update" label="&update;" accesskey="&update.ak;" style="display:none" oncommand="document.getBindingParent(this).update()"/>
-							<xul:button anonid="update-done" label="&done;" accesskey="&done.ak;" style="display:none" oncommand="document.getBindingParent(this).updateDone()"/>
-						</xul:hbox>
-						<xul:progressmeter anonid="update-progress" mode="undetermined"/>
-					</xul:deck>
-				</xul:vbox>
-				<xul:menupopup>
-					<xul:menuitem anonid="context-edit" label="&editstyle;" oncommand="document.getBindingParent(this).edit()"/>
-					<xul:menuitem anonid="context-enable" label="&cmd.enable.label;" accesskey="&cmd.enable.accesskey;" oncommand="document.getBindingParent(this).enable()"/>
-					<xul:menuitem anonid="context-disable" label="&cmd.disable.label;" accesskey="&cmd.disable.accesskey;" oncommand="document.getBindingParent(this).disable()"/>
-					<xul:menuitem anonid="context-delete" label="&cmd.uninstall.label;" accesskey="&cmd.uninstall2.accesskey;" oncommand="document.getBindingParent(this).delete()"/>
-					<xul:menuitem anonid="homepage" label="&cmd.homepage.label;" accesskey="&cmd.homepage.accesskey;" oncommand="document.getBindingParent(this).visitHomepage()"/>
-					<xul:menuitem anonid="find-update" label="&cmd.checkUpdate.label;" accesskey="&cmd.checkUpdate.accesskey;" oncommand="document.getBindingParent(this).findUpdate()"/>
-				</xul:menupopup>
-			</xul:hbox>
-		</content>
-		<implementation>
-			<property name="styleObject"/>
-			<constructor>
-				this.reload();
-
-				var that = this;
-				var strings = document.getElementById("extensionsStrings");
-				var strings2 = document.getElementById("stylishStrings");
-				function $(id) {
-					return document.getAnonymousElementByAttribute(that, "anonid", id);
-				}
-
-				// add observers
-				var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-
-				this.updateCheckStartObserver = {
-					observe: function(subject, topic, data) {
-						if (subject.id != that.styleObject.id) {
-							return;
-						}
-						$("update-done").style.display = "none";
-						$("actions").selectedIndex = 2;
-						that.setAttribute("update", "true");
-					}
-				}
-				observerService.addObserver(this.updateCheckStartObserver, "stylish-style-update-check-start", false);
-
-				this.updateCheckDoneObserver = {
-					observe: function(subject, topic, data) {
-						if (subject.id != that.styleObject.id) {
-							return;
-						}
-						var updateResultMessage;
-						switch (data) {
-							case "no-update-available":
-								updateResultMessage = strings2.getString("updateNotFound");
-								$("update-done").style.display = "";
-								setTimeout(function(){that.updateDone()}, 10000);
-								break;
-							case "no-update-possible":
-								updateResultMessage = strings2.getString("updateNotPossible");
-								$("update-done").style.display = "";
-								setTimeout(function(){that.updateDone()}, 10000);
-								break;
-							case "update-check-error":
-								updateResultMessage = strings2.getString("updateCheckError");
-								$("update-done").style.display = "";
-								break;
-							case "update-available":
-								updateResultMessage = strings2.getString("updateAvailable");
-								$("update-done").style.display = "none";
-								$("update").style.display = "";
-								break;
-						}
-						$("update-status").value = updateResultMessage;;
-						$("actions").selectedIndex = 1;
-						that.setAttribute("update", "true");
-					}
-				}
-				observerService.addObserver(this.updateCheckDoneObserver, "stylish-style-update-check-done", false);
-
-				this.updateStartObserver = {
-					observe: function(subject, topic, data) {
-						if (subject.id != that.styleObject.id) {
-							return;
-						}
-						$("update-done").style.display = "none";
-						$("actions").selectedIndex = 2;
-						that.setAttribute("update", "true");
-					}
-				}
-				observerService.addObserver(this.updateStartObserver, "stylish-style-update-start", false);
-
-				this.updateDoneObserver = {
-					observe: function(subject, topic, data) {
-						if (subject.id != that.styleObject.id) {
-							return;
-						}
-						var updateResultMessage;
-						switch (data) {
-							case "no-update-possible":
-								updateResultMessage = strings.getString("noUpdatesMsg");
-								break;
-							case "update-failure":
-								updateResultMessage = strings2.getString("updateFailed");
-								break;
-							case "update-success":
-								updateResultMessage = strings2.getString("updateCompleted");
-								break;
-						}
-						$("update-status").value = updateResultMessage;
-						$("update").style.display = "none"
-						$("update-done").style.display = "";
-						$("actions").selectedIndex = 1;
-						that.setAttribute("update", "true");
-					}
-				}
-				observerService.addObserver(this.updateDoneObserver, "stylish-style-update-done", false);
-			</constructor>
-			<destructor>
-				this.destroy();
-			</destructor>
-			<method name="destroy">
-				<body>
-					var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
-					observerService.removeObserver(this.updateCheckStartObserver, "stylish-style-update-check-start");
-					observerService.removeObserver(this.updateCheckDoneObserver, "stylish-style-update-check-done");
-					observerService.removeObserver(this.updateStartObserver, "stylish-style-update-start");
-					observerService.removeObserver(this.updateDoneObserver, "stylish-style-update-done");
-				</body>
-			</method>
-			<method name="reload">
-				<body>
-					<![CDATA[
-						var that = this;
-						var s = this.styleObject;
-						function $(id) {
-							return document.getAnonymousElementByAttribute(that, "anonid", id);
-						}
-
-						this.setAttribute("style-name", s.name);
-						this.setAttribute("tags", s.getMeta("tag", {}).join(" "));
-						this.setAttribute("type", s.getMeta("type", {}).join(" "));
-
-						$("homepage").disabled = !s.url;
-						$("find-update").disabled = !s.updateUrl;
-						$("context-enable").hidden = s.enabled;
-						$("context-disable").hidden = !s.enabled;
-
-						//isDisabled so we get Firefox's styles, is-disabled so people can still style this (bug 282328)
-						this.setAttribute("is-disabled", !s.enabled);
-						this.setAttribute("isDisabled", !s.enabled);
-					]]>
-				</body>
-			</method>
-			<method name="findUpdate">
-				<body>
-					this.styleObject.checkForUpdates(null);
-				</body>
-			</method>
-			<method name="update">
-				<body>
-					this.styleObject.applyUpdate(null);
-				</body>
-			</method>
-			<method name="delete">
-				<body>
-					stylishCommon.deleteWithPrompt(this.styleObject);
-				</body>
-			</method>
-			<method name="enable">
-				<body>
-					this.styleObject.enabled = true;
-					this.styleObject.save();
-				</body>
-			</method>
-			<method name="disable">
-				<body>
-					this.styleObject.enabled = false;
-					this.styleObject.save();
-				</body>
-			</method>
-			<method name="toggleEnabled">
-				<body>
-					this.styleObject.enabled = !this.styleObject.enabled;
-					this.styleObject.save();
-				</body>
-			</method>
-			<method name="edit">
-				<body>
-					<![CDATA[
-						stylishCommon.openEditForStyle(this.styleObject);
-					]]>
-				</body>
-			</method>
-			<method name="visitHomepage">
-				<body>
-					openURL(this.styleObject.url);
-				</body>
-			</method>
-			<method name="updateDone">
-				<body>
-					var that = this;
-					function $(id) {
-						return document.getAnonymousElementByAttribute(that, "anonid", id);
-					}
-					$("actions").selectedIndex = 0;
-					this.removeAttribute("update");
-				</body>
-			</method>
-		</implementation>
-		<handlers>
-			<handler event="click">
-				var parent = this.parentNode;
-				if (parentNode.nodeName == "style-container")
-					parent = parent.parentNode;
-				if (parent.currentSelection == this)
-					return;
-				if (parent.currentSelection)
-					parent.currentSelection.removeAttribute("selected");
-				parent.currentSelection = this;
-				this.setAttribute("selected", "true");
-			</handler>
-			<handler event="dblclick">
-				this.edit();
-			</handler>
-		</handlers>
-	</binding>
-	<binding id="container">
-		<resources>
-			<stylesheet src="chrome://stylish/skin/style.css"/>
-		</resources>
-		<content>
-			<xul:vbox flex="1" context="_child">
-				<xul:hbox anonid="heading" onclick="if (event.button == 0) { document.getBindingParent(this).toggle()}">
-					<xul:button anonid="twisty" xbl:inherits="label"/>
-				</xul:hbox>
-				<xul:vbox anonid="children">
-					<children/>
-				</xul:vbox>
-				<xul:menupopup onpopupshowing="document.getBindingParent(this)._enableContext()">
-					<xul:menuitem anonid="context-enable" label="&cmd.enable.label;" accesskey="&cmd.enable.accesskey;" oncommand="document.getBindingParent(this).enable()"/>
-					<xul:menuitem anonid="context-disable" label="&cmd.disable.label;" accesskey="&cmd.disable.accesskey;" oncommand="document.getBindingParent(this).disable()"/>
-					<xul:menuitem anonid="context-change-tags" label="&changetags;" accesskey="&changetags.ak;" oncommand="document.getBindingParent(this).changeTags()"/>
-					<xul:menuitem anonid="context-delete" label="&cmd.uninstall.label;" accesskey="&cmd.uninstall2.accesskey;" oncommand="document.getBindingParent(this).delete()"/>
-					<xul:menuitem anonid="find-update" label="&cmd.checkUpdatesAll.label;" accesskey="&cmd.checkUpdatesAll.accesskey;" oncommand="document.getBindingParent(this).findUpdate()"/>
-				</xul:menupopup>
-			</xul:vbox>
-		</content>
-		<implementation>
-			<method name="toggle">
-				<body>
-					<![CDATA[
-						if (this.getAttribute("closed") == "true")
-							this.removeAttribute("closed");
-						else
-							this.setAttribute("closed", "true");
-					]]>
-				</body>
-			</method>
-			<method name="enable">
-				<body>
-					<![CDATA[
-						this._performAction("enable");
-					]]>
-				</body>
-			</method>
-			<method name="disable">
-				<body>
-					<![CDATA[
-						this._performAction("disable");
-					]]>
-				</body>
-			</method>
-			<method name="changeTags">
-				<body>
-					<![CDATA[
-						var currentTag = this.getAttribute("group-value");
-						const STRINGS = document.getElementById("stylish-common-strings");
-						var title = STRINGS.getString("changeTagsTitle");
-						var prompt;
-						if (currentTag)
-							prompt = STRINGS.getFormattedString("changeTags", [currentTag]);
-						else
-							prompt = STRINGS.getString("changeTagsNoCurrent");
-						var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
-						var v = {};
-						if (!prompts.prompt(window, title, prompt, v, null, {})) {
-							return false;
-						}
-						this.parentNode.setAttribute("suspend-rebuild", "true");
-						for (var i = 0; i < this.childNodes.length; i++) {
-							if (i == this.childNodes.length - 1) {
-								this.parentNode.removeAttribute("suspend-rebuild");
-							}
-							var s = this.childNodes[i].styleObject;
-							var newTags = s.getMeta("tag", {});
-							newTags = newTags.filter(function(t) {
-								return t != currentTag;
-							});
-							var newTags = stylishCommon.cleanTags(newTags.join(" ") + " " + v.value);
-							s.removeAllMeta("tag")
-							newTags.forEach(function(v) {
-								s.addMeta("tag", v);
-							});
-							s.save();
-						}
-
-					]]>
-				</body>
-			</method>
-			<method name="delete">
-				<body>
-					<![CDATA[
-						if (this.childNodes.length == 1) {
-							this._performAction("delete");
-							return;
-						}
-						const STRINGS = document.getElementById("stylish-common-strings");
-						var title = STRINGS.getString("deleteStylesTitle");
-						var prompt = STRINGS.getFormattedString("deleteStyles", [this.childNodes.length])
-						var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
-						if (prompts.confirmEx(window, title, prompt, prompts.BUTTON_POS_0 * prompts.BUTTON_TITLE_IS_STRING + prompts.BUTTON_POS_1 * prompts.BUTTON_TITLE_CANCEL, STRINGS.getString("deleteStylesOK"), null, null, null, {})) {
-							return false;
-						}
-						this.parentNode.setAttribute("suspend-rebuild", "true");
-						for (var i = 0; i < this.childNodes.length; i++) {
-							if (i == this.childNodes.length - 1) {
-								this.parentNode.removeAttribute("suspend-rebuild");
-							}
-							this.childNodes[i].styleObject.delete();
-						}
-					]]>
-				</body>
-			</method>
-			<method name="findUpdate">
-				<body>
-					<![CDATA[
-						this._performAction("findUpdate");
-					]]>
-				</body>
-			</method>
-			<method name="_performAction">
-				<parameter name="action"/>
-				<body>
-					<![CDATA[
-						this.parentNode.setAttribute("suspend-rebuild", "true");
-						for (var i = 0; i < this.childNodes.length; i++) {
-							if (i == this.childNodes.length - 1) {
-								this.parentNode.removeAttribute("suspend-rebuild");
-							}
-							this.childNodes[i][action]();
-						}
-					]]>
-				</body>
-			</method>
-			<method name="_enableContext">
-				<body>
-					<![CDATA[
-						var that = this;
-						function $(id) {
-							return document.getAnonymousElementByAttribute(that, "anonid", id);
-						}
-						$("context-enable").disabled = !Array.some(this.childNodes, function(c) {
-							return !c.styleObject.enabled;
-						});
-						$("context-disable").disabled = !Array.some(this.childNodes, function(c) {
-							return c.styleObject.enabled;
-						});
-						$("context-delete").disabled = this.childNodes.length == 0;
-						$("find-update").disabled = this.childNodes.length == 0;
-						$("context-change-tags").hidden = that.getAttribute("group-type") != "tag";
-					]]>
-				</body>
-			</method>
-		</implementation>
-	</binding>
-</bindings>
diff --git a/content/test.xul b/content/test.xul
index 5ec7443..33ace38 100644
--- a/content/test.xul
+++ b/content/test.xul
@@ -12,6 +12,7 @@
 
 	<script type="application/javascript" src="base-test.js"/>
 	<script type="application/javascript" src="overlay.js"/>
+	<script type="application/javascript" src="utils.js"/>
 	<script type="application/javascript" src="common.js"/>
 	<script type="application/javascript" src="unittest.js"/>
 
diff --git a/defaults/preferences/stylish.js b/defaults/preferences/stylish.js
index d362bc1..5127f16 100644
--- a/defaults/preferences/stylish.js
+++ b/defaults/preferences/stylish.js
@@ -2,13 +2,15 @@ pref("extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description", "chrome://
 pref("extensions.stylish.wrap_lines", true);
 pref("extensions.stylish.install.allowedDomains", "userstyles.org");
 pref("extensions.stylish.styleRegistrationEnabled", true);
-pref("extensions.stylish.editOnInstall", false);
-pref("extensions.stylish.manageView", 0);
 pref("extensions.stylish.firstRun", 0);
 pref("extensions.stylish.dbFile", "");
-pref("extensions.stylish.closedContainers", "");
 pref("extensions.stylish.promptOnInstall", true);
 pref("extensions.stylish.promptOnClear", true);
 pref("extensions.stylish.updatesEnabled", true);
 pref("extensions.stylish.editor", 0);
-
+pref("extensions.stylish.editorWindowMode", 0);
+pref("extensions.stylish.editorWindowPersist", "{\"screenX\": 100, \"screenY\": 100, \"width\": 800, \"height\": 600, \"windowState\": 3}");
+pref("extensions.stylish.buttonStylesDisplay.siteMatching", 'show');
+pref("extensions.stylish.buttonStylesDisplay.siteNonMatching", 'hide');
+pref("extensions.stylish.buttonStylesDisplay.global", 'submenu');
+pref("extensions.stylish.buttonStylesDisplay.app", 'hide');
diff --git a/install.rdf b/install.rdf
index 6b614f9..ece6b5c 100644
--- a/install.rdf
+++ b/install.rdf
@@ -5,9 +5,9 @@
 	<Description rdf:about="urn:mozilla:install-manifest">
 		<em:id>{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}</em:id>
 		<em:name>Stylish</em:name>
-		<em:version>1.4.3</em:version>
+		<em:version>2.0.0</em:version>
 		<em:creator>Jason Barnabe</em:creator>
-		<em:homepageURL>http://userstyles.org/</em:homepageURL>
+		<em:homepageURL>https://userstyles.org/</em:homepageURL>
 		<em:iconURL>chrome://stylish/skin/32.png</em:iconURL>
 		<em:optionsType>2</em:optionsType>
 		<em:optionsURL>chrome://stylish/content/options.xul</em:optionsURL>
@@ -22,35 +22,40 @@
 		<em:translator>loveleeyoungae - vi</em:translator>
 		<em:translator>AllanKJ - da</em:translator>
 		<em:translator>Ian Moody - en-GB</em:translator>
-		<em:translator>xren - ru-RU</em:translator>
+		<em:translator>xren - ru</em:translator>
 		<em:translator>momo6562 - zh-TW</em:translator>
 		<em:translator>Alf - nl</em:translator>
 		<em:translator>chuzo - es-ES</em:translator>
 		<em:translator>Allan Kimmer Jensen - sv-SE</em:translator>
-		<em:translator>teo - pl-PL</em:translator>
+		<em:translator>teo - pl</em:translator>
 		<em:translator>tymofiy - uk</em:translator>
 		<em:translator>SiiiE - he-IL</em:translator>
 		<em:translator>KNTRO - es-AR</em:translator>
-		<em:translator>Suurkivi - et-EE</em:translator>
-		<em:translator>WonderCsabo - hu-HU</em:translator>
+		<em:translator>Suurkivi - et</em:translator>
+		<em:translator>WonderCsabo - hu</em:translator>
 		<em:translator>JTojnar - cs</em:translator>
-		<em:translator>BlastSound - ko-KR</em:translator>
-		<em:translator>futsudesu - ko-KR</em:translator>
-		<em:translator>maybee - ko-KR</em:translator>
-		<em:translator>surefx - ko-KR</em:translator>
-		<em:translator>tHJYang - ko-KR</em:translator>
+		<em:translator>BlastSound - ko</em:translator>
+		<em:translator>futsudesu - ko</em:translator>
+		<em:translator>maybee - ko</em:translator>
+		<em:translator>surefx - ko</em:translator>
+		<em:translator>tHJYang - ko</em:translator>
 		<em:translator>ДакСРБИЈА - sr</em:translator>
 		<em:translator>Luana - it</em:translator>
-		<em:translator>Atari - ro-RO</em:translator>
-		<em:translator>raulmalea - ro-RO</em:translator>
+		<em:translator>Atari - ro</em:translator>
+		<em:translator>raulmalea - ro</em:translator>
 		<em:translator>Haebaru - ja</em:translator>
 		<em:translator>Lakrits - sv-SE</em:translator>
 		<em:translator>factorymarks - ja</em:translator>
 		<em:translator>gymka - lt</em:translator>
 		<em:translator>banthaz - sv-SE</em:translator>
 		<em:translator>kenmooda - fi</em:translator>
-		<em:translator>mdr.ksk - et-EE</em:translator>
+		<em:translator>mdr.ksk - et</em:translator>
 		<em:translator>yfdyh000 - zh-CN</em:translator>
+		<em:translator>Joe82 - gl</em:translator>
+		<em:translator>文科 - zh-CN, zh-TW</em:translator>
+		<em:translator>shyangs - zh-TW</em:translator>
+		<em:translator>CoolCmd - ru</em:translator>
+		<em:translator>Michal Čaplygin - cs</em:translator>
 		<em:contributor>t1470258 - icons</em:contributor>
 		<em:contributor>LouCypher - icons</em:contributor>
 		<em:contributor>s4nji - icons</em:contributor>
@@ -59,32 +64,32 @@
 		<em:targetApplication>
 			<Description>
 				<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-				<em:minVersion>4.0</em:minVersion>
-				<em:maxVersion>32.0</em:maxVersion>
+				<em:minVersion>19.0</em:minVersion>
+				<em:maxVersion>37.0</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 		<!--Thunderbird-->
 		<em:targetApplication>
 			<Description>
 				<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
-				<em:minVersion>5.0</em:minVersion>
-				<em:maxVersion>32.0</em:maxVersion>
+				<em:minVersion>24.0</em:minVersion>
+				<em:maxVersion>37.0</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 		<!--SeaMonkey-->
 		<em:targetApplication>
 			<Description>
 				<em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
-				<em:minVersion>2.1</em:minVersion>
-				<em:maxVersion>2.29</em:maxVersion>
+				<em:minVersion>2.16</em:minVersion>
+				<em:maxVersion>2.34</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 		<!--Toolkit-->
 		<em:targetApplication>
 			<Description>
 				<em:id>toolkit at mozilla.org</em:id>
-				<em:minVersion>2.0</em:minVersion>
-				<em:maxVersion>30.0</em:maxVersion>
+				<em:minVersion>19.0</em:minVersion>
+				<em:maxVersion>37.0</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 		<!-- Postbox -->
@@ -103,12 +108,12 @@
 				<em:maxVersion>6.*</em:maxVersion>
 			</Description>
 		</em:targetApplication>
-		<!-- Fennec Native -->
+		<!-- Firefox Mobile -->
 		<em:targetApplication>
 			<Description>
 				<em:id>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</em:id>
-				<em:minVersion>14.0</em:minVersion>
-				<em:maxVersion>32.0</em:maxVersion>
+				<em:minVersion>19.0</em:minVersion>
+				<em:maxVersion>37.0</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 		<!-- Komodo IDE -->
@@ -127,5 +132,13 @@
 				<em:maxVersion>8.*</em:maxVersion>
 			</Description>
 		</em:targetApplication>
+		<!-- Pale Moon -->
+		<em:targetApplication>
+			<Description>
+				<em:id>{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}</em:id>
+				<em:minVersion>25.0</em:minVersion>
+				<em:maxVersion>25.*</em:maxVersion>
+			</Description>
+		</em:targetApplication>
 	</Description>
 </RDF>
diff --git a/locale/cs/common.dtd b/locale/cs/common.dtd
index 22ecfa4..47ed30f 100644
--- a/locale/cs/common.dtd
+++ b/locale/cs/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Upravit">
 <!ENTITY editstyle.ak "U">
+<!ENTITY reportstyle "Nahlásit nefunkční styl">
+<!ENTITY reportedstyle "Styl nahlášen.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/cs/common.properties b/locale/cs/common.properties
index 180e2d3..107311e 100644
--- a/locale/cs/common.properties
+++ b/locale/cs/common.properties
@@ -1,10 +1,4 @@
-changeTags=Odebrat štítek \'%S\' a přidat následující štítky:
-changeTagsNoCurrent=Přidat následující štítky:
-changeTagsTitle=Změnit štítky
 deleteStyle=Jste si jisti, že si přejete odinstalovat \'%S\'?
 deleteStyleTitle=Odinstalovat styl?
 deleteStyleOK=Odinstalovat
-deleteStyles=Jste si jisti, že si přejete odinstalovat následující styly? \'%S\'
-deleteStylesTitle=Odinstalovat styly?
-deleteStylesOK=Odinstalovat
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Změňte vzhled webu se správcem uživatelských stylů, doplňkem Stylish.
diff --git a/locale/cs/edit.dtd b/locale/cs/edit.dtd
index e023c60..28471e3 100644
--- a/locale/cs/edit.dtd
+++ b/locale/cs/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Zkontrolovat">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Cesta ke složce chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Datová URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "N">
 <!ENTITY save "Uložit">
 <!ENTITY save.ak "U">
-<!ENTITY switchtoinstall "Přepnout na instalaci">
-<!ENTITY switchtoinstall.ak "i">
-<!ENTITY tags "Štítky">
-<!ENTITY tags.ak "š">
 <!ENTITY wraplines "Zalamovat řádky">
 <!ENTITY wraplines.ak "Z">
 <!ENTITY xulnamespace "Jmenný prostor XUL jako výchozí">
diff --git a/locale/cs/edit.properties b/locale/cs/edit.properties
index c9ed769..b0ea248 100644
--- a/locale/cs/edit.properties
+++ b/locale/cs/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Upravuji  \'%S\'
 newstyletitle=Nový styl
 missingcode=Zadejte nějaký kód pro tento styl.
 missingname=Pojmenujte styl.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/cs/extensions.dtd b/locale/cs/extensions.dtd
deleted file mode 100644
index 0c40074..0000000
--- a/locale/cs/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Doplňky">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Získat doplňky">
-<!ENTITY extensions.label "Rozšíření">
-<!ENTITY themes.label "Témata">
-<!ENTITY locales.label "Jazyky">
-<!ENTITY plugins.label "Zásuvné moduly">
-<!ENTITY update.label "Aktualizace">
-<!ENTITY install.label "Instalace">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Najít aktualizace">
-<!ENTITY cmd.checkUpdatesAll.accesskey "N">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Najít aktualizace vašich doplňků">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Najít aktualizace vašich témat">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Najít aktualizace vašich zásuvných modulů">
-<!ENTITY cmd.installLocalFile.label "Instalovat…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Instalovat doplněk">
-<!ENTITY cmd.installFileTheme.tooltip "Instalovat téma">
-<!ENTITY cmd.installUpdatesAll2.label "Instalovat aktualizace">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Instalovat vybrané aktualizace">
-<!ENTITY cmd.restartApp2.label "Restartovat &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Restartovat &brandShortName; pro uskutečnění změn">
-<!ENTITY cmd.skip.label "Přeskočit">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "Přeskočit tyto aktualizace">
-<!ENTITY cmd.continue.label "Pokračovat">
-<!ENTITY cmd.continue.accesskey "P">
-<!ENTITY cmd.continue.tooltip "Pokračovat načítání &brandShortName;">
-<!ENTITY cmd.enableAll.label "Povolit vše">
-<!ENTITY cmd.enableAll.accesskey "v">
-<!ENTITY cmd.enableAll.tooltip "Povolit všechny zobrazené doplňky">
-<!ENTITY cmd.disableAll.label "Zakázat vše">
-<!ENTITY cmd.disableAll.accesskey "z">
-<!ENTITY cmd.disableAll.tooltip "Zakázat všechny zobrazené doplňky">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Použít téma">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Změní téma aplikace &brandShortName;">
-<!ENTITY cmd.options.label "Možnosti">
-<!ENTITY cmd.options.accesskey "M">
-<!ENTITY cmd.options.tooltip "Nastaví možnosti vybraných rozšíření">
-<!ENTITY cmd.optionsUnix.label "Předvolby">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Upraví předvolby vybraných rozšíření">
-<!ENTITY cmd.enable.label "Povolit">
-<!ENTITY cmd.enable.accesskey "P">
-<!ENTITY cmd.enable.tooltip "Povolit tento doplněk při restartu aplikace &brandShortName;">
-<!ENTITY cmd.disable.label "Zakázat">
-<!ENTITY cmd.disable.accesskey "Z">
-<!ENTITY cmd.disable.tooltip "Zakázat tento doplněk při restartu aplikace &brandShortName;">
-<!ENTITY cmd.uninstall.label "Odinstalovat">
-<!ENTITY cmd.uninstall2.accesskey "O">
-<!ENTITY cmd.uninstall2.tooltip "Odinstalovat tento doplněk při restartu aplikace &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Zrušit odinstalaci">
-<!ENTITY cmd.cancelUninstall.accesskey "Z">
-<!ENTITY cmd.cancelUninstall.tooltip "Zruší odinstalaci tohoto doplňku">
-<!ENTITY cmd.cancelInstall.label "Zrušit instalaci">
-<!ENTITY cmd.cancelInstall.accesskey "Z">
-<!ENTITY cmd.cancelInstall.tooltip "Zruší instalaci tohoto doplňku">
-<!ENTITY cmd.cancelUpgrade.label "Zrušit aktualizaci">
-<!ENTITY cmd.cancelUpgrade.accesskey "Z">
-<!ENTITY cmd.cancelUpgrade.tooltip "Zruší aktualizaci tohoto doplňku">
-<!ENTITY cmd.installUpdate.label "Instalovat aktualizaci">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Instalovat aktualizaci tohoto rozšíření">
-<!ENTITY cmd.showUpdateInfo.label "Zobrazit informace">
-<!ENTITY cmd.showUpdateInfo.accesskey "Z">
-<!ENTITY cmd.showUpdateInfo.tooltip "Zobrazit více informací o této aktualizaci">
-<!ENTITY cmd.hideUpdateInfo.label "Skrýt informace">
-<!ENTITY cmd.hideUpdateInfo.accesskey "S">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Skrýt informace o těchto aktualizacích">
-<!ENTITY cmd.installSearchResult.label "Přidat do &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "P">
-<!ENTITY cmd.installSearchResult.tooltip "Stáhnout a instalovat tento doplněk">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Zrušit">
-<!ENTITY cancel.accesskey "Z">
-<!ENTITY cancelInstall.label "Zrušit">
-<!ENTITY cancelInstall.accesskey "Z">
-<!ENTITY cancelUpgrade.label "Zrušit">
-<!ENTITY cancelUpgrade.accesskey "Z">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Navštívit domovskou stránku">
-<!ENTITY cmd.homepage.accesskey "d">
-<!ENTITY cmd.about2.label "O tomto doplňku">
-<!ENTITY cmd.about.accesskey "O">
-<!ENTITY cmd.checkUpdate.label "Najít aktualizaci">
-<!ENTITY cmd.checkUpdate.accesskey "N">
-<!ENTITY cmd.includeUpdate.label "Zahrnout aktualizaci">
-<!ENTITY cmd.includeUpdate.accesskey "h">
-<!ENTITY includeUpdate.label "Zahrnout tuto aktualizaci">
-<!ENTITY includeUpdate.accesskey "h">
-<!ENTITY includeUpdate.tooltip "Zahrnout tento doplněk při instalování aktualizací">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Neposkytuje bezpečné aktualizace.">
-<!ENTITY needsDependencies.label "Vyžaduje dodatečné položky.">
-<!ENTITY blocklisted.label "Zakázáno pro vaši ochranu.">
-<!ENTITY softBlocklisted.label "Známo jako příčina potíží s bezpečností či stabilitou.">
-<!ENTITY outdated.label "Je dostupná novější, bezpečnější verze.">
-<!ENTITY toBeDisabled.label "Tento doplněk bude zakázán po restartu &brandShortName;.">
-<!ENTITY toBeEnabled.label "Tento doplněk bude povolen po restartu &brandShortName;.">
-<!ENTITY toBeInstalled.label "Tento doplněk bude nainstalován po restartu &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Tento doplněk bude odinstalován po restartu &brandShortName;.">
-<!ENTITY toBeUpdated.label "Tento doplněk bude aktualizován po restartu &brandShortName;.">
-<!ENTITY getExtensions.label "Získat rozšíření">
-<!ENTITY getThemes.label "Získat témata">
-<!ENTITY getPlugins.label "Získat zásuvné moduly">
-<!ENTITY searchAddons.label "Hledat všechny doplňky">
-<!ENTITY browseAddons.label "Procházet všechny doplňky">
-<!ENTITY searchFailed.label "&brandShortName; nemohl získat seznam doplňků">
-<!ENTITY recommendedHeader.label "Doporučené">
-<!ENTITY recommendedThrobber.label "Získávání seznamu doporučených doplňků">
-<!ENTITY searchThrobber.label "Hledání doplňků">
-<!ENTITY resetSearch.label "Smazat výsledky">
-<!ENTITY noSearchResults.label "Všechny výsledky jsou již nainstalovány nebo nekompatibilní.">
-<!ENTITY noRecommendedResults.label "Všechna doporučení jsou již nainstalována nebo nekompatibilní.">
-<!ENTITY emptySearch.label "Žádný odpovídající dopněk">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Zrušit">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Zjistit více">
-<!ENTITY searchBox.label "Prohledat všechny doplňky">
-<!ENTITY recommendedResults.label "Zobrazit všechny doporučené doplňky">
-<!ENTITY searchResultConnecting.label "Připojování…">
-<!ENTITY searchResultInstalling.label "Instalování…">
-<!ENTITY searchResultFailed.label "Instalace selhala">
-<!ENTITY searchResultInstalled.label "Instalace dokončena">
-<!ENTITY addonTypeExtension.label "Rozšíření">
-<!ENTITY addonTypeTheme.label "Téma">
-<!ENTITY missingThumbnail.label "Bez náhledu">
-<!ENTITY previewNoThemeSelected.label "Nevybráno žádné téma">
-<!ENTITY previewNoPreviewImage.label "Toto téma nemá náhled">
-<!ENTITY moreInfo.label "Více informací">
-<!ENTITY infoNoAddonSelected.label "Nebyla vybrána žádná aktualizace">
-<!ENTITY infoNoUpdateInfo.label "Tato aktualizace nemá žádné dodatečné informace">
-<!ENTITY infoUpdateInfoError.label "Během načítání informací k této aktualizaci došlo k chybě">
-<!ENTITY updateSuccess.label "Aktualizace úspěšně dokončena.">
-<!ENTITY installSuccess.label "Instalace úspěšně dokončena.">
-<!ENTITY installSuccessRestart.label "Pro dokončení instalace restartujte.">
-<!ENTITY updateSuccessRestart.label "Pro dokončení aktualizace restartujte.">
-<!ENTITY installWaiting.label "Čekání…">
-<!ENTITY installIncompatibleUpdate.label "Kontrola kompatibility…">
-<!ENTITY installFinishing.label "Instalování…">
-<!ENTITY installFailure.label "Instalace selhala.">
-<!ENTITY progressStatus.label "Kontrola aktualizací">
-<!ENTITY eula.title "Licenční ujednání s koncovým uživatelem">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Přijmout a instalovat…">
-<!ENTITY blocklist.blocked.label "Zablokováno">
-<!ENTITY blocklist.checkbox.label "Zakázat">
diff --git a/locale/cs/install.dtd b/locale/cs/install.dtd
index 0b555e0..2fe5b93 100644
--- a/locale/cs/install.dtd
+++ b/locale/cs/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Náhled">
 <!ENTITY preview.ak "N">
-<!ENTITY switchtoedit "Přepnout na úpravu">
-<!ENTITY switchtoedit.ak "P">
 <!ENTITY title "Instalovat uživatelský styl">
diff --git a/locale/cs/manage.dtd b/locale/cs/manage.dtd
index 914bf25..b8d4508 100644
--- a/locale/cs/manage.dtd
+++ b/locale/cs/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Změnit štítky">
-<!ENTITY changetags.ak "Z">
-<!ENTITY done "Dokončeno">
-<!ENTITY done.ak "D">
 <!ENTITY filter "Hledat">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Uživatelské styly">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Navštivte">
 <!ENTITY nostylesend "pro informace jak používat Stylish.">
 <!ENTITY sortenabled "Povoleno">
 <!ENTITY sortname "Název">
-<!ENTITY sorttag "Štítek">
 <!ENTITY sorttype "Typ">
-<!ENTITY sortgroup "Řadit podle:">
-<!ENTITY update "Aktualizovat">
-<!ENTITY update.ak "A">
 <!ENTITY writenew "Napsat nový styl">
 <!ENTITY writenew.ak "N">
diff --git a/locale/cs/manage.properties b/locale/cs/manage.properties
index 3c9ad67..30bbec1 100644
--- a/locale/cs/manage.properties
+++ b/locale/cs/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Povoleno
-groupEnabledFalse=Zakázáno
-groupTagNone=Žádné štítky
-groupTypeApp=Aplikace
-groupTypeGlobal=Globální
-groupTypeNone=Žádný typ
-groupTypeSite=Stránka
-styleRegistrationOff=Všechny styly jsou vypnuty.
-styleRegistrationTurnOn=Zapnout styly
-styleRegistrationTurnOn.ak=Z
-updateAvailable=Je dostupná aktualizace.
-updateCheckError=Během kontroly aktualizací nastala chyba.
-updateCompleted=Aktualizace dokončena.
-updateFailed=Aktualizace selhala.
-updateNotFound=Nenalezeny žádné aktualizace.
-updateNotPossible=Aktualizace nejsou možné.
 appstyledescription=Ovlivňuje uživatelské rozhraní.
 globalstyledescription=Může ovlivnit cokoli.
 sitestyledescription=Ovlivňuje %S.
-tagstyledescription=Štítky: %S.
 manageaddonstitle=Uživatelské styly
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/cs/overlay.dtd b/locale/cs/overlay.dtd
index bb29a2b..4afcd82 100644
--- a/locale/cs/overlay.dtd
+++ b/locale/cs/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Instalovat soubor...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Povolit">
+<!ENTITY cmd.enable.accesskey "P">
+<!ENTITY cmd.disable.label "Zakázat">
+<!ENTITY cmd.disable.accesskey "Z">
+<!ENTITY cmd.uninstall.label "Odinstalovat">
+<!ENTITY cmd.uninstall2.accesskey "O">
 <!ENTITY findstylebrowser "Najít styly pro tuto stránku...">
 <!ENTITY findstylebrowser.ak "N">
 <!ENTITY managestyles "Spravovat styly...">
diff --git a/locale/cs/overlay.properties b/locale/cs/overlay.properties
index e657cce..b0c7e66 100644
--- a/locale/cs/overlay.properties
+++ b/locale/cs/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Najít styly pro tuto stránku...
+submenufornonmatchingsite=Styly pro webové stránky
+submenuforglobal=Globální styly
+submenuforapp=Aplikační styly
 tooltip=Stylish - %S stylů stránek, %S globálních stylů
 tooltipStylesOff=Stylish - styly jsou vypnnuty
 updatestyle=Jste si jisti, že si přejete aktualizovat \'%S\'?
diff --git a/locale/da/common.dtd b/locale/da/common.dtd
index 7d082de..4134b73 100644
--- a/locale/da/common.dtd
+++ b/locale/da/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Redigér">
 <!ENTITY editstyle.ak "R">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/da/common.properties b/locale/da/common.properties
index 162b930..f93d96d 100644
--- a/locale/da/common.properties
+++ b/locale/da/common.properties
@@ -1,10 +1,4 @@
-changeTags=Fjern \'%S\' taget og tilføj følgende tags:
-changeTagsNoCurrent=Tilføj følgende tags:
-changeTagsTitle=Rediger Tags
 deleteStyle=Er du sikker på du ønsker at afinstallere \'%S\'?
 deleteStyleTitle=Afinstaller style?
 deleteStyleOK=Afinstaller
-deleteStyles=Er du sikker på du ønsker at afinstallere %S styles?
-deleteStylesTitle=Afinstaller styles?
-deleteStylesOK=Afinstaller
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Gendesign internettet med Stylish, en user styles manager.
diff --git a/locale/da/edit.dtd b/locale/da/edit.dtd
index 61382e5..9ca82d4 100644
--- a/locale/da/edit.dtd
+++ b/locale/da/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome filsti">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Data URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "S">
 <!ENTITY save "Gem">
 <!ENTITY save.ak "G">
-<!ENTITY switchtoinstall "Gå til installation">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Tags">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Ombryd tekst">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "XUL namespace som standard">
diff --git a/locale/da/edit.properties b/locale/da/edit.properties
index 1cafa45..974b531 100644
--- a/locale/da/edit.properties
+++ b/locale/da/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Redigere \'%S\'
 newstyletitle=Ny style
 missingcode=Skriv nogle kode for denne style
 missingname=Giv denne style et navn
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/da/extensions.dtd b/locale/da/extensions.dtd
deleted file mode 100644
index 4382dc1..0000000
--- a/locale/da/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Tilføjelser">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Hent tilføjelser">
-<!ENTITY extensions.label "Udvidelser">
-<!ENTITY themes.label "Temaer">
-<!ENTITY locales.label "Sprog">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Opdateringer">
-<!ENTITY install.label "Installering">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Tjek for opdateringer">
-<!ENTITY cmd.checkUpdatesAll.accesskey "T">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Tjekker for opdateringer til dine tilføjelser">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Tjekker for opdateringer til dine temaer">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Tjekker for opdateringer til fine plugins">
-<!ENTITY cmd.installLocalFile.label "Installer…">
-<!ENTITY cmd.installLocalFile.accesskey "I">
-<!ENTITY cmd.installFileAddon.tooltip "Installer en tilføjelse">
-<!ENTITY cmd.installFileTheme.tooltip "Installer et tema">
-<!ENTITY cmd.installUpdatesAll2.label "Installer opdateringer">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Installerer de valgte opdateringer">
-<!ENTITY cmd.restartApp2.label "Genstart &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "G">
-<!ENTITY cmd.restartApp2.tooltip "Genstart &brandShortName; for at tage ændringerne i brug">
-<!ENTITY cmd.skip.label "Spring over">
-<!ENTITY cmd.skip.accesskey "o">
-<!ENTITY cmd.skip.tooltip "Spring disse opdateringer over">
-<!ENTITY cmd.continue.label "Fortsæt">
-<!ENTITY cmd.continue.accesskey "F">
-<!ENTITY cmd.continue.tooltip "Fortsæt indlæsning af &brandShortName;">
-<!ENTITY cmd.enableAll.label "Aktiver alle">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Aktiverer alle viste tilføjelser">
-<!ENTITY cmd.disableAll.label "Deaktiver alle">
-<!ENTITY cmd.disableAll.accesskey "D">
-<!ENTITY cmd.disableAll.tooltip "Deaktiverer alle viste tilføjelser">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Brug tema">
-<!ENTITY cmd.useTheme.accesskey "U">
-<!ENTITY cmd.useTheme.tooltip "Ændrer &brandShortName;\'s tema.">
-<!ENTITY cmd.options.label "Indstillinger">
-<!ENTITY cmd.options.accesskey "I">
-<!ENTITY cmd.options.tooltip "Rediger indstillinger for den valgte udvidelse">
-<!ENTITY cmd.optionsUnix.label "Præferencer">
-<!ENTITY cmd.optionsUnix.accesskey "r">
-<!ENTITY cmd.optionsUnix.tooltip "Rediger præferencer for den valgte udvidelse">
-<!ENTITY cmd.enable.label "Aktiver">
-<!ENTITY cmd.enable.accesskey "A">
-<!ENTITY cmd.enable.tooltip "Aktiver denne tilføjelse når &brandShortName; bliver genstartet">
-<!ENTITY cmd.disable.label "Deaktiver">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Deaktiver denne tilføjelse når &brandShortName; bliver genstartet">
-<!ENTITY cmd.uninstall.label "Afinstaller">
-<!ENTITY cmd.uninstall2.accesskey "f">
-<!ENTITY cmd.uninstall2.tooltip "Afinstaller denne tilføjelse når &brandShortName; bliver genstartet">
-<!ENTITY cmd.cancelUninstall.label "Afbryd afinstallation">
-<!ENTITY cmd.cancelUninstall.accesskey "b">
-<!ENTITY cmd.cancelUninstall.tooltip "Afbryd afinstallation af denne tilføjelse">
-<!ENTITY cmd.cancelInstall.label "Afbryd installation">
-<!ENTITY cmd.cancelInstall.accesskey "b">
-<!ENTITY cmd.cancelInstall.tooltip "Afbryd installationen af denne tilføjelse">
-<!ENTITY cmd.cancelUpgrade.label "Afbryd opdatering">
-<!ENTITY cmd.cancelUpgrade.accesskey "b">
-<!ENTITY cmd.cancelUpgrade.tooltip "Afbryd opdateringen af denne tilføjelse">
-<!ENTITY cmd.installUpdate.label "Installer opdatering">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Installer en opdatering til denne tilføjelse">
-<!ENTITY cmd.showUpdateInfo.label "Vis information">
-<!ENTITY cmd.showUpdateInfo.accesskey "V">
-<!ENTITY cmd.showUpdateInfo.tooltip "Vis mere information om disse opdateringer">
-<!ENTITY cmd.hideUpdateInfo.label "Skjul information">
-<!ENTITY cmd.hideUpdateInfo.accesskey "S">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Skjul information om disse opdateringer">
-<!ENTITY cmd.installSearchResult.label "Føj til &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "F">
-<!ENTITY cmd.installSearchResult.tooltip "Hent og installer denne tilføjelse">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Afbryd">
-<!ENTITY cancel.accesskey "b">
-<!ENTITY cancelInstall.label "Afbryd">
-<!ENTITY cancelInstall.accesskey "b">
-<!ENTITY cancelUpgrade.label "Afbryd">
-<!ENTITY cancelUpgrade.accesskey "b">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Besøg hjemmeside">
-<!ENTITY cmd.homepage.accesskey "h">
-<!ENTITY cmd.about2.label "Om denne tilføjelse">
-<!ENTITY cmd.about.accesskey "O">
-<!ENTITY cmd.checkUpdate.label "Tjek for opdatering">
-<!ENTITY cmd.checkUpdate.accesskey "T">
-<!ENTITY cmd.includeUpdate.label "Inkluder opdatering">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Inkluder denne opdatering">
-<!ENTITY includeUpdate.accesskey "d">
-<!ENTITY includeUpdate.tooltip "Inkluder denne tilføjelse når opdateringerne installeres">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Anvender ikke sikre opdateringer.">
-<!ENTITY needsDependencies.label "Yderligere moduler påkrævet.">
-<!ENTITY blocklisted.label "Deaktiveret for din sikkerheds skyld.">
-<!ENTITY softBlocklisted.label "Kendt for at være skyld i sikkerheds- eller stabilitetsproblemer.">
-<!ENTITY outdated.label "En nyere, mere sikker version er tilgængelig.">
-<!ENTITY toBeDisabled.label "Denne tilføjelse vil blive deaktiveret når &brandShortName; bliver genstartet.">
-<!ENTITY toBeEnabled.label "Denne tilføjelse vil blive aktiveret når &brandShortName; bliver genstartet.">
-<!ENTITY toBeInstalled.label "Denne tilføjelse vil blive installeret når &brandShortName; bliver genstartet.">
-<!ENTITY toBeUninstalled.label "Denne tilføjelse vil blive afinstalleret når &brandShortName; bliver genstartet.">
-<!ENTITY toBeUpdated.label "Denne tilføjelse vil blive opdateret når &brandShortName; bliver genstartet.">
-<!ENTITY getExtensions.label "Hent udvidelser">
-<!ENTITY getThemes.label "Hent temaer">
-<!ENTITY getPlugins.label "Hent plugins">
-<!ENTITY searchAddons.label "Søg i alle tilføjelser">
-<!ENTITY browseAddons.label "Gennemse alle tilføjelser">
-<!ENTITY searchFailed.label "&brandShortName; kunne ikke hente tilføjelser">
-<!ENTITY recommendedHeader.label "Anbefalet">
-<!ENTITY recommendedThrobber.label "Henter anbefalede tilføjelser">
-<!ENTITY searchThrobber.label "Søger i tilføjelser">
-<!ENTITY resetSearch.label "Ryd resultater">
-<!ENTITY noSearchResults.label "Alle resultater er allerede installeret eller inkompatible.">
-<!ENTITY noRecommendedResults.label "Alle anbefalinger er allerede installeret eller inkompatible.">
-<!ENTITY emptySearch.label "Ingen matchende tilføjelser">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Annuller">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Se mere">
-<!ENTITY searchBox.label "Søg i alle tilføjelser">
-<!ENTITY recommendedResults.label "Se alle anbefalede tilføjelser">
-<!ENTITY searchResultConnecting.label "Tilslutter…">
-<!ENTITY searchResultInstalling.label "Installerer…">
-<!ENTITY searchResultFailed.label "Installationen fejlede">
-<!ENTITY searchResultInstalled.label "Installationen er fuldendt">
-<!ENTITY addonTypeExtension.label "Udvidelse">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Intet billede">
-<!ENTITY previewNoThemeSelected.label "Intet tema valgt">
-<!ENTITY previewNoPreviewImage.label "Dette tema her ikke et prøvebillede">
-<!ENTITY moreInfo.label "Mere information">
-<!ENTITY infoNoAddonSelected.label "Ingen opdateringer valgt">
-<!ENTITY infoNoUpdateInfo.label "Denne opdatering indeholder ingen yderligere information">
-<!ENTITY infoUpdateInfoError.label "Der opstod en fejl under indlæsningen af information omkring denne opdatering">
-<!ENTITY updateSuccess.label "Opdatering blev afsluttet uden problemer.">
-<!ENTITY installSuccess.label "Installationen blev fuldført.">
-<!ENTITY installSuccessRestart.label "Genstart for at færdiggøre installationen.">
-<!ENTITY updateSuccessRestart.label "Genstart for at færdiggøre opdateringen.">
-<!ENTITY installWaiting.label "Venter…">
-<!ENTITY installIncompatibleUpdate.label "Undersøger kompatibilitet…">
-<!ENTITY installFinishing.label "Installerer…">
-<!ENTITY installFailure.label "Installationen fejlede.">
-<!ENTITY progressStatus.label "Kontrollerer om der er opdateringer">
-<!ENTITY eula.title "Slutbrugerlicensaftale">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accepter og installer…">
-<!ENTITY blocklist.blocked.label "Blokeret">
-<!ENTITY blocklist.checkbox.label "Deaktiver">
diff --git a/locale/da/install.dtd b/locale/da/install.dtd
index 76603ab..95ab045 100644
--- a/locale/da/install.dtd
+++ b/locale/da/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Smugkig">
 <!ENTITY preview.ak "S">
-<!ENTITY switchtoedit "Gå til rediger">
-<!ENTITY switchtoedit.ak "R">
 <!ENTITY title "Installer bruger style">
diff --git a/locale/da/manage.dtd b/locale/da/manage.dtd
index e964838..860d6ea 100644
--- a/locale/da/manage.dtd
+++ b/locale/da/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Rediger Tags">
-<!ENTITY changetags.ak "T">
-<!ENTITY done "Færdig">
-<!ENTITY done.ak "F">
 <!ENTITY filter "Søg">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "User Styles">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Besøg">
 <!ENTITY nostylesend "For information omkring brugen af Stylish.">
 <!ENTITY sortenabled "Aktiveret">
 <!ENTITY sortname "Navn">
-<!ENTITY sorttag "Tag">
 <!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Sorter efter:">
-<!ENTITY update "Opdater">
-<!ENTITY update.ak "O">
 <!ENTITY writenew "Skriv en ny style">
 <!ENTITY writenew.ak "S">
diff --git a/locale/da/manage.properties b/locale/da/manage.properties
index af5ffbe..3512a96 100644
--- a/locale/da/manage.properties
+++ b/locale/da/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Aktiveret
-groupEnabledFalse=Deaktiveret
-groupTagNone=Ingen tags
-groupTypeApp=Program
-groupTypeGlobal=Global
-groupTypeNone=Ingen type
-groupTypeSite=Hjemmeside
-styleRegistrationOff=Alle styles er deaktiveret.
-styleRegistrationTurnOn=Aktiver styles
-styleRegistrationTurnOn.ak=A
-updateAvailable=Der er en opdatering tilgængelig.
-updateCheckError=Der opstod en fejl ved tjek af opdateringer.
-updateCompleted=Opdateringen blev fuldført.
-updateFailed=Opdateringen blev ikke installeret korrekt.
-updateNotFound=Ingen opdatering fundet.
-updateNotPossible=Opdatering er ikke muligt.
 appstyledescription=Påvirker brugerfalden.
 globalstyledescription=Kan påvirke alting.
 sitestyledescription=Påvirker %S.
-tagstyledescription=Tags: %S.
 manageaddonstitle=User Styles
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/da/overlay.dtd b/locale/da/overlay.dtd
index a3a2f9a..fdaab2a 100644
--- a/locale/da/overlay.dtd
+++ b/locale/da/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Installer fil...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Aktiver">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Deaktiver">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Afinstaller">
+<!ENTITY cmd.uninstall2.accesskey "f">
 <!ENTITY findstylebrowser "Find styles til denne hjemmeside...">
 <!ENTITY findstylebrowser.ak "F">
 <!ENTITY managestyles "Håndtér styles">
diff --git a/locale/da/overlay.properties b/locale/da/overlay.properties
index 35a4409..57fa631 100644
--- a/locale/da/overlay.properties
+++ b/locale/da/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S side specifikke style(s), %S globale style(s)
 tooltipStylesOff=Stylish - Er slået fra
 updatestyle=Er du sikker på du vil opdatere \'%S\'?
diff --git a/locale/de/common.dtd b/locale/de/common.dtd
index 3cc90a1..9b26fee 100644
--- a/locale/de/common.dtd
+++ b/locale/de/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Bearbeiten">
 <!ENTITY editstyle.ak "B">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/de/common.properties b/locale/de/common.properties
index be60cff..912b6bc 100644
--- a/locale/de/common.properties
+++ b/locale/de/common.properties
@@ -1,10 +1,4 @@
-changeTags=Das Schlagwort \"%S\" entfernen und folgende Schlagwörter hinzufügen:
-changeTagsNoCurrent=Folgende Schlagwörter hinzufügen:
-changeTagsTitle=Schlagwörter ändern
 deleteStyle=Möchten Sie %S wirklich entfernen?
 deleteStyleTitle=Stil entfernen?
 deleteStyleOK=Entfernen
-deleteStyles=Möchten Sie diese %S Stile wirklich entfernen?
-deleteStylesTitle=Stile entfernen?
-deleteStylesOK=Entfernen
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Anpassen des Aussehens von Websites sowie der Programmoberfläche mit Hilfe eigener CSS-Stile.
diff --git a/locale/de/edit.dtd b/locale/de/edit.dtd
index ff9a827..ed29312 100644
--- a/locale/de/edit.dtd
+++ b/locale/de/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome-Pfad">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Daten-URI…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "V">
 <!ENTITY save "Speichern">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Zur Installation wechseln">
-<!ENTITY switchtoinstall.ak "w">
-<!ENTITY tags "Schlagwörter">
-<!ENTITY tags.ak "S">
 <!ENTITY wraplines "Zeilen umbrechen">
 <!ENTITY wraplines.ak "Z">
 <!ENTITY xulnamespace "XUL-Namensraum als Vorgabe">
diff --git a/locale/de/edit.properties b/locale/de/edit.properties
index 8d9cdac..2019a52 100644
--- a/locale/de/edit.properties
+++ b/locale/de/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=\"%S\" bearbeiten
 newstyletitle=Neuer Stil
 missingcode=Bitte geben Sie den Code für diesen Stil ein.
 missingname=Bitte geben Sie einen Namen für diesen Stil ein.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/de/extensions.dtd b/locale/de/extensions.dtd
deleted file mode 100644
index 98a59eb..0000000
--- a/locale/de/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Add-ons">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Add-ons suchen">
-<!ENTITY extensions.label "Erweiterungen">
-<!ENTITY themes.label "Themes">
-<!ENTITY locales.label "Sprachen">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Updates">
-<!ENTITY install.label "Installation">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Updates suchen">
-<!ENTITY cmd.checkUpdatesAll.accesskey "U">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Auf Updates für Add-ons überprüfen">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Auf Updates für Themes überprüfen">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Auf Updates für Plugins überprüfen">
-<!ENTITY cmd.installLocalFile.label "Installieren…">
-<!ENTITY cmd.installLocalFile.accesskey "I">
-<!ENTITY cmd.installFileAddon.tooltip "Add-on installieren">
-<!ENTITY cmd.installFileTheme.tooltip "Theme installieren">
-<!ENTITY cmd.installUpdatesAll2.label "Updates installieren">
-<!ENTITY cmd.installUpdatesAll2.accesskey "p">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Gewählte Updates installieren">
-<!ENTITY cmd.restartApp2.label "&brandShortName; neu starten">
-<!ENTITY cmd.restartApp2.accesskey "n">
-<!ENTITY cmd.restartApp2.tooltip "&brandShortName; neu starten, um die Änderungen zu übernehmen">
-<!ENTITY cmd.skip.label "Überspringen">
-<!ENTITY cmd.skip.accesskey "Ü">
-<!ENTITY cmd.skip.tooltip "Diese Updates überspringen">
-<!ENTITY cmd.continue.label "Fortfahren">
-<!ENTITY cmd.continue.accesskey "F">
-<!ENTITY cmd.continue.tooltip "&brandShortName; weiter herunterladen">
-<!ENTITY cmd.enableAll.label "Alle aktivieren">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Alle angezeigten Add-ons aktivieren">
-<!ENTITY cmd.disableAll.label "Alle deaktivieren">
-<!ENTITY cmd.disableAll.accesskey "A">
-<!ENTITY cmd.disableAll.tooltip "Alle angezeigten Add-ons deaktivieren">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Theme benutzen">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "Ändert das Theme von &brandShortName;.">
-<!ENTITY cmd.options.label "Einstellungen">
-<!ENTITY cmd.options.accesskey "E">
-<!ENTITY cmd.options.tooltip "Einstellungen für die gewählte Erweiterung bearbeiten">
-<!ENTITY cmd.optionsUnix.label "Einstellungen">
-<!ENTITY cmd.optionsUnix.accesskey "E">
-<!ENTITY cmd.optionsUnix.tooltip "Einstellungen für die gewählte Erweiterung bearbeiten">
-<!ENTITY cmd.enable.label "Aktivieren">
-<!ENTITY cmd.enable.accesskey "A">
-<!ENTITY cmd.enable.tooltip "Dieses Add-on aktivieren, wenn &brandShortName; neu gestartet wird">
-<!ENTITY cmd.disable.label "Deaktivieren">
-<!ENTITY cmd.disable.accesskey "a">
-<!ENTITY cmd.disable.tooltip "Dieses Add-on deaktivieren, wenn &brandShortName; neu gestartet wird">
-<!ENTITY cmd.uninstall.label "Entfernen">
-<!ENTITY cmd.uninstall2.accesskey "E">
-<!ENTITY cmd.uninstall2.tooltip "Dieses Add-on deinstallieren, wenn &brandShortName; neu gestartet wird">
-<!ENTITY cmd.cancelUninstall.label "Deinstallation abbrechen">
-<!ENTITY cmd.cancelUninstall.accesskey "b">
-<!ENTITY cmd.cancelUninstall.tooltip "Die Deinstallation dieses Add-ons abbrechen">
-<!ENTITY cmd.cancelInstall.label "Installation abbrechen">
-<!ENTITY cmd.cancelInstall.accesskey "b">
-<!ENTITY cmd.cancelInstall.tooltip "Die Installation dieses Add-ons abbrechen">
-<!ENTITY cmd.cancelUpgrade.label "Update abbrechen">
-<!ENTITY cmd.cancelUpgrade.accesskey "b">
-<!ENTITY cmd.cancelUpgrade.tooltip "Das Update dieses Add-ons abbrechen">
-<!ENTITY cmd.installUpdate.label "Update installieren">
-<!ENTITY cmd.installUpdate.accesskey "U">
-<!ENTITY cmd.installUpdate.tooltip "Ein Update für dieses Add-on installieren">
-<!ENTITY cmd.showUpdateInfo.label "Information anzeigen">
-<!ENTITY cmd.showUpdateInfo.accesskey "n">
-<!ENTITY cmd.showUpdateInfo.tooltip "Weitere Information zu diesen Updates anzeigen">
-<!ENTITY cmd.hideUpdateInfo.label "Information ausblenden">
-<!ENTITY cmd.hideUpdateInfo.accesskey "u">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Information zu diesen Updates ausblenden">
-<!ENTITY cmd.installSearchResult.label "Zu &brandShortName; hinzufügen…">
-<!ENTITY cmd.installSearchResult.accesskey "Z">
-<!ENTITY cmd.installSearchResult.tooltip "Dieses Add-on herunterladen und installieren">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Abbrechen">
-<!ENTITY cancel.accesskey "b">
-<!ENTITY cancelInstall.label "Abbrechen">
-<!ENTITY cancelInstall.accesskey "b">
-<!ENTITY cancelUpgrade.label "Abbrechen">
-<!ENTITY cancelUpgrade.accesskey "b">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Homepage besuchen">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "Über dieses Add-on">
-<!ENTITY cmd.about.accesskey "Ü">
-<!ENTITY cmd.checkUpdate.label "Aktualisieren">
-<!ENTITY cmd.checkUpdate.accesskey "k">
-<!ENTITY cmd.includeUpdate.label "Update einschließen">
-<!ENTITY cmd.includeUpdate.accesskey "d">
-<!ENTITY includeUpdate.label "Dieses Update einschließen">
-<!ENTITY includeUpdate.accesskey "D">
-<!ENTITY includeUpdate.tooltip "Dieses Add-on einschließen, wenn Updates installiert werden">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Bietet keine sicheren Updates">
-<!ENTITY needsDependencies.label "Erfordert weitere Add-ons">
-<!ENTITY blocklisted.label "Zu Ihrer Sicherheit deaktiviert">
-<!ENTITY softBlocklisted.label "Bekannt für Sicherheits- oder Stabilitätsprobleme">
-<!ENTITY outdated.label "Eine aktuellere und sicherere Version ist verfügbar.">
-<!ENTITY toBeDisabled.label "Dieses Add-on wird deaktiviert, wenn &brandShortName; neu gestartet wird.">
-<!ENTITY toBeEnabled.label "Dieses Add-on wird aktiviert, wenn &brandShortName; neu gestartet wird.">
-<!ENTITY toBeInstalled.label "Dieses Add-on wird installiert, wenn &brandShortName; neu gestartet wird.">
-<!ENTITY toBeUninstalled.label "Dieses Add-on wird deinstalliert, wenn &brandShortName; neu gestartet wird.">
-<!ENTITY toBeUpdated.label "Dieses Add-on wird aktualisiert, wenn &brandShortName; neu gestartet wird.">
-<!ENTITY getExtensions.label "Erweiterungen herunterladen">
-<!ENTITY getThemes.label "Themes herunterladen">
-<!ENTITY getPlugins.label "Plugins herunterladen">
-<!ENTITY searchAddons.label "Alle Add-ons durchsuchen">
-<!ENTITY browseAddons.label "Alle Add-ons ansehen">
-<!ENTITY searchFailed.label "Es konnten keine Add-ons abgerufen werden">
-<!ENTITY recommendedHeader.label "Empfohlen">
-<!ENTITY recommendedThrobber.label "Empfohlene Add-ons abrufen">
-<!ENTITY searchThrobber.label "Add-ons suchen">
-<!ENTITY resetSearch.label "Ergebnisse löschen">
-<!ENTITY noSearchResults.label "Alle Ergebnisse sind bereits installiert oder inkompatibel.">
-<!ENTITY noRecommendedResults.label "Alle Empfehlungen sind bereits installiert oder inkompatibel.">
-<!ENTITY emptySearch.label "Keine übereinstimmenden Add-ons">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Abbrechen">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Mehr erfahren">
-<!ENTITY searchBox.label "Alle Add-ons durchsuchen">
-<!ENTITY recommendedResults.label "Alle empfohlenen Add-ons ansehen">
-<!ENTITY searchResultConnecting.label "Verbinden…">
-<!ENTITY searchResultInstalling.label "Installieren…">
-<!ENTITY searchResultFailed.label "Installation fehlgeschlagen">
-<!ENTITY searchResultInstalled.label "Installation fertiggestellt">
-<!ENTITY addonTypeExtension.label "Erweiterung">
-<!ENTITY addonTypeTheme.label "Theme">
-<!ENTITY missingThumbnail.label "Keine Vorschau">
-<!ENTITY previewNoThemeSelected.label "Kein Theme gewählt">
-<!ENTITY previewNoPreviewImage.label "Dieses Theme hat keine Vorschau">
-<!ENTITY moreInfo.label "Weitere Informationen">
-<!ENTITY infoNoAddonSelected.label "Kein Update ausgewählt">
-<!ENTITY infoNoUpdateInfo.label "Es gibt keine weitere Information zu diesem Update">
-<!ENTITY infoUpdateInfoError.label "Beim Herunterladen der Information zu diesem Update ist ein Fehler aufgetreten">
-<!ENTITY updateSuccess.label "Update erfolgreich beendet.">
-<!ENTITY installSuccess.label "Installation erfolgreich beendet.">
-<!ENTITY installSuccessRestart.label "Neustarten, um die Installation zu beenden.">
-<!ENTITY updateSuccessRestart.label "Neustarten, um das Update zu beenden.">
-<!ENTITY installWaiting.label "Warten…">
-<!ENTITY installIncompatibleUpdate.label "Kompatibilität überprüfen…">
-<!ENTITY installFinishing.label "Installieren…">
-<!ENTITY installFailure.label "Installation fehlgeschlagen">
-<!ENTITY progressStatus.label "Überprüfe auf verfügbare Updates">
-<!ENTITY eula.title "Benutzer-Lizenzvereinbarung">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Akzeptieren und Installieren…">
-<!ENTITY blocklist.blocked.label "Blockiert">
-<!ENTITY blocklist.checkbox.label "Deaktivieren">
diff --git a/locale/de/install.dtd b/locale/de/install.dtd
index 077204b..b243e23 100644
--- a/locale/de/install.dtd
+++ b/locale/de/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Vorschau">
 <!ENTITY preview.ak "v">
-<!ENTITY switchtoedit "Zur Bearbeitung wechseln">
-<!ENTITY switchtoedit.ak "w">
 <!ENTITY title "Benutzerstil installieren">
diff --git a/locale/de/manage.dtd b/locale/de/manage.dtd
index 219f656..fc1a8de 100644
--- a/locale/de/manage.dtd
+++ b/locale/de/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Schlagwörter ändern">
-<!ENTITY changetags.ak "S">
-<!ENTITY done "Fertig">
-<!ENTITY done.ak "F">
 <!ENTITY filter "Suche">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Benutzerstile">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Besuchen Sie">
 <!ENTITY nostylesend "für Informationen über die Verwendung von Stylish.">
 <!ENTITY sortenabled "Aktiviert">
 <!ENTITY sortname "Name">
-<!ENTITY sorttag "Schlagwort">
 <!ENTITY sorttype "Typ">
-<!ENTITY sortgroup "Sortieren nach:">
-<!ENTITY update "Update">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Neuen Stil erstellen">
 <!ENTITY writenew.ak "N">
diff --git a/locale/de/manage.properties b/locale/de/manage.properties
index 000ccfd..8bb8a93 100644
--- a/locale/de/manage.properties
+++ b/locale/de/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Aktiviert
-groupEnabledFalse=Deaktiviert
-groupTagNone=Keine Schlagwörter
-groupTypeApp=Programmoberfläche
-groupTypeGlobal=Global
-groupTypeNone=Kein Typ
-groupTypeSite=Website
-styleRegistrationOff=Alle Stile sind ausgeschaltet.
-styleRegistrationTurnOn=Stile einschalten.
-styleRegistrationTurnOn.ak=e
-updateAvailable=Ein Update ist verfügbar.
-updateCheckError=Bei der Suche nach Updates ist ein Fehler aufgetreten.
-updateCompleted=Update vollständig.
-updateFailed=Update fehlgeschlagen.
-updateNotFound=Keine Updates gefunden.
-updateNotPossible=Updates nicht möglich.
 appstyledescription=Wirkt sich auf die Programmoberfläche aus.
 globalstyledescription=Kann sich auf alles auswirken.
 sitestyledescription=Wirkt sich auf \"%S\" aus.
-tagstyledescription=Schlagwörter: %S.
 manageaddonstitle=Benutzerstile
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/de/overlay.dtd b/locale/de/overlay.dtd
index a955538..1eeb6fe 100644
--- a/locale/de/overlay.dtd
+++ b/locale/de/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Datei installieren…">
 <!ENTITY addfile.ak "i">
+<!ENTITY cmd.enable.label "Aktivieren">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Deaktivieren">
+<!ENTITY cmd.disable.accesskey "a">
+<!ENTITY cmd.uninstall.label "Entfernen">
+<!ENTITY cmd.uninstall2.accesskey "E">
 <!ENTITY findstylebrowser "Stile für diese Seite suchen">
 <!ENTITY findstylebrowser.ak "s">
 <!ENTITY managestyles "Stile verwalten…">
diff --git a/locale/de/overlay.properties b/locale/de/overlay.properties
index 590c20f..fd0a7de 100644
--- a/locale/de/overlay.properties
+++ b/locale/de/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S Website-Stil(e), %S globale Stil(e)
 tooltipStylesOff=Stylish - Stile sind ausgeschaltet
 updatestyle=Möchten Sie wirklich nach Updates für \"%S\" suchen?
diff --git a/locale/en-GB/common.dtd b/locale/en-GB/common.dtd
deleted file mode 100644
index 186a677..0000000
--- a/locale/en-GB/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "Edit">
-<!ENTITY editstyle.ak "E">
-<!ENTITY stylish "Stylish">
diff --git a/locale/en-GB/common.properties b/locale/en-GB/common.properties
deleted file mode 100644
index 92ab590..0000000
--- a/locale/en-GB/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=Remove the tag \'%S\' and add the following tags:
-changeTagsNoCurrent=Add the following tags:
-changeTagsTitle=Change tags
-deleteStyle=Are you sure you wish to uninstall \'%S\'?
-deleteStyleTitle=Uninstall style?
-deleteStyleOK=Uninstall
-deleteStyles=Are you sure you wish to uninstall these %S styles?
-deleteStylesTitle=Uninstall styles?
-deleteStylesOK=Uninstall
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Restyle the web with Stylish, a user styles manager.
diff --git a/locale/en-GB/domi.dtd b/locale/en-GB/domi.dtd
deleted file mode 100644
index 80bc8e5..0000000
--- a/locale/en-GB/domi.dtd
+++ /dev/null
@@ -1 +0,0 @@
-<!ENTITY copyselector "Copy Selector">
diff --git a/locale/en-GB/edit.dtd b/locale/en-GB/edit.dtd
deleted file mode 100644
index bfe70ef..0000000
--- a/locale/en-GB/edit.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-<!ENTITY chromefolder "Chrome folder path">
-<!ENTITY chromefolder.ak "C">
-<!ENTITY dataURI "Data URI…">
-<!ENTITY dataURI.ak "D">
-<!ENTITY htmlnamespace "HTML namespace as default">
-<!ENTITY htmlnamespace.ak "H">
-<!ENTITY insert "Insert">
-<!ENTITY insert.ak "I">
-<!ENTITY name "Name">
-<!ENTITY name.ak "n">
-<!ENTITY openintexternaleditor "Open in external editor">
-<!ENTITY openintexternaleditor.ak "O">
-<!ENTITY preview "Preview">
-<!ENTITY preview.ak "P">
-<!ENTITY save "Save">
-<!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Switch to Install">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Tags">
-<!ENTITY tags.ak "T">
-<!ENTITY wraplines "Wrap lines">
-<!ENTITY wraplines.ak "W">
-<!ENTITY xulnamespace "XUL namespace as default">
-<!ENTITY xulnamespace.ak "X">
diff --git a/locale/en-GB/edit.properties b/locale/en-GB/edit.properties
deleted file mode 100644
index 2defadc..0000000
--- a/locale/en-GB/edit.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-dataURIDialogTitle=Choose File to Insert
-editstyletitle=Editing \'%S\'
-newstyletitle=New style
-missingcode=Enter some code for this style.
-missingname=Give this style a name.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/en-GB/extensions.dtd b/locale/en-GB/extensions.dtd
deleted file mode 100644
index 793da71..0000000
--- a/locale/en-GB/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Add-ons">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Get Add-ons">
-<!ENTITY extensions.label "Extensions">
-<!ENTITY themes.label "Themes">
-<!ENTITY locales.label "Languages">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Updates">
-<!ENTITY install.label "Installation">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Find Updates">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Finds Updates to your Add-ons">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Finds Updates to your Themes">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Finds Updates to your Plugins">
-<!ENTITY cmd.installLocalFile.label "Install…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Install an Add-on">
-<!ENTITY cmd.installFileTheme.tooltip "Install a Theme">
-<!ENTITY cmd.installUpdatesAll2.label "Install Updates">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Install the selected updates">
-<!ENTITY cmd.restartApp2.label "Restart &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Restart &brandShortName; to apply changes">
-<!ENTITY cmd.skip.label "Skip">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "Skip these updates">
-<!ENTITY cmd.continue.label "Continue">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continue loading &brandShortName;">
-<!ENTITY cmd.enableAll.label "Enable All">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "Enable all displayed Add-ons">
-<!ENTITY cmd.disableAll.label "Disable All">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Disable all displayed Add-ons">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Use Theme">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "Changes &brandShortName;\'s Theme">
-<!ENTITY cmd.options.label "Options">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Set Options for the selected Extension">
-<!ENTITY cmd.optionsUnix.label "Preferences">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Edit Preferences for the selected Extension">
-<!ENTITY cmd.enable.label "Enable">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "Enable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.disable.label "Disable">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Disable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.uninstall.label "Uninstall">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "Uninstall this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.cancelUninstall.label "Cancel Uninstall">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancel the uninstall of this Add-on">
-<!ENTITY cmd.cancelInstall.label "Cancel Install">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancel the install of this Add-on">
-<!ENTITY cmd.cancelUpgrade.label "Cancel Upgrade">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancel the upgrade of this Add-on">
-<!ENTITY cmd.installUpdate.label "Install Update">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Install an update for this Add-on">
-<!ENTITY cmd.showUpdateInfo.label "Show Information">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "Show more information about these updates">
-<!ENTITY cmd.hideUpdateInfo.label "Hide Information">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Hide information about these updates">
-<!ENTITY cmd.installSearchResult.label "Add to &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Download and install this add-on">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancel">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancel">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancel">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visit Home Page">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "About this Add-on">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Find Update">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "Include Update">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Include this update">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Include this Add-on when installing the updates">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Does not provide secure updates.">
-<!ENTITY needsDependencies.label "Requires additional items.">
-<!ENTITY blocklisted.label "Disabled for your protection.">
-<!ENTITY softBlocklisted.label "Known to cause security or stability issues.">
-<!ENTITY outdated.label "A newer, safer version is available.">
-<!ENTITY toBeDisabled.label "This add-on will be disabled when &brandShortName; is restarted.">
-<!ENTITY toBeEnabled.label "This add-on will be enabled when &brandShortName; is restarted.">
-<!ENTITY toBeInstalled.label "This add-on will be installed when &brandShortName; is restarted.">
-<!ENTITY toBeUninstalled.label "This add-on will be uninstalled when &brandShortName; is restarted.">
-<!ENTITY toBeUpdated.label "This add-on will be updated when &brandShortName; is restarted.">
-<!ENTITY getExtensions.label "Get Extensions">
-<!ENTITY getThemes.label "Get Themes">
-<!ENTITY getPlugins.label "Get Plugins">
-<!ENTITY searchAddons.label "Search All Add-ons">
-<!ENTITY browseAddons.label "Browse All Add-ons">
-<!ENTITY searchFailed.label "&brandShortName; couldn\'t retrieve add-ons">
-<!ENTITY recommendedHeader.label "Recommended">
-<!ENTITY recommendedThrobber.label "Retrieving recommended add-ons">
-<!ENTITY searchThrobber.label "Searching add-ons">
-<!ENTITY resetSearch.label "Clear Results">
-<!ENTITY noSearchResults.label "All results are already installed or incompatible.">
-<!ENTITY noRecommendedResults.label "All recommendations are already installed or incompatible.">
-<!ENTITY emptySearch.label "No matching add-ons">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Cancel">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Learn More">
-<!ENTITY searchBox.label "Search All Add-ons">
-<!ENTITY recommendedResults.label "See All Recommended Add-ons">
-<!ENTITY searchResultConnecting.label "Connecting…">
-<!ENTITY searchResultInstalling.label "Installing…">
-<!ENTITY searchResultFailed.label "Install Failed">
-<!ENTITY searchResultInstalled.label "Install Complete">
-<!ENTITY addonTypeExtension.label "Extension">
-<!ENTITY addonTypeTheme.label "Theme">
-<!ENTITY missingThumbnail.label "No Preview">
-<!ENTITY previewNoThemeSelected.label "No Theme Selected">
-<!ENTITY previewNoPreviewImage.label "This Theme does not have a Preview Image">
-<!ENTITY moreInfo.label "More Information">
-<!ENTITY infoNoAddonSelected.label "No Update Selected">
-<!ENTITY infoNoUpdateInfo.label "This update does not have any additional information">
-<!ENTITY infoUpdateInfoError.label "There was an error loading the information about this update">
-<!ENTITY updateSuccess.label "Update completed successfully.">
-<!ENTITY installSuccess.label "Install completed successfully.">
-<!ENTITY installSuccessRestart.label "Restart to complete the installation.">
-<!ENTITY updateSuccessRestart.label "Restart to complete the update.">
-<!ENTITY installWaiting.label "Waiting…">
-<!ENTITY installIncompatibleUpdate.label "Checking compatibility…">
-<!ENTITY installFinishing.label "Installing…">
-<!ENTITY installFailure.label "Install failed.">
-<!ENTITY progressStatus.label "Checking For Updates">
-<!ENTITY eula.title "End-User Licence Agreement">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accept and Install…">
-<!ENTITY blocklist.blocked.label "Blocked">
-<!ENTITY blocklist.checkbox.label "Disable">
diff --git a/locale/en-GB/install.dtd b/locale/en-GB/install.dtd
deleted file mode 100644
index 0cbe016..0000000
--- a/locale/en-GB/install.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<!ENTITY entername "Give this style a name:">
-<!ENTITY install "Install">
-<!ENTITY install.ak "I">
-<!ENTITY preview "Preview">
-<!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Switch to Edit">
-<!ENTITY switchtoedit.ak "E">
-<!ENTITY title "Install user style">
diff --git a/locale/en-GB/manage.dtd b/locale/en-GB/manage.dtd
deleted file mode 100644
index 80bb428..0000000
--- a/locale/en-GB/manage.dtd
+++ /dev/null
@@ -1,19 +0,0 @@
-<!ENTITY changetags "Change Tags">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Done">
-<!ENTITY done.ak "D">
-<!ENTITY filter "Search">
-<!ENTITY installfromurls "Install from URLs…">
-<!ENTITY manageaddonstitle "User Styles">
-<!ENTITY managetitle "Stylish">
-<!ENTITY nostylesstart "Visit">
-<!ENTITY nostylesend "for information on how to use Stylish.">
-<!ENTITY sortenabled "Enabled">
-<!ENTITY sortname "Name">
-<!ENTITY sorttag "Tag">
-<!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Sort by:">
-<!ENTITY update "Update">
-<!ENTITY update.ak "U">
-<!ENTITY writenew "Write New Style">
-<!ENTITY writenew.ak "W">
diff --git a/locale/en-GB/manage.properties b/locale/en-GB/manage.properties
deleted file mode 100644
index 3e8cb10..0000000
--- a/locale/en-GB/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Enabled
-groupEnabledFalse=Disabled
-groupTagNone=No tags
-groupTypeApp=Application
-groupTypeGlobal=Global
-groupTypeNone=No type
-groupTypeSite=Site
-styleRegistrationOff=All styles are turned off.
-styleRegistrationTurnOn=Turn styles on
-styleRegistrationTurnOn.ak=T
-updateAvailable=An update is available.
-updateCheckError=An error occurred checking for updates.
-updateCompleted=Update completed.
-updateFailed=Update failed.
-updateNotFound=No updates found.
-updateNotPossible=Updates not possible.
-appstyledescription=Affects the user interface.
-globalstyledescription=Can affect anything.
-sitestyledescription=Affects %S.
-tagstyledescription=Tags: %S.
-manageaddonstitle=User Styles
-installfromurlsprompttitle=Install from URLs
-installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %S.
diff --git a/locale/en-GB/overlay.dtd b/locale/en-GB/overlay.dtd
deleted file mode 100644
index 6e0de44..0000000
--- a/locale/en-GB/overlay.dtd
+++ /dev/null
@@ -1,12 +0,0 @@
-<!ENTITY addfile "Install file…">
-<!ENTITY addfile.ak "I">
-<!ENTITY findstylebrowser "Find styles for this site…">
-<!ENTITY findstylebrowser.ak "F">
-<!ENTITY managestyles "Manage styles…">
-<!ENTITY managestyles.ak "M">
-<!ENTITY turnon "Turn all styles on">
-<!ENTITY turnon.ak "T">
-<!ENTITY turnoff "Turn all styles off">
-<!ENTITY turnoff.ak "T">
-<!ENTITY writestyle "Write new style">
-<!ENTITY writestyle.ak "W">
diff --git a/locale/en-GB/overlay.properties b/locale/en-GB/overlay.properties
deleted file mode 100644
index 978ee94..0000000
--- a/locale/en-GB/overlay.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-tooltip=Stylish - %S site style(s), %S global style(s)
-tooltipStylesOff=Stylish - Styles are off
-updatestyle=Are you sure you want to update \'%S\'?
-updatestyleok=Update
-updatestyletitle=Update Style
-writeblank=Blank style…
-writeblankaccesskey=B
-writefordomain=For %S…
-writeforsite=For this URL…
-writeforsiteaccesskey=U
diff --git a/locale/en-US/common.dtd b/locale/en-US/common.dtd
index 186a677..f41cba4 100644
--- a/locale/en-US/common.dtd
+++ b/locale/en-US/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Edit">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/en-US/common.properties b/locale/en-US/common.properties
index 92ab590..c3d293a 100644
--- a/locale/en-US/common.properties
+++ b/locale/en-US/common.properties
@@ -1,10 +1,4 @@
-changeTags=Remove the tag \'%S\' and add the following tags:
-changeTagsNoCurrent=Add the following tags:
-changeTagsTitle=Change tags
 deleteStyle=Are you sure you wish to uninstall \'%S\'?
 deleteStyleTitle=Uninstall style?
 deleteStyleOK=Uninstall
-deleteStyles=Are you sure you wish to uninstall these %S styles?
-deleteStylesTitle=Uninstall styles?
-deleteStylesOK=Uninstall
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Restyle the web with Stylish, a user styles manager.
diff --git a/locale/en-US/edit.dtd b/locale/en-US/edit.dtd
index f5047fc..dcf5f3a 100644
--- a/locale/en-US/edit.dtd
+++ b/locale/en-US/edit.dtd
@@ -1,6 +1,8 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome folder path">
 <!ENTITY chromefolder.ak "C">
-<!ENTITY dataURI "Data URI...">
+<!ENTITY dataURI "Data URI…">
 <!ENTITY dataURI.ak "D">
 <!ENTITY htmlnamespace "HTML namespace as default">
 <!ENTITY htmlnamespace.ak "H">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "Save">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Switch to Install">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Tags">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Wrap lines">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "XUL namespace as default">
diff --git a/locale/en-US/edit.properties b/locale/en-US/edit.properties
index 2defadc..e2f49eb 100644
--- a/locale/en-US/edit.properties
+++ b/locale/en-US/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Editing \'%S\'
 newstyletitle=New style
 missingcode=Enter some code for this style.
 missingname=Give this style a name.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/en-US/extensions.dtd b/locale/en-US/extensions.dtd
deleted file mode 100644
index 54a725a..0000000
--- a/locale/en-US/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Add-ons">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Get Add-ons">
-<!ENTITY extensions.label "Extensions">
-<!ENTITY themes.label "Themes">
-<!ENTITY locales.label "Languages">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Updates">
-<!ENTITY install.label "Installation">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Find Updates">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Finds Updates to your Add-ons">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Finds Updates to your Themes">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Finds Updates to your Plugins">
-<!ENTITY cmd.installLocalFile.label "Install…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Install an Add-on">
-<!ENTITY cmd.installFileTheme.tooltip "Install a Theme">
-<!ENTITY cmd.installUpdatesAll2.label "Install Updates">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Install the selected updates">
-<!ENTITY cmd.restartApp2.label "Restart &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Restart &brandShortName; to apply changes">
-<!ENTITY cmd.skip.label "Skip">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "Skip these updates">
-<!ENTITY cmd.continue.label "Continue">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continue loading &brandShortName;">
-<!ENTITY cmd.enableAll.label "Enable All">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "Enable all displayed Add-ons">
-<!ENTITY cmd.disableAll.label "Disable All">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Disable all displayed Add-ons">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Use Theme">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "Changes &brandShortName;\'s Theme">
-<!ENTITY cmd.options.label "Options">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Set Options for the selected Extension">
-<!ENTITY cmd.optionsUnix.label "Preferences">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Edit Preferences for the selected Extension">
-<!ENTITY cmd.enable.label "Enable">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "Enable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.disable.label "Disable">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Disable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.uninstall.label "Uninstall">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "Uninstall this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.cancelUninstall.label "Cancel Uninstall">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancel the uninstall of this Add-on">
-<!ENTITY cmd.cancelInstall.label "Cancel Install">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancel the install of this Add-on">
-<!ENTITY cmd.cancelUpgrade.label "Cancel Upgrade">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancel the upgrade of this Add-on">
-<!ENTITY cmd.installUpdate.label "Install Update">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Install an update for this Add-on">
-<!ENTITY cmd.showUpdateInfo.label "Show Information">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "Show more information about these updates">
-<!ENTITY cmd.hideUpdateInfo.label "Hide Information">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Hide information about these updates">
-<!ENTITY cmd.installSearchResult.label "Add to &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Download and install this add-on">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancel">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancel">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancel">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visit Home Page">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "About this Add-on">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Find Update">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "Include Update">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Include this update">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Include this Add-on when installing the updates">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Does not provide secure updates.">
-<!ENTITY needsDependencies.label "Requires additional items.">
-<!ENTITY blocklisted.label "Disabled for your protection.">
-<!ENTITY softBlocklisted.label "Known to cause security or stability issues.">
-<!ENTITY outdated.label "A newer, safer version is available.">
-<!ENTITY toBeDisabled.label "This add-on will be disabled when &brandShortName; is restarted.">
-<!ENTITY toBeEnabled.label "This add-on will be enabled when &brandShortName; is restarted.">
-<!ENTITY toBeInstalled.label "This add-on will be installed when &brandShortName; is restarted.">
-<!ENTITY toBeUninstalled.label "This add-on will be uninstalled when &brandShortName; is restarted.">
-<!ENTITY toBeUpdated.label "This add-on will be updated when &brandShortName; is restarted.">
-<!ENTITY getExtensions.label "Get Extensions">
-<!ENTITY getThemes.label "Get Themes">
-<!ENTITY getPlugins.label "Get Plugins">
-<!ENTITY searchAddons.label "Search All Add-ons">
-<!ENTITY browseAddons.label "Browse All Add-ons">
-<!ENTITY searchFailed.label "&brandShortName; couldn\'t retrieve add-ons">
-<!ENTITY recommendedHeader.label "Recommended">
-<!ENTITY recommendedThrobber.label "Retrieving recommended add-ons">
-<!ENTITY searchThrobber.label "Searching add-ons">
-<!ENTITY resetSearch.label "Clear Results">
-<!ENTITY noSearchResults.label "All results are already installed or incompatible.">
-<!ENTITY noRecommendedResults.label "All recommendations are already installed or incompatible.">
-<!ENTITY emptySearch.label "No matching add-ons">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Cancel">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Learn More">
-<!ENTITY searchBox.label "Search All Add-ons">
-<!ENTITY recommendedResults.label "See All Recommended Add-ons">
-<!ENTITY searchResultConnecting.label "Connecting…">
-<!ENTITY searchResultInstalling.label "Installing…">
-<!ENTITY searchResultFailed.label "Install Failed">
-<!ENTITY searchResultInstalled.label "Install Complete">
-<!ENTITY addonTypeExtension.label "Extension">
-<!ENTITY addonTypeTheme.label "Theme">
-<!ENTITY missingThumbnail.label "No Preview">
-<!ENTITY previewNoThemeSelected.label "No Theme Selected">
-<!ENTITY previewNoPreviewImage.label "This Theme does not have a Preview Image">
-<!ENTITY moreInfo.label "More Information">
-<!ENTITY infoNoAddonSelected.label "No Update Selected">
-<!ENTITY infoNoUpdateInfo.label "This update does not have any additional information">
-<!ENTITY infoUpdateInfoError.label "There was an error loading the information about this update">
-<!ENTITY updateSuccess.label "Update completed successfully.">
-<!ENTITY installSuccess.label "Install completed successfully.">
-<!ENTITY installSuccessRestart.label "Restart to complete the installation.">
-<!ENTITY updateSuccessRestart.label "Restart to complete the update.">
-<!ENTITY installWaiting.label "Waiting…">
-<!ENTITY installIncompatibleUpdate.label "Checking compatibility…">
-<!ENTITY installFinishing.label "Installing…">
-<!ENTITY installFailure.label "Install failed.">
-<!ENTITY progressStatus.label "Checking For Updates">
-<!ENTITY eula.title "End-User License Agreement">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accept and Install…">
-<!ENTITY blocklist.blocked.label "Blocked">
-<!ENTITY blocklist.checkbox.label "Disable">
diff --git a/locale/en-US/install.dtd b/locale/en-US/install.dtd
index 0cbe016..179f97f 100644
--- a/locale/en-US/install.dtd
+++ b/locale/en-US/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Preview">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Switch to Edit">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Install user style">
diff --git a/locale/en-US/manage.dtd b/locale/en-US/manage.dtd
index faf6b6a..df05cbb 100644
--- a/locale/en-US/manage.dtd
+++ b/locale/en-US/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Change Tags">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Done">
-<!ENTITY done.ak "D">
 <!ENTITY filter "Search">
-<!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "User Styles">
+<!ENTITY installfromurls "Install from URLs…">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visit">
 <!ENTITY nostylesend "for information on how to use Stylish.">
 <!ENTITY sortenabled "Enabled">
 <!ENTITY sortname "Name">
-<!ENTITY sorttag "Tag">
 <!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Sort by:">
-<!ENTITY update "Update">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Write New Style">
 <!ENTITY writenew.ak "W">
diff --git a/locale/en-US/manage.properties b/locale/en-US/manage.properties
index bb54b6d..34c1448 100644
--- a/locale/en-US/manage.properties
+++ b/locale/en-US/manage.properties
@@ -1,24 +1,7 @@
-groupEnabledTrue=Enabled
-groupEnabledFalse=Disabled
-groupTagNone=No tags
-groupTypeApp=Application
-groupTypeGlobal=Global
-groupTypeNone=No type
-groupTypeSite=Site
-styleRegistrationOff=All styles are turned off.
-styleRegistrationTurnOn=Turn styles on
-styleRegistrationTurnOn.ak=T
-updateAvailable=An update is available.
-updateCheckError=An error occurred checking for updates.
-updateCompleted=Update completed.
-updateFailed=Update failed.
-updateNotFound=No updates found.
-updateNotPossible=Updates not possible.
 appstyledescription=Affects the user interface.
 globalstyledescription=Can affect anything.
 sitestyledescription=Affects %S.
-tagstyledescription=Tags: %S.
 manageaddonstitle=User Styles
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %s.
+installfromurlserror=Could not install from the following URLs: %S.
diff --git a/locale/en-US/overlay.dtd b/locale/en-US/overlay.dtd
index e19650e..3479d8d 100644
--- a/locale/en-US/overlay.dtd
+++ b/locale/en-US/overlay.dtd
@@ -1,8 +1,14 @@
-<!ENTITY addfile "Install file...">
+<!ENTITY addfile "Install file…">
 <!ENTITY addfile.ak "I">
-<!ENTITY findstylebrowser "Find styles for this site...">
+<!ENTITY cmd.enable.label "Enable">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "Disable">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Uninstall">
+<!ENTITY cmd.uninstall2.accesskey "U">
+<!ENTITY findstylebrowser "Find styles for this site…">
 <!ENTITY findstylebrowser.ak "F">
-<!ENTITY managestyles "Manage styles...">
+<!ENTITY managestyles "Manage styles…">
 <!ENTITY managestyles.ak "M">
 <!ENTITY turnon "Turn all styles on">
 <!ENTITY turnon.ak "T">
diff --git a/locale/en-US/overlay.properties b/locale/en-US/overlay.properties
index 7b328e5..ccd6fd4 100644
--- a/locale/en-US/overlay.properties
+++ b/locale/en-US/overlay.properties
@@ -1,10 +1,14 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S site style(s), %S global style(s)
 tooltipStylesOff=Stylish - Styles are off
 updatestyle=Are you sure you want to update \'%S\'?
 updatestyleok=Update
 updatestyletitle=Update Style
-writeblank=Blank style...
+writeblank=Blank style…
 writeblankaccesskey=B
-writefordomain=For %S...
-writeforsite=For this URL...
+writefordomain=For %S…
+writeforsite=For this URL…
 writeforsiteaccesskey=U
diff --git a/locale/es-AR/common.dtd b/locale/es-AR/common.dtd
index ee92e3e..538340a 100644
--- a/locale/es-AR/common.dtd
+++ b/locale/es-AR/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Editar">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/es-AR/common.properties b/locale/es-AR/common.properties
index e493ff0..b12111d 100644
--- a/locale/es-AR/common.properties
+++ b/locale/es-AR/common.properties
@@ -1,10 +1,4 @@
-changeTags=Quitar la etiqueta \'%S\' y agregar las siguientes etiquetas:
-changeTagsNoCurrent=Agregar las siguientes etiquetas:
-changeTagsTitle=Cambiar etiquetas
 deleteStyle=¿Estás seguro que querés desinstalar \'%S\'?
 deleteStyleTitle=¿Desinstalar estilo?
 deleteStyleOK=Desinstalar
-deleteStyles=¿Estás seguro que querés desinstalar estos %S estilos?
-deleteStylesTitle=¿Desinstalar estilos?
-deleteStylesOK=Desinstalar
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Dale un lavado de cara a la web con Stylish: un administrador de estilos, controlado por el usuario.
diff --git a/locale/es-AR/edit.dtd b/locale/es-AR/edit.dtd
index 9092985..069d511 100644
--- a/locale/es-AR/edit.dtd
+++ b/locale/es-AR/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Ruta de la carpeta de chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI de datos…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "Guardar">
 <!ENTITY save.ak "G">
-<!ENTITY switchtoinstall "Intercambiar para instalar">
-<!ENTITY switchtoinstall.ak "t">
-<!ENTITY tags "Etiquetas">
-<!ENTITY tags.ak "E">
 <!ENTITY wraplines "Ajustar líneas">
 <!ENTITY wraplines.ak "j">
 <!ENTITY xulnamespace "Espacio de nombre XUL por defecto">
diff --git a/locale/es-AR/edit.properties b/locale/es-AR/edit.properties
index a33b03e..7cd61a0 100644
--- a/locale/es-AR/edit.properties
+++ b/locale/es-AR/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Editar \'%S\'
 newstyletitle=Nuevo estilo
 missingcode=Ingresá algo de código para este estilo.
 missingname=Nombrá este estilo.
-unsavedchanges=¿Querés guardar los cambios a este estilo?
-unsavedchangestitle=¿Guardar cambios?
diff --git a/locale/es-AR/extensions.dtd b/locale/es-AR/extensions.dtd
deleted file mode 100644
index fd529a5..0000000
--- a/locale/es-AR/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Complementos">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Obtener complementos">
-<!ENTITY extensions.label "Extensiones">
-<!ENTITY themes.label "Temas">
-<!ENTITY locales.label "Idiomas">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Actualizaciones">
-<!ENTITY install.label "Instalación">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Buscar actualizaciones">
-<!ENTITY cmd.checkUpdatesAll.accesskey "B">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Buscar actualizaciones a tus complementos">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Buscar actualizaciones a tus temas">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Buscar actualizaciones a tus plugins">
-<!ENTITY cmd.installLocalFile.label "Instalar…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Instalar un complemento">
-<!ENTITY cmd.installFileTheme.tooltip "Instalar un tema">
-<!ENTITY cmd.installUpdatesAll2.label "Instalar actualizaciones">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Instalar las actualizaciones seleccionadas">
-<!ENTITY cmd.restartApp2.label "Reiniciar &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Reiniciar &brandShortName; para aplicar los cambios">
-<!ENTITY cmd.skip.label "Saltear">
-<!ENTITY cmd.skip.accesskey "S">
-<!ENTITY cmd.skip.tooltip "Saltear estas actualizaciones">
-<!ENTITY cmd.continue.label "Continuar">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continuar cargando &brandShortName;">
-<!ENTITY cmd.enableAll.label "Habilitar todo">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "Habilitar todos los complementos mostrados">
-<!ENTITY cmd.disableAll.label "Deshabilitar todo">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Deshabilitar todos los complementos mostrados">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Usar tema">
-<!ENTITY cmd.useTheme.accesskey "U">
-<!ENTITY cmd.useTheme.tooltip "Cambiar el tema de &brandShortName;">
-<!ENTITY cmd.options.label "Opciones">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Cambiar opciones para la extensión seleccionada">
-<!ENTITY cmd.optionsUnix.label "Preferencias">
-<!ENTITY cmd.optionsUnix.accesskey "r">
-<!ENTITY cmd.optionsUnix.tooltip "Editar preferencias para la extensión seleccionada">
-<!ENTITY cmd.enable.label "Habilitar">
-<!ENTITY cmd.enable.accesskey "H">
-<!ENTITY cmd.enable.tooltip "Habilitar este complemento cuando se reinicie &brandShortName;">
-<!ENTITY cmd.disable.label "Deshabilitar">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Deshabilitar este complemento cuando se reinicie &brandShortName;">
-<!ENTITY cmd.uninstall.label "Desinstalar">
-<!ENTITY cmd.uninstall2.accesskey "s">
-<!ENTITY cmd.uninstall2.tooltip "Desinstalar este complemento cuando se reinicie &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Cancelar desinstalación">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancelar la desinstalación de este complemento">
-<!ENTITY cmd.cancelInstall.label "Cancelar instalación">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancelar la instalación de este complemento">
-<!ENTITY cmd.cancelUpgrade.label "Cancelar actualización">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancelar la actualización de este complemento">
-<!ENTITY cmd.installUpdate.label "Instalar actualización">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Instalar una actualización para este complemento">
-<!ENTITY cmd.showUpdateInfo.label "Mostrar información">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "Mostrar más información sobre estas actualizaciones">
-<!ENTITY cmd.hideUpdateInfo.label "Ocultar información">
-<!ENTITY cmd.hideUpdateInfo.accesskey "O">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Ocultar información sobre estas actualizaciones">
-<!ENTITY cmd.installSearchResult.label "Agregar a &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Descargar e instalar este complemento">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancelar">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancelar">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancelar">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visitar sitio web oficial">
-<!ENTITY cmd.homepage.accesskey "V">
-<!ENTITY cmd.about2.label "Acerca de este complemento">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Buscar actualización">
-<!ENTITY cmd.checkUpdate.accesskey "B">
-<!ENTITY cmd.includeUpdate.label "Incluir actualización">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Incluir esta actualización">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Incluir este complemento cuando se instalen las actualizaciones">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "No provee actualizaciones seguras.">
-<!ENTITY needsDependencies.label "Requiere ítems adicionales.">
-<!ENTITY blocklisted.label "Deshabilitado para su protección.">
-<!ENTITY softBlocklisted.label "Se sabe que causa problemas de seguridad o estabilidad.">
-<!ENTITY outdated.label "Hay disponible una versión más segura.">
-<!ENTITY toBeDisabled.label "Este complemento se deshabilitará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeEnabled.label "Este complemento se habilitará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeInstalled.label "Este complemento se instalará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Este complemento se desinstalará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeUpdated.label "Este complemento se actualizará cuando se reinicie &brandShortName;.">
-<!ENTITY getExtensions.label "Obtener extensiones">
-<!ENTITY getThemes.label "Obtener temas">
-<!ENTITY getPlugins.label "Obtener plugins">
-<!ENTITY searchAddons.label "Buscar en todos los complementos">
-<!ENTITY browseAddons.label "Revisar todos los complementos">
-<!ENTITY searchFailed.label "&brandShortName; no pudo devolver complementos">
-<!ENTITY recommendedHeader.label "Recomendado">
-<!ENTITY recommendedThrobber.label "Devolviendo complementos recomendados">
-<!ENTITY searchThrobber.label "Buscando complementos">
-<!ENTITY resetSearch.label "Limpiar resultados">
-<!ENTITY noSearchResults.label "Todos los resultados ya están instalados o son incompatibles.">
-<!ENTITY noRecommendedResults.label "Todas las recomendaciones ya están instaladas o son incompatibles.">
-<!ENTITY emptySearch.label "No se encontraron complementos">
-<!ENTITY emptySearch.button "Aceptar">
-<!ENTITY cancelSearch.button "Cancelar">
-<!ENTITY searchFailed.button "Aceptar">
-<!ENTITY searchResultHomepage.value "Leer más">
-<!ENTITY searchBox.label "Buscar en todos los complementos">
-<!ENTITY recommendedResults.label "Ver todos los complementos recomendados">
-<!ENTITY searchResultConnecting.label "Conectando…">
-<!ENTITY searchResultInstalling.label "Instalando…">
-<!ENTITY searchResultFailed.label "Falló la instalación">
-<!ENTITY searchResultInstalled.label "Instalación completa">
-<!ENTITY addonTypeExtension.label "Extensión">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Sin vista previa">
-<!ENTITY previewNoThemeSelected.label "No hay ningún tema seleccionado">
-<!ENTITY previewNoPreviewImage.label "Este tema no tiene una vista previa">
-<!ENTITY moreInfo.label "Más información">
-<!ENTITY infoNoAddonSelected.label "No se seleccionó ninguna actualización">
-<!ENTITY infoNoUpdateInfo.label "Esta actualización no tiene información adicional">
-<!ENTITY infoUpdateInfoError.label "Hubo un error cargando la información de esta actualización">
-<!ENTITY updateSuccess.label "Actualización exitosa.">
-<!ENTITY installSuccess.label "Instalación exitosa.">
-<!ENTITY installSuccessRestart.label "Reiniciar para completar la instalación.">
-<!ENTITY updateSuccessRestart.label "Reiniciar para completar la actualización.">
-<!ENTITY installWaiting.label "Esperando…">
-<!ENTITY installIncompatibleUpdate.label "Verificando compatibilidad…">
-<!ENTITY installFinishing.label "Instalando…">
-<!ENTITY installFailure.label "Falló la instalación.">
-<!ENTITY progressStatus.label "Buscando actualizaciones">
-<!ENTITY eula.title "Contrato de licencia">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Aceptar e instalar…">
-<!ENTITY blocklist.blocked.label "Bloqueado">
-<!ENTITY blocklist.checkbox.label "Deshabilitar">
diff --git a/locale/es-AR/install.dtd b/locale/es-AR/install.dtd
index 79981a7..81346b8 100644
--- a/locale/es-AR/install.dtd
+++ b/locale/es-AR/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Previsualización">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Intercambiar para editar">
-<!ENTITY switchtoedit.ak "t">
 <!ENTITY title "Instalar estilo de usuario">
diff --git a/locale/es-AR/manage.dtd b/locale/es-AR/manage.dtd
index 17a2f31..33df80d 100644
--- a/locale/es-AR/manage.dtd
+++ b/locale/es-AR/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Cambiar etiquetas">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Hecho">
-<!ENTITY done.ak "H">
 <!ENTITY filter "Buscar">
 <!ENTITY installfromurls "Instalar desde direcciones web…">
-<!ENTITY manageaddonstitle "Estilos de usuario">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visitá">
 <!ENTITY nostylesend "para obtener información sobre cómo usar Stylish.">
 <!ENTITY sortenabled "Habilitado">
 <!ENTITY sortname "Nombre">
-<!ENTITY sorttag "Etiqueta">
 <!ENTITY sorttype "Tipo">
-<!ENTITY sortgroup "Ordenar por:">
-<!ENTITY update "Actualizar">
-<!ENTITY update.ak "A">
 <!ENTITY writenew "Escribir un nuevo estilo">
 <!ENTITY writenew.ak "E">
diff --git a/locale/es-AR/manage.properties b/locale/es-AR/manage.properties
index 044f4ed..b94bebc 100644
--- a/locale/es-AR/manage.properties
+++ b/locale/es-AR/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Habilitado
-groupEnabledFalse=Deshabilitado
-groupTagNone=Sin etiquetas
-groupTypeApp=Aplicación
-groupTypeGlobal=Global
-groupTypeNone=Sin tipo
-groupTypeSite=Sitio web
-styleRegistrationOff=Todos los estilos están desactivados.
-styleRegistrationTurnOn=Activar estilos
-styleRegistrationTurnOn.ak=A
-updateAvailable=Hay una actualización disponible.
-updateCheckError=Ocurrió un error mientras se buscaba actualizaciones.
-updateCompleted=Actualización completa.
-updateFailed=Falló la actualización.
-updateNotFound=No se encontró ninguna actualización.
-updateNotPossible=No es posible actualizar.
 appstyledescription=Afecta la interface de usuario.
 globalstyledescription=Puede afectar todo.
 sitestyledescription=Afecta %S.
-tagstyledescription=Etiquetas: %S.
 manageaddonstitle=Estilos de usuario
 installfromurlsprompttitle=Instalar desde direcciones web
 installfromurlsprompt=Ingresá direcciones web de estilos de usuarios para instalar. Estas pueden ser páginas en userstyles.org o archivos CSS. Separá varias direcciones web mediante espacios.
diff --git a/locale/es-AR/overlay.dtd b/locale/es-AR/overlay.dtd
index f6a7b7d..821daae 100644
--- a/locale/es-AR/overlay.dtd
+++ b/locale/es-AR/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Instalar archivo…">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Habilitar">
+<!ENTITY cmd.enable.accesskey "H">
+<!ENTITY cmd.disable.label "Deshabilitar">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Desinstalar">
+<!ENTITY cmd.uninstall2.accesskey "s">
 <!ENTITY findstylebrowser "Buscar estilos para este sitio web…">
 <!ENTITY findstylebrowser.ak "B">
 <!ENTITY managestyles "Administrar estilos…">
diff --git a/locale/es-AR/overlay.properties b/locale/es-AR/overlay.properties
index 6b83d6c..7db3766 100644
--- a/locale/es-AR/overlay.properties
+++ b/locale/es-AR/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S estilo/s de sitios web, %S estilo/s globales
 tooltipStylesOff=Stylish - Los estilos están desactivados
 updatestyle=¿Estás seguro que querés actualizar \'%S\'?
diff --git a/locale/es-ES/common.dtd b/locale/es-ES/common.dtd
index ee92e3e..538340a 100644
--- a/locale/es-ES/common.dtd
+++ b/locale/es-ES/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Editar">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/es-ES/common.properties b/locale/es-ES/common.properties
index b9b4f1b..ea469a1 100644
--- a/locale/es-ES/common.properties
+++ b/locale/es-ES/common.properties
@@ -1,10 +1,4 @@
-changeTags=Borrar la etiqueta \'%S\' y añadir las siguientes etiquetas:
-changeTagsNoCurrent=Añadir las siguientes etiquetas:
-changeTagsTitle=Cambiar etiquetas
 deleteStyle=¿Confirma que quiere desinstalar \'%S\'?
 deleteStyleTitle=¿Desinstalar el estilo?
 deleteStyleOK=Desinstalar
-deleteStyles=¿Está seguro de que quiere desinstalar estos %S estilos?
-deleteStylesTitle=¿Desinstalar estilos?
-deleteStylesOK=Desinstalar
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Rediseña la web usando Stylish, un administrador de estilos de usuario.
diff --git a/locale/es-ES/edit.dtd b/locale/es-ES/edit.dtd
index 7c33492..6fc4f6c 100644
--- a/locale/es-ES/edit.dtd
+++ b/locale/es-ES/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Ruta de la carpeta chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI de los datos...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "Guardar">
 <!ENTITY save.ak "G">
-<!ENTITY switchtoinstall "Cambiar a instalación">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Etiquetas">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Cortar líneas">
 <!ENTITY wraplines.ak "C">
 <!ENTITY xulnamespace "Nombre de espacio XUL por defecto">
diff --git a/locale/es-ES/edit.properties b/locale/es-ES/edit.properties
index da49c35..0b8a67c 100644
--- a/locale/es-ES/edit.properties
+++ b/locale/es-ES/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Editando \'%S\'
 newstyletitle=Nuevo estilo
 missingcode=Introduzca el código de este estilo.
 missingname=Ponga un nombre para este estilo.
-unsavedchanges=¿Quiere guardar los cambios en este estilo?
-unsavedchangestitle=¿Guardar cambios?
diff --git a/locale/es-ES/extensions.dtd b/locale/es-ES/extensions.dtd
deleted file mode 100644
index 0a944dc..0000000
--- a/locale/es-ES/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Complementos">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Obtener complementos">
-<!ENTITY extensions.label "Extensiones">
-<!ENTITY themes.label "Temas">
-<!ENTITY locales.label "Idiomas">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Actualizaciones">
-<!ENTITY install.label "Instalación">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Buscar actualizaciones">
-<!ENTITY cmd.checkUpdatesAll.accesskey "B">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Buscar actualizaciones para sus complementos">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Buscar actualizaciones para sus temas">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Buscar actualizaciones para sus plugins">
-<!ENTITY cmd.installLocalFile.label "Instalar…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Instalar una extensión">
-<!ENTITY cmd.installFileTheme.tooltip "Instalar un tema">
-<!ENTITY cmd.installUpdatesAll2.label "Instalar actualizaciones">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Instalar las actualizaciones seleccionadas">
-<!ENTITY cmd.restartApp2.label "Reiniciar &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Reiniciar &brandShortName; para aplicar los cambios">
-<!ENTITY cmd.skip.label "Saltar">
-<!ENTITY cmd.skip.accesskey "S">
-<!ENTITY cmd.skip.tooltip "Saltarse estas actualizaciones">
-<!ENTITY cmd.continue.label "Continuar">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continuar cargando &brandShortName;">
-<!ENTITY cmd.enableAll.label "Activar todo">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Activar todos los complementos mostrados">
-<!ENTITY cmd.disableAll.label "Desactivar todo">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Desactivar todos los complementos mostrados">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Usar tema">
-<!ENTITY cmd.useTheme.accesskey "U">
-<!ENTITY cmd.useTheme.tooltip "Cambie el tema de &brandShortName;.">
-<!ENTITY cmd.options.label "Opciones">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Establecer opciones para la extensión seleccionada">
-<!ENTITY cmd.optionsUnix.label "Preferencias">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Editar preferencias para la extensión seleccionada">
-<!ENTITY cmd.enable.label "Activar">
-<!ENTITY cmd.enable.accesskey "c">
-<!ENTITY cmd.enable.tooltip "Activar esta extensión cuando se reinicie &brandShortName;">
-<!ENTITY cmd.disable.label "Desactivar">
-<!ENTITY cmd.disable.accesskey "c">
-<!ENTITY cmd.disable.tooltip "Desactivar esta extensión cuando se reinicie &brandShortName;">
-<!ENTITY cmd.uninstall.label "Desinstalar">
-<!ENTITY cmd.uninstall2.accesskey "D">
-<!ENTITY cmd.uninstall2.tooltip "Desinstalar esta extensión cuando se reinicie &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Cancelar desinstalación">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancelar la desinstalación de esta extensión">
-<!ENTITY cmd.cancelInstall.label "Cancelar instalación">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancelar la instalación de este complemento">
-<!ENTITY cmd.cancelUpgrade.label "Cancelar actualización">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancelar la actualización de este complemento">
-<!ENTITY cmd.installUpdate.label "Instalar actualización">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Instalar una actualización para esta extensión">
-<!ENTITY cmd.showUpdateInfo.label "Mostrar información">
-<!ENTITY cmd.showUpdateInfo.accesskey "M">
-<!ENTITY cmd.showUpdateInfo.tooltip "Mostrar más información sobre estas actualizaciones">
-<!ENTITY cmd.hideUpdateInfo.label "Ocultar información">
-<!ENTITY cmd.hideUpdateInfo.accesskey "O">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Ocultar información sobre estas actualizaciones">
-<!ENTITY cmd.installSearchResult.label "Añadir a &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Descargar e instalar este complemento">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancelar">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancelar">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancelar">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visitar la página de inicio">
-<!ENTITY cmd.homepage.accesskey "V">
-<!ENTITY cmd.about2.label "Acerca de esta extensión">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Buscar actualización">
-<!ENTITY cmd.checkUpdate.accesskey "B">
-<!ENTITY cmd.includeUpdate.label "Incluir actualización">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Incluir esta actualización">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Incluir esta extensión al instalar las actualizaciones">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "No proporciona actualizaciones seguras.">
-<!ENTITY needsDependencies.label "Requiere elementos adicionales.">
-<!ENTITY blocklisted.label "Desactivado para su protección.">
-<!ENTITY softBlocklisted.label "Conocido por causar problemas de seguridad o estabilidad.">
-<!ENTITY outdated.label "Hay disponible una versión más moderna y segura.">
-<!ENTITY toBeDisabled.label "Este complemento se desactivará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeEnabled.label "Este complemento se activará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeInstalled.label "Este complemento se instalará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Este complemento se desinstalará cuando se reinicie &brandShortName;.">
-<!ENTITY toBeUpdated.label "Este complemento se actualizará cuando se reinicie &brandShortName;.">
-<!ENTITY getExtensions.label "Obtener extensiones">
-<!ENTITY getThemes.label "Obtener temas">
-<!ENTITY getPlugins.label "Obtener plugins">
-<!ENTITY searchAddons.label "Buscar en todos los complementos">
-<!ENTITY browseAddons.label "Examinar todos los complementos">
-<!ENTITY searchFailed.label "&brandShortName; no pudo descargar complementos">
-<!ENTITY recommendedHeader.label "Recomendado">
-<!ENTITY recommendedThrobber.label "Recuperando complementos recomendados">
-<!ENTITY searchThrobber.label "Buscando complementos">
-<!ENTITY resetSearch.label "Limpiar resultados">
-<!ENTITY noSearchResults.label "Todos los resultados están ya instalados o son incompatibles.">
-<!ENTITY noRecommendedResults.label "Todas las recomendaciones están ya instalados o son incompatibles.">
-<!ENTITY emptySearch.label "No hay complementos coincidentes">
-<!ENTITY emptySearch.button "Aceptar">
-<!ENTITY cancelSearch.button "Cancelar">
-<!ENTITY searchFailed.button "Aceptar">
-<!ENTITY searchResultHomepage.value "Saber más">
-<!ENTITY searchBox.label "Buscar en todos los complementos">
-<!ENTITY recommendedResults.label "Ver todos los complementos recomendados">
-<!ENTITY searchResultConnecting.label "Conectando…">
-<!ENTITY searchResultInstalling.label "Instalando…">
-<!ENTITY searchResultFailed.label "Instalación incorrecta">
-<!ENTITY searchResultInstalled.label "Instalación completa">
-<!ENTITY addonTypeExtension.label "Extensión">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "No hay vista preliminar">
-<!ENTITY previewNoThemeSelected.label "Ningún tema seleccionado">
-<!ENTITY previewNoPreviewImage.label "Este tema no tiene una imagen de vista previa">
-<!ENTITY moreInfo.label "Más información">
-<!ENTITY infoNoAddonSelected.label "No se han seleccionado actualizaciones">
-<!ENTITY infoNoUpdateInfo.label "Esta actualización no tiene ninguna información adicional">
-<!ENTITY infoUpdateInfoError.label "Ha sucedido un error al cargar la información sobre esta actualización">
-<!ENTITY updateSuccess.label "Actualización completada con éxito.">
-<!ENTITY installSuccess.label "Instalación completada con éxito.">
-<!ENTITY installSuccessRestart.label "Reinicie para completar la instalación.">
-<!ENTITY updateSuccessRestart.label "Reinicie para completar la actualización.">
-<!ENTITY installWaiting.label "Esperando…">
-<!ENTITY installIncompatibleUpdate.label "Comprobando compatibilidad…">
-<!ENTITY installFinishing.label "Instalando…">
-<!ENTITY installFailure.label "Instalación fallida.">
-<!ENTITY progressStatus.label "Buscando actualizaciones">
-<!ENTITY eula.title "Acuerdo de licencia de usuario final">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Aceptar e instalar…">
-<!ENTITY blocklist.blocked.label "Bloqueado">
-<!ENTITY blocklist.checkbox.label "Desactivar">
diff --git a/locale/es-ES/install.dtd b/locale/es-ES/install.dtd
index ad26c9e..6922ec5 100644
--- a/locale/es-ES/install.dtd
+++ b/locale/es-ES/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Vista previa">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Cambiar a edición">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Instalar estilo de usuario">
diff --git a/locale/es-ES/manage.dtd b/locale/es-ES/manage.dtd
index e68342d..a39814f 100644
--- a/locale/es-ES/manage.dtd
+++ b/locale/es-ES/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Cambiar etiquetas">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Hecho">
-<!ENTITY done.ak "H">
 <!ENTITY filter "Buscar">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Estilos de usuario">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visite">
 <!ENTITY nostylesend "para información sobre cómo usar Stylish.">
 <!ENTITY sortenabled "Habilitado">
 <!ENTITY sortname "Nombre">
-<!ENTITY sorttag "Etiqueta">
 <!ENTITY sorttype "Tipo">
-<!ENTITY sortgroup "Ordenar por:">
-<!ENTITY update "Actualizar">
-<!ENTITY update.ak "A">
 <!ENTITY writenew "Escribir nuevo estilo">
 <!ENTITY writenew.ak "E">
diff --git a/locale/es-ES/manage.properties b/locale/es-ES/manage.properties
index 210e98e..85df8ec 100644
--- a/locale/es-ES/manage.properties
+++ b/locale/es-ES/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Habilitado
-groupEnabledFalse=Deshabilitado
-groupTagNone=Sin etiquetas
-groupTypeApp=Aplicación
-groupTypeGlobal=Global
-groupTypeNone=Sin tipo
-groupTypeSite=Sitio
-styleRegistrationOff=Todos los estilos están desactivados.
-styleRegistrationTurnOn=Activar estilos
-styleRegistrationTurnOn.ak=T
-updateAvailable=Actualización disponible.
-updateCheckError=Se ha producido un error al comprobar las actualizaciones.
-updateCompleted=Actualización completada.
-updateFailed=Fallo en la actualización.
-updateNotFound=No se han encontrado actualizaciones.
-updateNotPossible=No se ha podido actualizar.
 appstyledescription=Afecta a la interfaz de usuario.
 globalstyledescription=Pueden afectar a todo.
 sitestyledescription=Afecta a %S.
-tagstyledescription=Etiquetas: %S.
 manageaddonstitle=Estilos de usuario
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/es-ES/overlay.dtd b/locale/es-ES/overlay.dtd
index cd38332..960e3c0 100644
--- a/locale/es-ES/overlay.dtd
+++ b/locale/es-ES/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Instalar archivo...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Activar">
+<!ENTITY cmd.enable.accesskey "c">
+<!ENTITY cmd.disable.label "Desactivar">
+<!ENTITY cmd.disable.accesskey "c">
+<!ENTITY cmd.uninstall.label "Desinstalar">
+<!ENTITY cmd.uninstall2.accesskey "D">
 <!ENTITY findstylebrowser "Buscar estilos para esta página...">
 <!ENTITY findstylebrowser.ak "B">
 <!ENTITY managestyles "Administrar estilos...">
diff --git a/locale/es-ES/overlay.properties b/locale/es-ES/overlay.properties
index f68c99b..31f22ca 100644
--- a/locale/es-ES/overlay.properties
+++ b/locale/es-ES/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S sitios de estilos, %S estilos globales
 tooltipStylesOff=Stylish - Los estilos están desactivados
 updatestyle=¿Confirma que quiere actualizar \'%S\'?
diff --git a/locale/et-EE/common.dtd b/locale/et-EE/common.dtd
deleted file mode 100644
index b0a2f68..0000000
--- a/locale/et-EE/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "Redigeeri">
-<!ENTITY editstyle.ak "R">
-<!ENTITY stylish "Stylish">
diff --git a/locale/et-EE/common.properties b/locale/et-EE/common.properties
deleted file mode 100644
index 66a46ce..0000000
--- a/locale/et-EE/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=Eemalda silt \'%S\' ja lisa järgnevad sildid:
-changeTagsNoCurrent=Lisa järgnevad sildid:
-changeTagsTitle=Siltide muutmine
-deleteStyle=Kas oled kindel, et soovid stiili \'%s\' kustutada?
-deleteStyleTitle=Kas stiil kustutada?
-deleteStyleOK=Kustuta
-deleteStyles=Kas oled kindel, et soovid need %S stiili kustutada?
-deleteStylesTitle=Kas stiilid kustutada?
-deleteStylesOK=Kustuta
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Muuda veebi stiili kasutaja stiilide halduriga Stylishiga.
diff --git a/locale/et-EE/extensions.dtd b/locale/et-EE/extensions.dtd
deleted file mode 100644
index 937604b..0000000
--- a/locale/et-EE/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Lisad">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Hangi laiendusi">
-<!ENTITY extensions.label "Laiendused">
-<!ENTITY themes.label "Teemad">
-<!ENTITY locales.label "Keeled">
-<!ENTITY plugins.label "Pluginad">
-<!ENTITY update.label "Uuendused">
-<!ENTITY install.label "Paigaldamine">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Otsi uuendusi">
-<!ENTITY cmd.checkUpdatesAll.accesskey "O">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Otsi lisadele uuendusi">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Otsi teemadele uuendusi">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Otsi pluginatele uuendusi">
-<!ENTITY cmd.installLocalFile.label "Paigalda...">
-<!ENTITY cmd.installLocalFile.accesskey "i">
-<!ENTITY cmd.installFileAddon.tooltip "Paigalda lisa">
-<!ENTITY cmd.installFileTheme.tooltip "Paigalda teema">
-<!ENTITY cmd.installUpdatesAll2.label "Paigalda uuendused">
-<!ENTITY cmd.installUpdatesAll2.accesskey "P">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Paigalda valitud uuendused">
-<!ENTITY cmd.restartApp2.label "Taaskäivita &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "T">
-<!ENTITY cmd.restartApp2.tooltip "Muudatuste rakendamiseks taaskäivita &brandShortName;">
-<!ENTITY cmd.skip.label "Jäta vahele">
-<!ENTITY cmd.skip.accesskey "J">
-<!ENTITY cmd.skip.tooltip "Jäta need uuendused vahele">
-<!ENTITY cmd.continue.label "Jätka">
-<!ENTITY cmd.continue.accesskey "t">
-<!ENTITY cmd.continue.tooltip "Jätka &brandShortName;i laadimist">
-<!ENTITY cmd.enableAll.label "Luba kõik">
-<!ENTITY cmd.enableAll.accesskey "k">
-<!ENTITY cmd.enableAll.tooltip "Luba kõik kuvatud lisad">
-<!ENTITY cmd.disableAll.label "Keela kõik">
-<!ENTITY cmd.disableAll.accesskey "i">
-<!ENTITY cmd.disableAll.tooltip "Keela kõik kuvatud lisad">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Kasuta teemat">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Muudab &brandShortName;i teemat">
-<!ENTITY cmd.options.label "Sätted">
-<!ENTITY cmd.options.accesskey "S">
-<!ENTITY cmd.options.tooltip "Muuda valitud laienduse sätteid">
-<!ENTITY cmd.optionsUnix.label "Eelistused">
-<!ENTITY cmd.optionsUnix.accesskey "E">
-<!ENTITY cmd.optionsUnix.tooltip "Muuda valitud laienduse eelistusi">
-<!ENTITY cmd.enable.label "Luba">
-<!ENTITY cmd.enable.accesskey "L">
-<!ENTITY cmd.enable.tooltip "Luba see lisa &brandShortName;i taaskäivitamisel">
-<!ENTITY cmd.disable.label "Keela">
-<!ENTITY cmd.disable.accesskey "K">
-<!ENTITY cmd.disable.tooltip "Keela see lisa &brandShortName;i taaskäivitamisel">
-<!ENTITY cmd.uninstall.label "Eemalda">
-<!ENTITY cmd.uninstall2.accesskey "E">
-<!ENTITY cmd.uninstall2.tooltip "Eemalda see lisa &brandShortName;i taaskäivitamisel">
-<!ENTITY cmd.cancelUninstall.label "Loobu eemaldamisest">
-<!ENTITY cmd.cancelUninstall.accesskey "L">
-<!ENTITY cmd.cancelUninstall.tooltip "Loobu selle lisa eemaldamisest">
-<!ENTITY cmd.cancelInstall.label "Loobu paigaldamisest">
-<!ENTITY cmd.cancelInstall.accesskey "o">
-<!ENTITY cmd.cancelInstall.tooltip "Loobu selle lisa paigaldamisest">
-<!ENTITY cmd.cancelUpgrade.label "Loobu uuendamisest">
-<!ENTITY cmd.cancelUpgrade.accesskey "u">
-<!ENTITY cmd.cancelUpgrade.tooltip "Loobu selle lisa uuendamisest">
-<!ENTITY cmd.installUpdate.label "Paigalda uuendus">
-<!ENTITY cmd.installUpdate.accesskey "P">
-<!ENTITY cmd.installUpdate.tooltip "Paigalda uuendus sellele lisale">
-<!ENTITY cmd.showUpdateInfo.label "Näita infot">
-<!ENTITY cmd.showUpdateInfo.accesskey "N">
-<!ENTITY cmd.showUpdateInfo.tooltip "Näita rohkem infot nende uuenduste kohta">
-<!ENTITY cmd.hideUpdateInfo.label "Peida info">
-<!ENTITY cmd.hideUpdateInfo.accesskey "P">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Peida info nende uuenduste kohta">
-<!ENTITY cmd.installSearchResult.label "Lisa &brandShortName;i...">
-<!ENTITY cmd.installSearchResult.accesskey "L">
-<!ENTITY cmd.installSearchResult.tooltip "Tõmba ja paigalda see lisa">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Loobu">
-<!ENTITY cancel.accesskey "L">
-<!ENTITY cancelInstall.label "Loobu">
-<!ENTITY cancelInstall.accesskey "L">
-<!ENTITY cancelUpgrade.label "Loobu">
-<!ENTITY cancelUpgrade.accesskey "L">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Külasta kodulehte">
-<!ENTITY cmd.homepage.accesskey "h">
-<!ENTITY cmd.about2.label "Sellest lisast">
-<!ENTITY cmd.about.accesskey "a">
-<!ENTITY cmd.checkUpdate.label "Otsi uuendust">
-<!ENTITY cmd.checkUpdate.accesskey "u">
-<!ENTITY cmd.includeUpdate.label "Kaasa uuendus">
-<!ENTITY cmd.includeUpdate.accesskey "s">
-<!ENTITY includeUpdate.label "Uuendatakse">
-<!ENTITY includeUpdate.accesskey "e">
-<!ENTITY includeUpdate.tooltip "Kaasa see lisa, kui paigaldatakse uuendusi">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Ei paku turvalisi uuendusi.">
-<!ENTITY needsDependencies.label "Vajab täiendavaid elemente.">
-<!ENTITY blocklisted.label "Keelatud sinu kaitseks.">
-<!ENTITY softBlocklisted.label "Tuntud kui turvalisuse või stabiilsuse probleemide tekitaja.">
-<!ENTITY outdated.label "Saadaval on uuem ja turvalisem versioon.">
-<!ENTITY toBeDisabled.label "See lisa keelatakse &brandShortName;i taaskäivitamisel.">
-<!ENTITY toBeEnabled.label "See lisa lubatakse &brandShortName;i taaskäivitamisel.">
-<!ENTITY toBeInstalled.label "See lisa paigaldatakse &brandShortName;i taaskäivitamisel.">
-<!ENTITY toBeUninstalled.label "See lisa eemaldatakse &brandShortName;i taaskäivitamisel.">
-<!ENTITY toBeUpdated.label "See lisa uuendatakse &brandShortName;i taaskäivitamisel.">
-<!ENTITY getExtensions.label "Hangi laiendusi">
-<!ENTITY getThemes.label "Hangi teemasid">
-<!ENTITY getPlugins.label "Hangi pluginaid">
-<!ENTITY searchAddons.label "Otsi kõiki laiendusi">
-<!ENTITY browseAddons.label "Lehitse kõiki laiendusi">
-<!ENTITY searchFailed.label "&brandShortName; ei saanud laiendusi kohale toimetada">
-<!ENTITY recommendedHeader.label "Soovitatud">
-<!ENTITY recommendedThrobber.label "Tõmmatakse soovitatud laienduste infot">
-<!ENTITY searchThrobber.label "Otsitakse laiendusi">
-<!ENTITY resetSearch.label "Puhasta tulemused">
-<!ENTITY noSearchResults.label "Kõik tulemused on juba paigaldatud või ei ühildu.">
-<!ENTITY noRecommendedResults.label "Kõik soovitatud laiendused on juba paigaldatud või ei ühildu.">
-<!ENTITY emptySearch.label "Ei leitud sobivaid laiendusi">
-<!ENTITY emptySearch.button "Sobib">
-<!ENTITY cancelSearch.button "Loobu">
-<!ENTITY searchFailed.button "Sobib">
-<!ENTITY searchResultHomepage.value "Rohkem teavet">
-<!ENTITY searchBox.label "Otsi kõiki laiendusi">
-<!ENTITY recommendedResults.label "Otsi kõiki soovitatud laiendusi">
-<!ENTITY searchResultConnecting.label "Ühendumine...">
-<!ENTITY searchResultInstalling.label "Paigaldamine...">
-<!ENTITY searchResultFailed.label "Paigaldamine ebaõnnestus">
-<!ENTITY searchResultInstalled.label "Paigaldamine lõpetatud">
-<!ENTITY addonTypeExtension.label "Laiendus">
-<!ENTITY addonTypeTheme.label "Teema">
-<!ENTITY missingThumbnail.label "Eelvaade puudub">
-<!ENTITY previewNoThemeSelected.label "Ühtki teemat pole valitud">
-<!ENTITY previewNoPreviewImage.label "Nendel teemadel puudub eelvaade">
-<!ENTITY moreInfo.label "Rohkem teavet">
-<!ENTITY infoNoAddonSelected.label "Ühtki uuendust pole valitud">
-<!ENTITY infoNoUpdateInfo.label "Sellel uuendusel puudub lisainfo">
-<!ENTITY infoUpdateInfoError.label "Uuenduse lisainfo laadimisel esines viga">
-<!ENTITY updateSuccess.label "Uuendamine edukalt lõpetatud.">
-<!ENTITY installSuccess.label "Paigaldamine edukalt lõpetatud.">
-<!ENTITY installSuccessRestart.label "Paigalduse lõpetamiseks taaskäivita &brandShortName;.">
-<!ENTITY updateSuccessRestart.label "Uuendamise lõpetamiseks taaskäivita &brandShortName;.">
-<!ENTITY installWaiting.label "Ootamine...">
-<!ENTITY installIncompatibleUpdate.label "Ühilduvuse kontrollimine...">
-<!ENTITY installFinishing.label "Paigaldamine...">
-<!ENTITY installFailure.label "Paigaldamine ebaõnnestus.">
-<!ENTITY progressStatus.label "Uuenduste kontrollimine">
-<!ENTITY eula.title "Lõppkasutaja litsentsileping">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Nõustu ja paigalda...">
-<!ENTITY blocklist.blocked.label "Blokitud">
-<!ENTITY blocklist.checkbox.label "Keelatud">
diff --git a/locale/et-EE/manage.properties b/locale/et-EE/manage.properties
deleted file mode 100644
index 73c2e0a..0000000
--- a/locale/et-EE/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Lubatud
-groupEnabledFalse=Keelatud
-groupTagNone=Silte pole
-groupTypeApp=Rakendus
-groupTypeGlobal=Globaalne
-groupTypeNone=Tüüpi pole
-groupTypeSite=Lehekülg
-styleRegistrationOff=Kõik stiilid on välja lülitatud.
-styleRegistrationTurnOn=Lülita stiilid sisse
-styleRegistrationTurnOn.ak=T
-updateAvailable=Uuendus on saadaval.
-updateCheckError=Uuenduste otsimisel tekkis viga.
-updateCompleted=Uuendamine edukalt lõpetatud.
-updateFailed=Uuendamine ebaõnnestus.
-updateNotFound=Uuendusi ei leitud.
-updateNotPossible=Uuendamine pole võimalik.
-appstyledescription=Mõjutab kasutajaliidest.
-globalstyledescription=Võib mõjutada kõike
-sitestyledescription=Mõjutab: %S.
-tagstyledescription=Sildid: %S.
-manageaddonstitle=Kasutaja stiilid
-installfromurlsprompttitle=URL-ilt installimine
-installfromurlsprompt=Sisesta installitava stiilide URL-id. Need võivad olla lehed saidil userstyles.org või CSS failid. Eralda URL-id tühikuga.
-installfromurlserror=Ei saanud järgmistelt URL-idelt installida: %s.
diff --git a/locale/et/common.dtd b/locale/et/common.dtd
new file mode 100644
index 0000000..a0df480
--- /dev/null
+++ b/locale/et/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "Redigeeri">
+<!ENTITY editstyle.ak "R">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
+<!ENTITY stylish "Stylish">
diff --git a/locale/et/common.properties b/locale/et/common.properties
new file mode 100644
index 0000000..d5e2371
--- /dev/null
+++ b/locale/et/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=Kas oled kindel, et soovid stiili \'%s\' kustutada?
+deleteStyleTitle=Kas stiil kustutada?
+deleteStyleOK=Kustuta
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Muuda veebi stiili kasutaja stiilide halduriga Stylishiga.
diff --git a/locale/et-EE/domi.dtd b/locale/et/domi.dtd
similarity index 100%
rename from locale/et-EE/domi.dtd
rename to locale/et/domi.dtd
diff --git a/locale/et-EE/edit.dtd b/locale/et/edit.dtd
similarity index 83%
rename from locale/et-EE/edit.dtd
rename to locale/et/edit.dtd
index 73af378..4932571 100644
--- a/locale/et-EE/edit.dtd
+++ b/locale/et/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome kausta asukoht">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Andmete URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "E">
 <!ENTITY save "Salvesta">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Lülitu installimisvaatele">
-<!ENTITY switchtoinstall.ak "L">
-<!ENTITY tags "Sildid">
-<!ENTITY tags.ak "d">
 <!ENTITY wraplines "Murra pikad read">
 <!ENTITY wraplines.ak "M">
 <!ENTITY xulnamespace "XUL nimeruum vaikeväärtusega">
diff --git a/locale/et-EE/edit.properties b/locale/et/edit.properties
similarity index 61%
rename from locale/et-EE/edit.properties
rename to locale/et/edit.properties
index f617dda..474cce5 100644
--- a/locale/et-EE/edit.properties
+++ b/locale/et/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Stiili \'%S\' muutmine
 newstyletitle=Uus stiil
 missingcode=Sisesta sellele stiilile natuke koodi.
 missingname=Anna stiilile nimi.
-unsavedchanges=Kas soovid sellele stiilile tehtud muudatused salvestada?
-unsavedchangestitle=Kas muudatused salvestada?
diff --git a/locale/et-EE/install.dtd b/locale/et/install.dtd
similarity index 72%
rename from locale/et-EE/install.dtd
rename to locale/et/install.dtd
index 220f0eb..ce70164 100644
--- a/locale/et-EE/install.dtd
+++ b/locale/et/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Eelvaade">
 <!ENTITY preview.ak "E">
-<!ENTITY switchtoedit "Lülitu muutmisvaatele">
-<!ENTITY switchtoedit.ak "L">
 <!ENTITY title "Kasutaja stiili installimine">
diff --git a/locale/et-EE/install.properties b/locale/et/install.properties
similarity index 100%
rename from locale/et-EE/install.properties
rename to locale/et/install.properties
diff --git a/locale/et-EE/manage.dtd b/locale/et/manage.dtd
similarity index 57%
rename from locale/et-EE/manage.dtd
rename to locale/et/manage.dtd
index b2db7c7..fe691af 100644
--- a/locale/et-EE/manage.dtd
+++ b/locale/et/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Muuda silte">
-<!ENTITY changetags.ak "M">
-<!ENTITY done "Valmis">
-<!ENTITY done.ak "V">
 <!ENTITY filter "Otsi">
 <!ENTITY installfromurls "Installi URL-ilt...">
-<!ENTITY manageaddonstitle "Kasutaja stiilid">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Stylishi kasutamise kohta lähema teabe saamiseks mine lehele">
 <!ENTITY nostylesend ".">
 <!ENTITY sortenabled "Lubatud">
 <!ENTITY sortname "Nimi">
-<!ENTITY sorttag "Silt">
 <!ENTITY sorttype "Tüüp">
-<!ENTITY sortgroup "Sorteerimisalus:">
-<!ENTITY update "Uuendus">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Kirjuta uus stiil">
 <!ENTITY writenew.ak "K">
diff --git a/locale/et/manage.properties b/locale/et/manage.properties
new file mode 100644
index 0000000..1a76dfd
--- /dev/null
+++ b/locale/et/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=Mõjutab kasutajaliidest.
+globalstyledescription=Võib mõjutada kõike
+sitestyledescription=Mõjutab: %S.
+manageaddonstitle=Kasutaja stiilid
+installfromurlsprompttitle=URL-ilt installimine
+installfromurlsprompt=Sisesta installitava stiilide URL-id. Need võivad olla lehed saidil userstyles.org või CSS failid. Eralda URL-id tühikuga.
+installfromurlserror=Ei saanud järgmistelt URL-idelt installida: %s.
diff --git a/locale/et-EE/overlay.dtd b/locale/et/overlay.dtd
similarity index 66%
rename from locale/et-EE/overlay.dtd
rename to locale/et/overlay.dtd
index a4dc4cf..6b39ac6 100644
--- a/locale/et-EE/overlay.dtd
+++ b/locale/et/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Installi fail...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Luba">
+<!ENTITY cmd.enable.accesskey "L">
+<!ENTITY cmd.disable.label "Keela">
+<!ENTITY cmd.disable.accesskey "K">
+<!ENTITY cmd.uninstall.label "Eemalda">
+<!ENTITY cmd.uninstall2.accesskey "E">
 <!ENTITY findstylebrowser "Leia stiile sellele lehele">
 <!ENTITY findstylebrowser.ak "L">
 <!ENTITY managestyles "Halda stiile...">
diff --git a/locale/et-EE/overlay.properties b/locale/et/overlay.properties
similarity index 72%
rename from locale/et-EE/overlay.properties
rename to locale/et/overlay.properties
index 778ac73..7c3ddaf 100644
--- a/locale/et-EE/overlay.properties
+++ b/locale/et/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S lehe stiil(i), %S globaalne(set) stiil(i)
 tooltipStylesOff=Stylish - Stiilid on välja lülitatud
 updatestyle=Kas oled kindel, et soovid stiili \'%S\' uuendada?
diff --git a/locale/fi/common.dtd b/locale/fi/common.dtd
index c8e1dc0..d8c97fa 100644
--- a/locale/fi/common.dtd
+++ b/locale/fi/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Muokkaa">
 <!ENTITY editstyle.ak "M">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/fi/common.properties b/locale/fi/common.properties
index c572967..edeaa6f 100644
--- a/locale/fi/common.properties
+++ b/locale/fi/common.properties
@@ -1,10 +1,4 @@
-changeTags=Poista tunnus \'%S\' ja lisää seuraavat tunnukset:
-changeTagsNoCurrent=Lisää seuraavat tunnukset:
-changeTagsTitle=Muuta tuunuksia
 deleteStyle=Haluatko varmasti poistaa tyylin \'%S\'?
 deleteStyleTitle=Poistetaanko tyyli?
 deleteStyleOK=Poista
-deleteStyles=Haluatko varmasti poistaa nämä %S tyyliä?
-deleteStylesTitle=Poistetaanko tyylt?
-deleteStylesOK=Poista
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stailaa netti Stylishilla, tyylien muokkausohjelmalla.
diff --git a/locale/fi/edit.dtd b/locale/fi/edit.dtd
index 298071c..8db5a06 100644
--- a/locale/fi/edit.dtd
+++ b/locale/fi/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Asetuskansion polku">
 <!ENTITY chromefolder.ak "A">
 <!ENTITY dataURI "Data URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "E">
 <!ENTITY save "Tallenna">
 <!ENTITY save.ak "T">
-<!ENTITY switchtoinstall "Muuta asennukseen">
-<!ENTITY switchtoinstall.ak "u">
-<!ENTITY tags "Tunnukset">
-<!ENTITY tags.ak "u">
 <!ENTITY wraplines "Mahduta rivit">
 <!ENTITY wraplines.ak "M">
 <!ENTITY xulnamespace "XUL-nimiavaruus">
diff --git a/locale/fi/edit.properties b/locale/fi/edit.properties
index f43c355..0d27149 100644
--- a/locale/fi/edit.properties
+++ b/locale/fi/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Muokataan tyyliä \'%S\'
 newstyletitle=Uusi tyyli
 missingcode=Lisää koodia tähän tyylin.
 missingname=Anna tälle tyylille nimi.
-unsavedchanges=Tallennetaanko muutoksesi tähän tyylin?
-unsavedchangestitle=Tallennetaanko muutokset?
diff --git a/locale/fi/extensions.dtd b/locale/fi/extensions.dtd
deleted file mode 100644
index ed8d947..0000000
--- a/locale/fi/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Lisäosat">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Hae lisäosia">
-<!ENTITY extensions.label "Laajennukset">
-<!ENTITY themes.label "Teemat">
-<!ENTITY locales.label "Kielet">
-<!ENTITY plugins.label "Liitännäiset">
-<!ENTITY update.label "Päivitykset">
-<!ENTITY install.label "Asentaminen">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Etsi päivityksiä">
-<!ENTITY cmd.checkUpdatesAll.accesskey "E">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Etsi päivityksiä lisäosiin">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Etsi päivityksiä teemoihin">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Etsi päivityksiä liitännäisiin">
-<!ENTITY cmd.installLocalFile.label "Asenna...">
-<!ENTITY cmd.installLocalFile.accesskey "s">
-<!ENTITY cmd.installFileAddon.tooltip "Asenna lisäosa">
-<!ENTITY cmd.installFileTheme.tooltip "Asenna teema">
-<!ENTITY cmd.installUpdatesAll2.label "Asenna päivitykset">
-<!ENTITY cmd.installUpdatesAll2.accesskey "A">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Asenna valitut päivitykset">
-<!ENTITY cmd.restartApp2.label "Käynnistä &brandShortName; uudelleen">
-<!ENTITY cmd.restartApp2.accesskey "K">
-<!ENTITY cmd.restartApp2.tooltip "Käynnistä &brandShortName; uudelleen, jotta muutokset tulevat voimaan">
-<!ENTITY cmd.skip.label "Ohita">
-<!ENTITY cmd.skip.accesskey "O">
-<!ENTITY cmd.skip.tooltip "Ohita nämä päivitykset">
-<!ENTITY cmd.continue.label "Jatka">
-<!ENTITY cmd.continue.accesskey "J">
-<!ENTITY cmd.continue.tooltip "Jatka ohjelman &brandShortName; lataamista">
-<!ENTITY cmd.enableAll.label "Ota kaikki käyttöön">
-<!ENTITY cmd.enableAll.accesskey "k">
-<!ENTITY cmd.enableAll.tooltip "Ota kaikki esillä olevat laajennukset käyttöön">
-<!ENTITY cmd.disableAll.label "Poista kaikki käytöstä">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Poista kaikki esillä olevat laajennukset käytöstä">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Käytä teemaa">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Muuta sovelluksen &brandShortName; teeman">
-<!ENTITY cmd.options.label "Valinnat">
-<!ENTITY cmd.options.accesskey "v">
-<!ENTITY cmd.options.tooltip "Aseta valinnat kuten valitulla lisäosalla">
-<!ENTITY cmd.optionsUnix.label "Asetukset">
-<!ENTITY cmd.optionsUnix.accesskey "A">
-<!ENTITY cmd.optionsUnix.tooltip "Muokkaa valitun laajennuksen asetuksia">
-<!ENTITY cmd.enable.label "Ota käyttöön">
-<!ENTITY cmd.enable.accesskey "O">
-<!ENTITY cmd.enable.tooltip "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa otetaan käyttöön">
-<!ENTITY cmd.disable.label "Poista käytöstä">
-<!ENTITY cmd.disable.accesskey "P">
-<!ENTITY cmd.disable.tooltip "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa poistetaan käytöstä">
-<!ENTITY cmd.uninstall.label "Poista">
-<!ENTITY cmd.uninstall2.accesskey "o">
-<!ENTITY cmd.uninstall2.tooltip "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa poistetaan">
-<!ENTITY cmd.cancelUninstall.label "Peruuta poistaminen">
-<!ENTITY cmd.cancelUninstall.accesskey "P">
-<!ENTITY cmd.cancelUninstall.tooltip "Peruuttaa tämän lisäosan poistamisen">
-<!ENTITY cmd.cancelInstall.label "Peruuta asennus">
-<!ENTITY cmd.cancelInstall.accesskey "P">
-<!ENTITY cmd.cancelInstall.tooltip "Peruuttaa tämän lisäosan asentamisen">
-<!ENTITY cmd.cancelUpgrade.label "Peruuta päivitys">
-<!ENTITY cmd.cancelUpgrade.accesskey "P">
-<!ENTITY cmd.cancelUpgrade.tooltip "Peruuttaa tämän lisäosan päivittämisen">
-<!ENTITY cmd.installUpdate.label "Asenna päivitys">
-<!ENTITY cmd.installUpdate.accesskey "A">
-<!ENTITY cmd.installUpdate.tooltip "Asentaa tämän lisäosan päivityksen">
-<!ENTITY cmd.showUpdateInfo.label "Näytä tiedot">
-<!ENTITY cmd.showUpdateInfo.accesskey "N">
-<!ENTITY cmd.showUpdateInfo.tooltip "Näytä lisää tietoja näistä päivityksistä">
-<!ENTITY cmd.hideUpdateInfo.label "Piilota tiedot">
-<!ENTITY cmd.hideUpdateInfo.accesskey "i">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Piilottaa tiedot näistä päivityksistä">
-<!ENTITY cmd.installSearchResult.label "Lisää ohjelmaan &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "L">
-<!ENTITY cmd.installSearchResult.tooltip "Lataa ja asenna tämä lisäosa">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Peruuta">
-<!ENTITY cancel.accesskey "P">
-<!ENTITY cancelInstall.label "Peruuta">
-<!ENTITY cancelInstall.accesskey "P">
-<!ENTITY cancelUpgrade.label "Peruuta">
-<!ENTITY cancelUpgrade.accesskey "P">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Vieraile kotisivulla">
-<!ENTITY cmd.homepage.accesskey "V">
-<!ENTITY cmd.about2.label "Tietoja tästä laajennuksesta">
-<!ENTITY cmd.about.accesskey "T">
-<!ENTITY cmd.checkUpdate.label "Etsi päivityksiä">
-<!ENTITY cmd.checkUpdate.accesskey "E">
-<!ENTITY cmd.includeUpdate.label "Sisällytä päivitykseen">
-<!ENTITY cmd.includeUpdate.accesskey "i">
-<!ENTITY includeUpdate.label "Sisällytä tähän päivitykseen">
-<!ENTITY includeUpdate.accesskey "i">
-<!ENTITY includeUpdate.tooltip "Sisällytä tämä lisäosa asennettaessa päivityksiä">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Ei tarjoa turvallista asentamista.">
-<!ENTITY needsDependencies.label "Vaatii lisää tietoa.">
-<!ENTITY blocklisted.label "Poista suojaus käytöstä.">
-<!ENTITY softBlocklisted.label "Tiedetään aiheuttavan turvallisuus- tai vakausongelmia.">
-<!ENTITY outdated.label "Uudempi, turvallisempi vaihtoehto on ladattavissa.">
-<!ENTITY toBeDisabled.label "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa poistetaan käytöstä.">
-<!ENTITY toBeEnabled.label "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa otetaan käyttöön.">
-<!ENTITY toBeInstalled.label "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa asennetaan.">
-<!ENTITY toBeUninstalled.label "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa poistetaan.">
-<!ENTITY toBeUpdated.label "Käynnistettäessä &brandShortName; uudelleen tämä lisäosa päivitetään.">
-<!ENTITY getExtensions.label "Hae lisäosia">
-<!ENTITY getThemes.label "Hae teemoja">
-<!ENTITY getPlugins.label "Hae liitännäisiä">
-<!ENTITY searchAddons.label "Etsi kaikista lisäosista">
-<!ENTITY browseAddons.label "Selaa kaikki lisäosia">
-<!ENTITY searchFailed.label "&brandShortName; ei voinut noutaa lisäosia">
-<!ENTITY recommendedHeader.label "Suositeltu">
-<!ENTITY recommendedThrobber.label "Noudetaan suositeltuja lisäosia">
-<!ENTITY searchThrobber.label "Etsi lisäosia">
-<!ENTITY resetSearch.label "Tyhjennä hakutulokset">
-<!ENTITY noSearchResults.label "Kaikki haun tulokset on jo asennettu tai ovat yhteensopimattomia.">
-<!ENTITY noRecommendedResults.label "Kaikki suositukset on jo asennettu tai ovat yhteensopimattomia.">
-<!ENTITY emptySearch.label "Ei hakua vastaavia lisäosia">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Peruuta">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Hanki lisätietoa">
-<!ENTITY searchBox.label "Etsi kaikista lisäosista">
-<!ENTITY recommendedResults.label "Näytä kaikki suositellut lisäosat">
-<!ENTITY searchResultConnecting.label "Yhdistetään…">
-<!ENTITY searchResultInstalling.label "Asennetaan…">
-<!ENTITY searchResultFailed.label "Asennus epäonnistui">
-<!ENTITY searchResultInstalled.label "Asennus valmis">
-<!ENTITY addonTypeExtension.label "Laajennus">
-<!ENTITY addonTypeTheme.label "Teema">
-<!ENTITY missingThumbnail.label "Ei esikatselua">
-<!ENTITY previewNoThemeSelected.label "Yhtään teemaa ei valittuna">
-<!ENTITY previewNoPreviewImage.label "Tällä teemalla ei ole esikatselukuvaa">
-<!ENTITY moreInfo.label "Lisätietoa">
-<!ENTITY infoNoAddonSelected.label "Yhtään päivitystä ei valittuna">
-<!ENTITY infoNoUpdateInfo.label "Tästä päivityksestä ei ole lisätietoa">
-<!ENTITY infoUpdateInfoError.label "Tämän laajennuksen päivityksen tietojen lataamisessa tapahtui virhe">
-<!ENTITY updateSuccess.label "Päivitys onnistui.">
-<!ENTITY installSuccess.label "Asennus onnistui.">
-<!ENTITY installSuccessRestart.label "Käynnistä uudelleen viimeistelläksesi asennuksen.">
-<!ENTITY updateSuccessRestart.label "Käynnistä uudelleen viimeistelläksesi päivityksen.">
-<!ENTITY installWaiting.label "Odottaa…">
-<!ENTITY installIncompatibleUpdate.label "Tarkistetaan yhteensopivuutta…">
-<!ENTITY installFinishing.label "Asennetaan…">
-<!ENTITY installFailure.label "Asennus epäonnistui.">
-<!ENTITY progressStatus.label "Etsitään päivityksiä">
-<!ENTITY eula.title "End-User License Agreement">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Hyväksy ja asenna…">
-<!ENTITY blocklist.blocked.label "Estetty">
-<!ENTITY blocklist.checkbox.label "Poista käytöstä">
diff --git a/locale/fi/install.dtd b/locale/fi/install.dtd
index febef59..c36a4f7 100644
--- a/locale/fi/install.dtd
+++ b/locale/fi/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "A">
 <!ENTITY preview "Esikatsele">
 <!ENTITY preview.ak "E">
-<!ENTITY switchtoedit "Muuta muokkaukseen">
-<!ENTITY switchtoedit.ak "M">
 <!ENTITY title "Asenna tyyli">
diff --git a/locale/fi/manage.dtd b/locale/fi/manage.dtd
index 9862452..fde12bf 100644
--- a/locale/fi/manage.dtd
+++ b/locale/fi/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Muuta tunnuksia">
-<!ENTITY changetags.ak "M">
-<!ENTITY done "Valmis">
-<!ENTITY done.ak "V">
 <!ENTITY filter "Etsi">
-<!ENTITY installfromurls "Asenna sijainneista...">
-<!ENTITY manageaddonstitle "E">
+<!ENTITY installfromurls "Asenna tyyli...">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Vieraile sivulla">
 <!ENTITY nostylesend "saadaksesi tietoa kuinka käyttää Stylishia.">
 <!ENTITY sortenabled "Käytössä">
 <!ENTITY sortname "Nimi">
-<!ENTITY sorttag "Tunnus">
 <!ENTITY sorttype "Tyyppi">
-<!ENTITY sortgroup "Lajittelujärjestys:">
-<!ENTITY update "Päivitä">
-<!ENTITY update.ak "P">
 <!ENTITY writenew "Kirjoita uusi tyyli">
 <!ENTITY writenew.ak "K">
diff --git a/locale/fi/manage.properties b/locale/fi/manage.properties
index 03b9957..e812ae8 100644
--- a/locale/fi/manage.properties
+++ b/locale/fi/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Käytössä
-groupEnabledFalse=Ei käytössä
-groupTagNone=Ei tunnuksia
-groupTypeApp=Sovellus
-groupTypeGlobal=Yleinen
-groupTypeNone=Ei tyyppiä
-groupTypeSite=Sivu
-styleRegistrationOff=Kaikki tyylit on poistettu käytöstä.
-styleRegistrationTurnOn=Ota kaikki tyylit käyttöön
-styleRegistrationTurnOn.ak=O
-updateAvailable=Päivitys on saatavilla.
-updateCheckError=Tapahtui virhe tarkistettaessa päivityksiä.
-updateCompleted=Päivitys valmis
-updateFailed=Päivitys epäonnistui.
-updateNotFound=Päivityksiä ei löytynyt.
-updateNotPossible=Päivitykset ei mahdollisia.
 appstyledescription=Vaikuttaa käyttöliittymään.
 globalstyledescription=Voi vaikuttaa mihin vain.
 sitestyledescription=Vaikuttaa sivustoon %S.
-tagstyledescription=Tunnukset: %S.
 manageaddonstitle=Tyylit
 installfromurlsprompttitle=Asenna sijainnista
 installfromurlsprompt=Syötä asennettavien tyylien sijainnit. Nämä voivat olla sivuja userstyles.org -osoitteessa tai CSS-tiedostoja. Erota osoitteet väleillä.
diff --git a/locale/fi/overlay.dtd b/locale/fi/overlay.dtd
index e629cef..957d991 100644
--- a/locale/fi/overlay.dtd
+++ b/locale/fi/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Asenna tiedosto...">
 <!ENTITY addfile.ak "A">
+<!ENTITY cmd.enable.label "Ota käyttöön">
+<!ENTITY cmd.enable.accesskey "O">
+<!ENTITY cmd.disable.label "Poista käytöstä">
+<!ENTITY cmd.disable.accesskey "P">
+<!ENTITY cmd.uninstall.label "Poista">
+<!ENTITY cmd.uninstall2.accesskey "o">
 <!ENTITY findstylebrowser "Etsi tyylejä tälle sivustolle...">
 <!ENTITY findstylebrowser.ak "E">
 <!ENTITY managestyles "Hallitse tyylejä...">
diff --git a/locale/fi/overlay.properties b/locale/fi/overlay.properties
index ff02da6..686e73c 100644
--- a/locale/fi/overlay.properties
+++ b/locale/fi/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - sivuston tyylejä: %S, yleisiä tyylejä: %S
 tooltipStylesOff=Stylish - tyylit on poissa käytöstä
 updatestyle=Haluatko varmasti päivittää tyylin \'%S\'?
diff --git a/locale/fr/common.dtd b/locale/fr/common.dtd
index 85808ed..c5989f5 100644
--- a/locale/fr/common.dtd
+++ b/locale/fr/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Éditer">
 <!ENTITY editstyle.ak "d">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/fr/common.properties b/locale/fr/common.properties
index 5c3dd8b..3b4dfe1 100644
--- a/locale/fr/common.properties
+++ b/locale/fr/common.properties
@@ -1,10 +1,4 @@
-changeTags=Supprimer la balise « %S » et ajouter les balises suivantes :
-changeTagsNoCurrent=Ajouter les balises suivantes :
-changeTagsTitle=Modifier les balises
 deleteStyle=Voulez-vous vraiment désinstaller « %S » ?
 deleteStyleTitle=Désinstaller le style ?
 deleteStyleOK=Désinstaller
-deleteStyles=Souhaitez-vous vraiment désinstaller ces %S styles ?
-deleteStylesTitle=Désinstaller les styles ?
-deleteStylesOK=Désinstaller
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Restylez le Web avec Stylish, le gestionnaire de styles.
diff --git a/locale/fr/edit.dtd b/locale/fr/edit.dtd
index c0b2f68..123cae9 100644
--- a/locale/fr/edit.dtd
+++ b/locale/fr/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chemin vers le répertoire Chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI des données…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "p">
 <!ENTITY save "Enregistrer">
 <!ENTITY save.ak "E">
-<!ENTITY switchtoinstall "Aller à l'installation">
-<!ENTITY switchtoinstall.ak "A">
-<!ENTITY tags "Balises">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Aller à la ligne">
 <!ENTITY wraplines.ak "g">
 <!ENTITY xulnamespace "Espace de nom XUL par défaut">
diff --git a/locale/fr/edit.properties b/locale/fr/edit.properties
index ce8f69f..874843a 100644
--- a/locale/fr/edit.properties
+++ b/locale/fr/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Éditer « %S »
 newstyletitle=Nouveau style
 missingcode=Indiquer du code pour ce style.
 missingname=Donner un nom à ce style.
-unsavedchanges=Souhaitez-vous enregistrer les modifications apportées à ce style ?
-unsavedchangestitle=Enregistrer les modifications ?
diff --git a/locale/fr/extensions.dtd b/locale/fr/extensions.dtd
deleted file mode 100644
index 0aa2160..0000000
--- a/locale/fr/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Modules complémentaires">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Catalogue">
-<!ENTITY extensions.label "Extensions">
-<!ENTITY themes.label "Thèmes">
-<!ENTITY locales.label "Langues">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Mises à jour">
-<!ENTITY install.label "Installation">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Rechercher des mises à jour">
-<!ENTITY cmd.checkUpdatesAll.accesskey "c">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Rechercher des mises à jour pour vos modules complémentaires">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Rechercher des mises à jour pour vos thèmes">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Rechercher des mises à jour pour vos plugins">
-<!ENTITY cmd.installLocalFile.label "Installer…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Installer un module complémentaire">
-<!ENTITY cmd.installFileTheme.tooltip "Installer un thème">
-<!ENTITY cmd.installUpdatesAll2.label "Installer les mises à jour">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Installer les mises à jour sélectionnées">
-<!ENTITY cmd.restartApp2.label "Redémarrer &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Redémarrer &brandShortName; pour appliquer les changements">
-<!ENTITY cmd.skip.label "Ignorer">
-<!ENTITY cmd.skip.accesskey "g">
-<!ENTITY cmd.skip.tooltip "Ignorer ces mises à jour">
-<!ENTITY cmd.continue.label "Continuer">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continuer le chargement de &brandShortName;">
-<!ENTITY cmd.enableAll.label "Tout activer">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "Activer tous les modules affichés">
-<!ENTITY cmd.disableAll.label "Tout désactiver">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Désactiver tous les modules affichés">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Utiliser le thème">
-<!ENTITY cmd.useTheme.accesskey "U">
-<!ENTITY cmd.useTheme.tooltip "Changer le thème de &brandShortName;">
-<!ENTITY cmd.options.label "Options">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Gérer les options de l\'extension sélectionnée">
-<!ENTITY cmd.optionsUnix.label "Préférences">
-<!ENTITY cmd.optionsUnix.accesskey "r">
-<!ENTITY cmd.optionsUnix.tooltip "Gérer les préférences de l\'extension sélectionnée">
-<!ENTITY cmd.enable.label "Activer">
-<!ENTITY cmd.enable.accesskey "A">
-<!ENTITY cmd.enable.tooltip "Activer ce module au prochain redémarrage de &brandShortName;">
-<!ENTITY cmd.disable.label "Désactiver">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Désactiver ce module au prochain redémarrage de &brandShortName;">
-<!ENTITY cmd.uninstall.label "Désinstaller">
-<!ENTITY cmd.uninstall2.accesskey "s">
-<!ENTITY cmd.uninstall2.tooltip "Désinstaller ce module au prochain redémarrage de &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Annuler la désinstallation">
-<!ENTITY cmd.cancelUninstall.accesskey "n">
-<!ENTITY cmd.cancelUninstall.tooltip "Annuler la désinstallation de ce module">
-<!ENTITY cmd.cancelInstall.label "Annuler l\'installation">
-<!ENTITY cmd.cancelInstall.accesskey "n">
-<!ENTITY cmd.cancelInstall.tooltip "Annuler l\'installation de ce module">
-<!ENTITY cmd.cancelUpgrade.label "Annuler la mise à jour">
-<!ENTITY cmd.cancelUpgrade.accesskey "n">
-<!ENTITY cmd.cancelUpgrade.tooltip "Annuler la mise à jour de ce module">
-<!ENTITY cmd.installUpdate.label "Installer une mise à jour">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Installer une mise à jour pour ce module">
-<!ENTITY cmd.showUpdateInfo.label "Afficher les informations">
-<!ENTITY cmd.showUpdateInfo.accesskey "f">
-<!ENTITY cmd.showUpdateInfo.tooltip "Afficher plus d\'informations concernant ces mises à jour">
-<!ENTITY cmd.hideUpdateInfo.label "Masquer les informations">
-<!ENTITY cmd.hideUpdateInfo.accesskey "M">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Masquer les informations concernant ces mises à jour">
-<!ENTITY cmd.installSearchResult.label "Ajouter à &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Télécharger et installer ce module complémentaire">
-<!-- Context Menu Options: Extension -->
-<!ENTITY cancel.label "Annuler">
-<!ENTITY cancel.accesskey "n">
-<!ENTITY cancelInstall.label "Annuler">
-<!ENTITY cancelInstall.accesskey "n">
-<!ENTITY cancelUpgrade.label "Annuler">
-<!ENTITY cancelUpgrade.accesskey "n">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cmd.homepage.label "Visiter la page Web">
-<!ENTITY cmd.homepage.accesskey "V">
-<!ENTITY cmd.about2.label "À propos de ce module">
-<!ENTITY cmd.about.accesskey "p">
-<!ENTITY cmd.checkUpdate.label "Rechercher une mise à jour">
-<!ENTITY cmd.checkUpdate.accesskey "R">
-<!ENTITY cmd.includeUpdate.label "Inclure une mise à jour">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Inclure cette mise à jour">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Inclure ce module lors de l\'installation des mises à jour">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY insecureUpdate.label "Ne fournit pas de mises à jour sécurisées.">
-<!ENTITY needsDependencies.label "Nécessite des éléments supplémentaires.">
-<!ENTITY blocklisted.label "Désactivé pour votre sécurité.">
-<!ENTITY softBlocklisted.label "Connu pour causer des problèmes de sécurité ou de stabilité.">
-<!ENTITY outdated.label "Une nouvelle version plus sûre est disponible.">
-<!ENTITY toBeDisabled.label "Ce module sera désactivé au prochain redémarrage de &brandShortName;.">
-<!ENTITY toBeEnabled.label "Ce module sera activé au prochain redémarrage de &brandShortName;.">
-<!ENTITY toBeInstalled.label "Ce module sera installé au prochain redémarrage de &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Ce module sera désinstallé au prochain redémarrage de &brandShortName;.">
-<!ENTITY toBeUpdated.label "Ce module sera mis à jour au prochain redémarrage de &brandShortName;.">
-<!ENTITY getExtensions.label "Obtenir des extensions">
-<!ENTITY getThemes.label "Obtenir des thèmes">
-<!ENTITY getPlugins.label "Obtenir des plugins">
-<!ENTITY searchAddons.label "Rechercher dans tous les modules complémentaires">
-<!ENTITY browseAddons.label "Parcourir tous les modules complémentaires">
-<!ENTITY searchFailed.label "&brandShortName; n\'a pas pu trouver de modules complémentaires">
-<!ENTITY recommendedHeader.label "Recommandés">
-<!ENTITY recommendedThrobber.label "Trouver les modules complémentaires recommandés">
-<!ENTITY searchThrobber.label "Recherche de modules">
-<!ENTITY resetSearch.label "Effacer les résultats">
-<!ENTITY noSearchResults.label "Tous les résultats sont déjà installés ou incompatibles.">
-<!ENTITY noRecommendedResults.label "Toutes les recommandations sont déjà installées ou incompatibles.">
-<!ENTITY emptySearch.label "Aucune correspondance trouvée">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Annuler">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "En apprendre plus">
-<!ENTITY searchBox.label "Rechercher des modules">
-<!ENTITY recommendedResults.label "Voir tous les modules complémentaires recommandés">
-<!ENTITY searchResultConnecting.label "Connexion…">
-<!ENTITY searchResultInstalling.label "Installation…">
-<!ENTITY searchResultFailed.label "L\'installation a échoué">
-<!ENTITY searchResultInstalled.label "L\'installation est terminée">
-<!ENTITY addonTypeExtension.label "Extension">
-<!ENTITY addonTypeTheme.label "Thème">
-<!ENTITY missingThumbnail.label "Pas d\'aperçu">
-<!ENTITY previewNoThemeSelected.label "Aucun thème sélectionné">
-<!ENTITY previewNoPreviewImage.label "Aucune image de prévisualisation n\'est disponible pour ce thème.">
-<!ENTITY moreInfo.label "Plus de détails">
-<!ENTITY infoNoAddonSelected.label "Aucune mise à jour sélectionnée">
-<!ENTITY infoNoUpdateInfo.label "Aucune information complémentaire n\'est disponible pour cette mise à jour">
-<!ENTITY infoUpdateInfoError.label "Une erreur s\'est produite au cours du chargement des informations concernant cette mise à jour">
-<!ENTITY updateSuccess.label "Mise à jour terminée avec succès.">
-<!ENTITY installSuccess.label "Installation terminée avec succès.">
-<!ENTITY installSuccessRestart.label "Veuillez redémarrer pour terminer l\'installation.">
-<!ENTITY updateSuccessRestart.label "Veuillez redémarrer pour terminer la mise à jour.">
-<!ENTITY installWaiting.label "En attente…">
-<!ENTITY installIncompatibleUpdate.label "Vérification de la compatibilité…">
-<!ENTITY installFinishing.label "Installation en cours…">
-<!ENTITY installFailure.label "L\'installation a échoué.">
-<!ENTITY progressStatus.label "Recherche de mises à jour">
-<!ENTITY eula.title "Accord de licence utilisateur">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accepter et installer…">
-<!ENTITY blocklist.blocked.label "Bloqué">
-<!ENTITY blocklist.checkbox.label "Désactiver">
diff --git a/locale/fr/install.dtd b/locale/fr/install.dtd
index 4d53600..c72486f 100644
--- a/locale/fr/install.dtd
+++ b/locale/fr/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Aperçu">
 <!ENTITY preview.ak "p">
-<!ENTITY switchtoedit "Éditer">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Installer le style de l\'utilisateur">
diff --git a/locale/fr/manage.dtd b/locale/fr/manage.dtd
index 4f149cf..a5c6442 100644
--- a/locale/fr/manage.dtd
+++ b/locale/fr/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Modifier les balises">
-<!ENTITY changetags.ak "M">
-<!ENTITY done "Effectué">
-<!ENTITY done.ak "f">
 <!ENTITY filter "Chercher">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Styles utilisateurs">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visitez">
 <!ENTITY nostylesend "pour obtenir de l'aide sur l'utilisation de Stylish.">
 <!ENTITY sortenabled "Activé">
 <!ENTITY sortname "Nom">
-<!ENTITY sorttag "Balise">
 <!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Trier par :">
-<!ENTITY update "Mise à jour">
-<!ENTITY update.ak "j">
 <!ENTITY writenew "Créer un nouveau style…">
 <!ENTITY writenew.ak "y">
diff --git a/locale/fr/manage.properties b/locale/fr/manage.properties
index d54c1cf..4be8867 100644
--- a/locale/fr/manage.properties
+++ b/locale/fr/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Activé
-groupEnabledFalse=Désactivé
-groupTagNone=Pas de balises
-groupTypeApp=Application
-groupTypeGlobal=Global
-groupTypeNone=Pas de type
-groupTypeSite=Site
-styleRegistrationOff=Tous les styles sont désactivés.
-styleRegistrationTurnOn=Activer les styles
-styleRegistrationTurnOn.ak=v
-updateAvailable=Une mise à jour est disponible.
-updateCheckError=Une erreur est survenue lors de la recherche de mises à jour.
-updateCompleted=Mise à jour effectuée.
-updateFailed=Erreur lors de la mise à jour.
-updateNotFound=Aucune mise à jour trouvée.
-updateNotPossible=Mises à jour impossibles.
 appstyledescription=Affecte l\'interface utilisateur.
 globalstyledescription=Peut tout affecter.
 sitestyledescription=Affecte %S.
-tagstyledescription=Balises : %S.
 manageaddonstitle=Styles utilisateurs
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/fr/overlay.dtd b/locale/fr/overlay.dtd
index 5b4bbfa..bcf4b98 100644
--- a/locale/fr/overlay.dtd
+++ b/locale/fr/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Installer le fichier…">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Activer">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Désactiver">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Désinstaller">
+<!ENTITY cmd.uninstall2.accesskey "s">
 <!ENTITY findstylebrowser "Trouver des styles pour ce site…">
 <!ENTITY findstylebrowser.ak "T">
 <!ENTITY managestyles "Gérer les styles…">
diff --git a/locale/fr/overlay.properties b/locale/fr/overlay.properties
index 19f5692..81e217a 100644
--- a/locale/fr/overlay.properties
+++ b/locale/fr/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S style(s) pour le site, %S style(s) pour l\'interface
 tooltipStylesOff=Stylish - les styles sont désactivés
 updatestyle=Voulez-vous vraiment mettre à jour « %S » ?
diff --git a/locale/gl/common.dtd b/locale/gl/common.dtd
new file mode 100644
index 0000000..bd5ceeb
--- /dev/null
+++ b/locale/gl/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "Editar">
+<!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
+<!ENTITY stylish "Xeitosiño">
diff --git a/locale/gl/common.properties b/locale/gl/common.properties
new file mode 100644
index 0000000..5d8db9e
--- /dev/null
+++ b/locale/gl/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=De seguro que queres desinstalar \'%S\'?
+deleteStyleTitle=Desinstalar o estilo?
+deleteStyleOK=Desinstalar
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Darlle xeito á web co Xeitosiño, un xestor dos estilos do usuario
diff --git a/locale/gl/domi.dtd b/locale/gl/domi.dtd
new file mode 100644
index 0000000..6c779d7
--- /dev/null
+++ b/locale/gl/domi.dtd
@@ -0,0 +1 @@
+<!ENTITY copyselector "Copiar o Selector">
diff --git a/locale/gl/edit.dtd b/locale/gl/edit.dtd
new file mode 100644
index 0000000..833171d
--- /dev/null
+++ b/locale/gl/edit.dtd
@@ -0,0 +1,22 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
+<!ENTITY chromefolder "Ruta do cartafol do Chrome">
+<!ENTITY chromefolder.ak "C">
+<!ENTITY dataURI "Data URI...">
+<!ENTITY dataURI.ak "D">
+<!ENTITY htmlnamespace "Espacio de nomes HTML por defecto">
+<!ENTITY htmlnamespace.ak "H">
+<!ENTITY insert "Inserir">
+<!ENTITY insert.ak "I">
+<!ENTITY name "Nome">
+<!ENTITY name.ak "n">
+<!ENTITY openintexternaleditor "Abrir nun editor externo">
+<!ENTITY openintexternaleditor.ak "x">
+<!ENTITY preview "Previsualizar">
+<!ENTITY preview.ak "P">
+<!ENTITY save "Gardar">
+<!ENTITY save.ak "G">
+<!ENTITY wraplines "Envolver liñas">
+<!ENTITY wraplines.ak "V">
+<!ENTITY xulnamespace "Espacio de nomes XUL por defecto">
+<!ENTITY xulnamespace.ak "X">
diff --git a/locale/gl/edit.properties b/locale/gl/edit.properties
new file mode 100644
index 0000000..30546de
--- /dev/null
+++ b/locale/gl/edit.properties
@@ -0,0 +1,5 @@
+dataURIDialogTitle=Escoller Arquivo a Inserir
+editstyletitle=Editando \'%S\'
+newstyletitle=Novo estilo
+missingcode=Inserir código para este estilo
+missingname=Darlle nome a este estilo
diff --git a/locale/gl/install.dtd b/locale/gl/install.dtd
new file mode 100644
index 0000000..07d599d
--- /dev/null
+++ b/locale/gl/install.dtd
@@ -0,0 +1,6 @@
+<!ENTITY entername "Darlle nome a este estilo:">
+<!ENTITY install "Instalar">
+<!ENTITY install.ak "I">
+<!ENTITY preview "Previsualizar">
+<!ENTITY preview.ak "P">
+<!ENTITY title "Instalar estilo de usuario">
diff --git a/locale/gl/install.properties b/locale/gl/install.properties
new file mode 100644
index 0000000..5d9fc0a
--- /dev/null
+++ b/locale/gl/install.properties
@@ -0,0 +1,8 @@
+installintro=Estás a piques de instalar o \'%S\' no Xeitosiño.
+installintrononame=Estás a piques de instalar un estilo no Xeitosiño.
+installapp=Este estilo podería afectar o interfaz de usuario do %S. Se cadra terás que reiniciar %S para que este estilo faga efecto.
+installglobal=Este estilo podería afectar a tódalas páxinas
+installsite=Este estilo podería afectar ás páxinas seguintes:
+installnotype=Este estilo podería afectar páxinas ou o interfaz do usuario %S
+missingname=Darlle un nome a este estilo
+preview.tooltip=Aplica temporalmente o estilo, para que podas ver se che gusta ou non
diff --git a/locale/gl/manage.dtd b/locale/gl/manage.dtd
new file mode 100644
index 0000000..5583be7
--- /dev/null
+++ b/locale/gl/manage.dtd
@@ -0,0 +1,10 @@
+<!ENTITY filter "Procurar">
+<!ENTITY installfromurls "Instalar dende ligazóns...">
+<!ENTITY managetitle "Xeitosiño">
+<!ENTITY nostylesstart "Visitar">
+<!ENTITY nostylesend "para información sobre como usar o Xeitosiño.">
+<!ENTITY sortenabled "Activar">
+<!ENTITY sortname "Nome">
+<!ENTITY sorttype "Tipo">
+<!ENTITY writenew "Escribir Novo Estilo">
+<!ENTITY writenew.ak "E">
diff --git a/locale/gl/manage.properties b/locale/gl/manage.properties
new file mode 100644
index 0000000..d597e93
--- /dev/null
+++ b/locale/gl/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=Afecta a interfaz de usuario.
+globalstyledescription=Pode afectar calquera cousa.
+sitestyledescription=Afecta %S.
+manageaddonstitle=Estilos de Usuario
+installfromurlsprompttitle=Instalar dende dirección
+installfromurlsprompt=Inserir dirección dos estilos a instalar. Admite páxinas de userstyles.org ou ficheiros CSS. Separa con espacios as direccións múltiples.
+installfromurlserror=Non puido instalar as seguintes direccións: %s.
diff --git a/locale/gl/overlay.dtd b/locale/gl/overlay.dtd
new file mode 100644
index 0000000..0a87ddb
--- /dev/null
+++ b/locale/gl/overlay.dtd
@@ -0,0 +1,18 @@
+<!ENTITY addfile "Instalar ficheiro...">
+<!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Activar">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Desactivar">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Desinstalar">
+<!ENTITY cmd.uninstall2.accesskey "D">
+<!ENTITY findstylebrowser "Atopar estilos para esta páxina">
+<!ENTITY findstylebrowser.ak "A">
+<!ENTITY managestyles "Xestionar estilos...">
+<!ENTITY managestyles.ak "X">
+<!ENTITY turnon "Activar tódolos estilos">
+<!ENTITY turnon.ak "T">
+<!ENTITY turnoff "Desactivar tódolos estilos">
+<!ENTITY turnoff.ak "D">
+<!ENTITY writestyle "Escribir novo estilo">
+<!ENTITY writestyle.ak "E">
diff --git a/locale/gl/overlay.properties b/locale/gl/overlay.properties
new file mode 100644
index 0000000..ee81492
--- /dev/null
+++ b/locale/gl/overlay.properties
@@ -0,0 +1,14 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
+tooltip=Xeitosiño - %S estilos locales, %S estilos globales
+tooltipStylesOff=Xeitosiño - Os estilos estanche desactivados
+updatestyle=Seguro que queres actualizar \'%S\'?
+updatestyleok=Actualizar
+updatestyletitle=Actualizar Estilo
+writeblank=Estilo en branco...
+writeblankaccesskey=b
+writefordomain=Para %S...
+writeforsite=Para esta dirección...
+writeforsiteaccesskey=d
diff --git a/locale/he/common.dtd b/locale/he/common.dtd
index 39302e4..33ad531 100644
--- a/locale/he/common.dtd
+++ b/locale/he/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "ערוך">
 <!ENTITY editstyle.ak "ע">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/he/common.properties b/locale/he/common.properties
index 6845d1b..bfd6086 100644
--- a/locale/he/common.properties
+++ b/locale/he/common.properties
@@ -1,10 +1,4 @@
-changeTags=הסר את התג \'%S\' והוסף את התגיות הבאות:
-changeTagsNoCurrent=הוסף את התגיות הבאות:
-changeTagsTitle=שנה תגיות
 deleteStyle=האם אתה בטוח שברצונך להסיר את ההתקנה של \'%S\'?
 deleteStyleTitle=להסיר את הסגנון?
 deleteStyleOK=הסר
-deleteStyles=האם אתה בטוח שברצונך להסיר את ההתקנה של סגנונות אלה של %S?
-deleteStylesTitle=להסיר את הסגנונות?
-deleteStylesOK=הסר
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=עצב מחדש את אתרי האינטרנט עם Stylish, (עם) מנהל הסגנונות של המשתמש
diff --git a/locale/he/edit.dtd b/locale/he/edit.dtd
index 24479b4..f7836bc 100644
--- a/locale/he/edit.dtd
+++ b/locale/he/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "נתיב תיקית Chrome">
 <!ENTITY chromefolder.ak "נ">
 <!ENTITY dataURI "Data URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "צ">
 <!ENTITY save "שמור">
 <!ENTITY save.ak "מ">
-<!ENTITY switchtoinstall "עבור להתקנה">
-<!ENTITY switchtoinstall.ak "ע">
-<!ENTITY tags "תגיות">
-<!ENTITY tags.ak "ג">
 <!ENTITY wraplines "גלישת שורות">
 <!ENTITY wraplines.ak "ש">
 <!ENTITY xulnamespace "שם מרחב XUL כברירת מחדל">
diff --git a/locale/he/edit.properties b/locale/he/edit.properties
index e44dc39..58c8563 100644
--- a/locale/he/edit.properties
+++ b/locale/he/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=עורך את \'%S\'
 newstyletitle=סגנון חדש
 missingcode=הזן קטע code עבור סגנון זה.
 missingname=תן שם לסגנון הזה.
-unsavedchanges=האם את מעוניין לשמור את השינויים עבור הסגנון הזה?
-unsavedchangestitle=האם לשמור את השינויים?
diff --git a/locale/he/extensions.dtd b/locale/he/extensions.dtd
deleted file mode 100644
index ece5770..0000000
--- a/locale/he/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "תוספות">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "קבל תוספות">
-<!ENTITY extensions.label "הרחבות">
-<!ENTITY themes.label "ערכות נושא">
-<!ENTITY locales.label "שפות">
-<!ENTITY plugins.label "תוספים">
-<!ENTITY update.label "עדכונים">
-<!ENTITY install.label "התקנה">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "מצא עדכונים">
-<!ENTITY cmd.checkUpdatesAll.accesskey "מ">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "מצא עדכונים לתוספות שלך">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "מצא עדכונים לערכות הנושא שלך">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "מצא עדכונים לתוספים שלך">
-<!ENTITY cmd.installLocalFile.label "התקן...">
-<!ENTITY cmd.installLocalFile.accesskey "ק">
-<!ENTITY cmd.installFileAddon.tooltip "התקן תוסף">
-<!ENTITY cmd.installFileTheme.tooltip "התקן ערכת נושא">
-<!ENTITY cmd.installUpdatesAll2.label "התקן עדכונים">
-<!ENTITY cmd.installUpdatesAll2.accesskey "ע">
-<!ENTITY cmd.installUpdatesAll2.tooltip "התקן עדכונים שנבחרו">
-<!ENTITY cmd.restartApp2.label "הפעל מחדש">
-<!ENTITY cmd.restartApp2.accesskey "פ">
-<!ENTITY cmd.restartApp2.tooltip "הפעל מחדש להחיל את השינויים">
-<!ENTITY cmd.skip.label "דלג">
-<!ENTITY cmd.skip.accesskey "ל">
-<!ENTITY cmd.skip.tooltip "דלג על עדכון זה">
-<!ENTITY cmd.continue.label "המשך">
-<!ENTITY cmd.continue.accesskey "ש">
-<!ENTITY cmd.continue.tooltip "המשך לטעון את Firefox">
-<!ENTITY cmd.enableAll.label "אפשר הכל">
-<!ENTITY cmd.enableAll.accesskey "כ">
-<!ENTITY cmd.enableAll.tooltip "אפשר את כל התוספות שמוצגות">
-<!ENTITY cmd.disableAll.label "בטל הכל">
-<!ENTITY cmd.disableAll.accesskey "ב">
-<!ENTITY cmd.disableAll.tooltip "בטל את כל התוספות שמוצגות">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "השתמש בערכת נושא">
-<!ENTITY cmd.useTheme.accesskey "נ">
-<!ENTITY cmd.useTheme.tooltip "שינוי ערכת הנושא של Firefox">
-<!ENTITY cmd.options.label "אפשרויות">
-<!ENTITY cmd.options.accesskey "ש">
-<!ENTITY cmd.options.tooltip "הגדר אפשרויות עבור ההרחבה שנבחרה">
-<!ENTITY cmd.optionsUnix.label "מאפיינים">
-<!ENTITY cmd.optionsUnix.accesskey "נ">
-<!ENTITY cmd.optionsUnix.tooltip "עריכת מאפיינים עבור ההרחבה שנבחרה">
-<!ENTITY cmd.enable.label "הפוך לזמין">
-<!ENTITY cmd.enable.accesskey "פ">
-<!ENTITY cmd.enable.tooltip "הפוך הרחבה זו לזמינה כאשר Firefox מופעל מחדש">
-<!ENTITY cmd.disable.label "הפוך ללא זמין">
-<!ENTITY cmd.disable.accesskey "מ">
-<!ENTITY cmd.disable.tooltip "הפוך הרחבה זו ללא זמינה כאשר Firefox מופעל מחדש">
-<!ENTITY cmd.uninstall.label "הסרה">
-<!ENTITY cmd.uninstall2.accesskey "ס">
-<!ENTITY cmd.uninstall2.tooltip "הסר הרחבה זו כאשר Firefox מופעל מחדש">
-<!ENTITY cmd.cancelUninstall.label "בטל הסרה">
-<!ENTITY cmd.cancelUninstall.accesskey "ב">
-<!ENTITY cmd.cancelUninstall.tooltip "בטל את ההסרה הרחבה זו">
-<!ENTITY cmd.cancelInstall.label "בטל התקנה">
-<!ENTITY cmd.cancelInstall.accesskey "נ">
-<!ENTITY cmd.cancelInstall.tooltip "בטל את ההתקנה של הרחבה זו">
-<!ENTITY cmd.cancelUpgrade.label "בטל שדרוג">
-<!ENTITY cmd.cancelUpgrade.accesskey "ש">
-<!ENTITY cmd.cancelUpgrade.tooltip "בטל את השדרוג של הרחבה זו">
-<!ENTITY cmd.installUpdate.label "התקן עדכון">
-<!ENTITY cmd.installUpdate.accesskey "ע">
-<!ENTITY cmd.installUpdate.tooltip "התקן עדכון לתוספת הזאת">
-<!ENTITY cmd.showUpdateInfo.label "הצג מידע">
-<!ENTITY cmd.showUpdateInfo.accesskey "צ">
-<!ENTITY cmd.showUpdateInfo.tooltip "הצג מידע נוסף אודות עדכונים אלה">
-<!ENTITY cmd.hideUpdateInfo.label "הסתר מידע">
-<!ENTITY cmd.hideUpdateInfo.accesskey "ע">
-<!ENTITY cmd.hideUpdateInfo.tooltip "הסתר מידע נוסף אודות עדכונים אלה">
-<!ENTITY cmd.installSearchResult.label "הוסף אל Firefox...">
-<!ENTITY cmd.installSearchResult.accesskey "ס">
-<!ENTITY cmd.installSearchResult.tooltip "הורד והתקן תוספת זו">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "ביטול">
-<!ENTITY cancel.accesskey "ב">
-<!ENTITY cancelInstall.label "ביטול">
-<!ENTITY cancelInstall.accesskey "ב">
-<!ENTITY cancelUpgrade.label "ביטול">
-<!ENTITY cancelUpgrade.accesskey "ב">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "בקר בדף בית">
-<!ENTITY cmd.homepage.accesskey "ק">
-<!ENTITY cmd.about2.label "אודות תוספת זו">
-<!ENTITY cmd.about.accesskey "פ">
-<!ENTITY cmd.checkUpdate.label "מצא עדכון">
-<!ENTITY cmd.checkUpdate.accesskey "צ">
-<!ENTITY cmd.includeUpdate.label "כלול עדכון">
-<!ENTITY cmd.includeUpdate.accesskey "כ">
-<!ENTITY includeUpdate.label "כלול עדכון זה">
-<!ENTITY includeUpdate.accesskey "ע">
-<!ENTITY includeUpdate.tooltip "כלול תוספת זו בעת התקנת העדכונים">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "אינו מספק עדכונים מאובטחים.">
-<!ENTITY needsDependencies.label "דורש פריטים נוספים.">
-<!ENTITY blocklisted.label "לא זמין מטעמי אבטחה.">
-<!ENTITY softBlocklisted.label "ידוע כגורם לבעיות אבטחה או יציבות.">
-<!ENTITY outdated.label "קיימת גירסה חדשה ובטוחה יותר.">
-<!ENTITY toBeDisabled.label "תוספת זו תהפוך ללא זמינה כאשר Firefox יופעל מחדש.">
-<!ENTITY toBeEnabled.label "תוספת זו תהפוך לזמינה כאשר Firefox יופעל מחדש.">
-<!ENTITY toBeInstalled.label "תוספת זו תותקן כאשר Firefox יופעל מחדש.">
-<!ENTITY toBeUninstalled.label "תוספת זו תוסר כאשר תפעיל את Firefox מחדש.">
-<!ENTITY toBeUpdated.label "תוספת זו תעודכן כאשר תפעיל את Firefox מחדש.">
-<!ENTITY getExtensions.label "קבל הרחבות">
-<!ENTITY getThemes.label "קבל ערכות נושא">
-<!ENTITY getPlugins.label "קבל תוספים">
-<!ENTITY searchAddons.label "חפש בכל התוספות">
-<!ENTITY browseAddons.label "נווט בכל התוספות">
-<!ENTITY searchFailed.label "Firefox לא הצליח למצוא מידע ולהציגו עבור התוספות">
-<!ENTITY recommendedHeader.label "מומלץ">
-<!ENTITY recommendedThrobber.label "מחפש ומציג מידע עבור תוספות מומלצות">
-<!ENTITY searchThrobber.label "מחפש תוספות">
-<!ENTITY resetSearch.label "נקה תוצאות">
-<!ENTITY noSearchResults.label "כל התוצאות הן כבר מותקנות או לא תואמות.">
-<!ENTITY noRecommendedResults.label "כל ההמלצות הן כבר מותקנות או לא תואמות.">
-<!ENTITY emptySearch.label "אין תוספות תואמות">
-<!ENTITY emptySearch.button "אישור">
-<!ENTITY cancelSearch.button "ביטול">
-<!ENTITY searchFailed.button "אישור">
-<!ENTITY searchResultHomepage.value "למד עוד">
-<!ENTITY searchBox.label "חפש בכל התוספות">
-<!ENTITY recommendedResults.label "ראה את כל התוספות המומלצות">
-<!ENTITY searchResultConnecting.label "מתחבר...">
-<!ENTITY searchResultInstalling.label "מתקין...">
-<!ENTITY searchResultFailed.label "ההתקנה נכשלה">
-<!ENTITY searchResultInstalled.label "ההתקנה הושלמה">
-<!ENTITY addonTypeExtension.label "הרחבה">
-<!ENTITY addonTypeTheme.label "ערכת נושא">
-<!ENTITY missingThumbnail.label "ללא תצוגה">
-<!ENTITY previewNoThemeSelected.label "לא נבחרה ערכת נושא">
-<!ENTITY previewNoPreviewImage.label "ערכת נושא זו היא ללא תצוגה מקדימה">
-<!ENTITY moreInfo.label "מידע נוסף">
-<!ENTITY infoNoAddonSelected.label "לא נבחר עדכון">
-<!ENTITY infoNoUpdateInfo.label "לא קיים מידע נוסף עבור עדכון זה">
-<!ENTITY infoUpdateInfoError.label "אירעה שגיאה עבור טעינת המידע אודות עדכון זה">
-<!ENTITY updateSuccess.label "העדכון הושלם בהצלחה.">
-<!ENTITY installSuccess.label "ההתקנה הושלמה בהצלחה.">
-<!ENTITY installSuccessRestart.label "הפעל מחדש להשלמת התתקנה.">
-<!ENTITY updateSuccessRestart.label "הפעל מחדש להשלמת העדכון.">
-<!ENTITY installWaiting.label "ממתין...">
-<!ENTITY installIncompatibleUpdate.label "בודק תאימות...">
-<!ENTITY installFinishing.label "מתקין...">
-<!ENTITY installFailure.label "התקנה נכשלה.">
-<!ENTITY progressStatus.label "בודק עבור עדכונים">
-<!ENTITY eula.title "הסכם רשיון למשתמש הקצה">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "קבל את תנאי ההסכם והתקן...">
-<!ENTITY blocklist.blocked.label "חסום">
-<!ENTITY blocklist.checkbox.label "לא זמין">
diff --git a/locale/he/install.dtd b/locale/he/install.dtd
index 2d76c2e..b5a2dd3 100644
--- a/locale/he/install.dtd
+++ b/locale/he/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "ק">
 <!ENTITY preview "תצוגה מקדימה">
 <!ENTITY preview.ak "צ">
-<!ENTITY switchtoedit "עבור להתקנה">
-<!ENTITY switchtoedit.ak "ב">
 <!ENTITY title "התקן סגנון של משתמש">
diff --git a/locale/he/manage.dtd b/locale/he/manage.dtd
index ca7275e..a7a9c62 100644
--- a/locale/he/manage.dtd
+++ b/locale/he/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "שנה תגיות">
-<!ENTITY changetags.ak "ש">
-<!ENTITY done "הושלם">
-<!ENTITY done.ak "ש">
 <!ENTITY filter "חיפוש">
 <!ENTITY installfromurls "התקנת מכתובות Url...">
-<!ENTITY manageaddonstitle "סגנונות משתמש">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "בקר באתר">
 <!ENTITY nostylesend "לקבלת מידע כיצד יש להשתמש ב־ Stylish">
 <!ENTITY sortenabled "פעיל">
 <!ENTITY sortname "שם">
-<!ENTITY sorttag "תגית">
 <!ENTITY sorttype "סוג">
-<!ENTITY sortgroup "סדר לפי:">
-<!ENTITY update "עדכן">
-<!ENTITY update.ak "ע">
 <!ENTITY writenew "כתוב סגנון חדש">
 <!ENTITY writenew.ak "כ">
diff --git a/locale/he/manage.properties b/locale/he/manage.properties
index 1f15187..ecace9e 100644
--- a/locale/he/manage.properties
+++ b/locale/he/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=פעיל
-groupEnabledFalse=לא פעיל
-groupTagNone=ללא תגיות
-groupTypeApp=יישום
-groupTypeGlobal=כללי
-groupTypeNone=ללא סוג
-groupTypeSite=אתר
-styleRegistrationOff=כל הסגנונות לא פעילים
-styleRegistrationTurnOn=הפעל סגנונות
-styleRegistrationTurnOn.ak=ע
-updateAvailable=קים עדכון זמין
-updateCheckError=אירעה שגיאה בבדיקה של העדכון.
-updateCompleted=עדכון הושלם.
-updateFailed=עדכון נכשל.
-updateNotFound=לא נמצאו עדכונים.
-updateNotPossible=עדכונים אינם אפשריים.
 appstyledescription=משפיע ופועל על ממשק המשתמש.
 globalstyledescription=לא משפיע על כלום.
 sitestyledescription=משפיע על %S.
-tagstyledescription=תגיות: %S.
 manageaddonstitle=סגנונות משתמש
 installfromurlsprompttitle=התקנת מכתובות Url...
 installfromurlsprompt=הזן כתובות Url של משתמש סגנונות על מנת להתקין. אלה יכולים להיות דפים מ־ userstyles.org או קבצי CSS. יש להפריד כתובות מרובות ע"י רווחים.
diff --git a/locale/he/overlay.dtd b/locale/he/overlay.dtd
index f7f5313..d3cbae9 100644
--- a/locale/he/overlay.dtd
+++ b/locale/he/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "התקנת קובץ...">
 <!ENTITY addfile.ak "ב">
+<!ENTITY cmd.enable.label "הפוך לזמין">
+<!ENTITY cmd.enable.accesskey "פ">
+<!ENTITY cmd.disable.label "הפוך ללא זמין">
+<!ENTITY cmd.disable.accesskey "מ">
+<!ENTITY cmd.uninstall.label "הסרה">
+<!ENTITY cmd.uninstall2.accesskey "ס">
 <!ENTITY findstylebrowser "מצא סגנונות עבור אתר זה...">
 <!ENTITY findstylebrowser.ak "מ">
 <!ENTITY managestyles "ניהול סגנונות...">
diff --git a/locale/he/overlay.properties b/locale/he/overlay.properties
index fbde0b5..23e481f 100644
--- a/locale/he/overlay.properties
+++ b/locale/he/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=%S אתרי סגנונות, %S סגנונות כלליים
 tooltipStylesOff=Stylish - סגנונות לא פעילים
 updatestyle=האם אתה בטוח שברצונך לעדכן את \'%S\'?
diff --git a/locale/hu-HU/common.properties b/locale/hu-HU/common.properties
deleted file mode 100644
index 751e2c1..0000000
--- a/locale/hu-HU/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=A \'%S\' címke eltávolítása és a következő címkék hozzáadása.
-changeTagsNoCurrent=A következő címkék hozzáadása:
-changeTagsTitle=Címkék megváltoztatása
-deleteStyle=Biztos benne, hogy eltávolítja a \'%S\'-t?
-deleteStyleTitle=Eltávolítja a stílusfájlt?
-deleteStyleOK=Eltávolítás
-deleteStyles=Biztos benne, hogy eltávolítja a \'%S\' stílusfájlokat?
-deleteStylesTitle=Eltávolítja a stílusfájlokat?
-deleteStylesOK=Eltávolítás
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Öltöztesse át a webet a Stylish-al, a felhasználói stílusfájl kezelővel!
diff --git a/locale/hu-HU/extensions.dtd b/locale/hu-HU/extensions.dtd
deleted file mode 100644
index c31c061..0000000
--- a/locale/hu-HU/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Kiegészítők">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "b">
-<!-- View labels -->
-<!ENTITY search.label "Kiegészítők letöltése">
-<!ENTITY extensions.label "Kiterjesztések">
-<!ENTITY themes.label "Témák">
-<!ENTITY locales.label "Nyelvek">
-<!ENTITY plugins.label "Bővítmények">
-<!ENTITY update.label "Frissítések">
-<!ENTITY install.label "Telepítés">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Frissítések keresése">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "A kiegészítők újabb változatainak keresése">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "A témák újabb változatainak keresése">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "A bővítmények újabb változatainak keresése">
-<!ENTITY cmd.installLocalFile.label "Telepítés…">
-<!ENTITY cmd.installLocalFile.accesskey "T">
-<!ENTITY cmd.installFileAddon.tooltip "Kiegészítő telepítése">
-<!ENTITY cmd.installFileTheme.tooltip "Téma telepítése">
-<!ENTITY cmd.installUpdatesAll2.label "Frissítések telepítése">
-<!ENTITY cmd.installUpdatesAll2.accesskey "e">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Kijelölt frissítések telepítése">
-<!ENTITY cmd.restartApp2.label "A &brandShortName; újraindítása">
-<!ENTITY cmd.restartApp2.accesskey "r">
-<!ENTITY cmd.restartApp2.tooltip "A &brandShortName; újraindítása a változások érvényesítéséhez">
-<!ENTITY cmd.skip.label "Kihagyás">
-<!ENTITY cmd.skip.accesskey "K">
-<!ENTITY cmd.skip.tooltip "Ezen frissítések kihagyása">
-<!ENTITY cmd.continue.label "Folytatás">
-<!ENTITY cmd.continue.accesskey "o">
-<!ENTITY cmd.continue.tooltip "A &brandShortName; betöltésének folytatása">
-<!ENTITY cmd.enableAll.label "Mindet bekapcsolja">
-<!ENTITY cmd.enableAll.accesskey "j">
-<!ENTITY cmd.enableAll.tooltip "Minden megjelenített kiegészítő engedélyezése">
-<!ENTITY cmd.disableAll.label "Mindet kikapcsolja">
-<!ENTITY cmd.disableAll.accesskey "p">
-<!ENTITY cmd.disableAll.tooltip "Minden megjelenített kiegészítő letiltása">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Téma használata">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "A &brandShortName; témájának módosítása.">
-<!ENTITY cmd.options.label "Beállítások">
-<!ENTITY cmd.options.accesskey "B">
-<!ENTITY cmd.options.tooltip "A kijelölt kiterjesztés beállításai">
-<!ENTITY cmd.optionsUnix.label "Beállítások">
-<!ENTITY cmd.optionsUnix.accesskey "B">
-<!ENTITY cmd.optionsUnix.tooltip "A kijelölt kiterjesztés beállításainak szerkesztése">
-<!ENTITY cmd.enable.label "Engedélyezés">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "Ezen kiegészítő engedélyezése a &brandShortName; újraindítása után">
-<!ENTITY cmd.disable.label "Letiltás">
-<!ENTITY cmd.disable.accesskey "s">
-<!ENTITY cmd.disable.tooltip "Ezen kiegészítő letiltása a &brandShortName; újraindítása után">
-<!ENTITY cmd.uninstall.label "Eltávolítás">
-<!ENTITY cmd.uninstall2.accesskey "l">
-<!ENTITY cmd.uninstall2.tooltip "Ezen kiegészítő eltávolítása a &brandShortName; újraindítása után">
-<!ENTITY cmd.cancelUninstall.label "Eltávolítás visszavonása">
-<!ENTITY cmd.cancelUninstall.accesskey "v">
-<!ENTITY cmd.cancelUninstall.tooltip "Ezen kiegészítő eltávolításának visszavonása">
-<!ENTITY cmd.cancelInstall.label "Telepítés visszavonása">
-<!ENTITY cmd.cancelInstall.accesskey "z">
-<!ENTITY cmd.cancelInstall.tooltip "Ezen kiegészítő telepítésének visszavonása">
-<!ENTITY cmd.cancelUpgrade.label "Frissítés visszavonása">
-<!ENTITY cmd.cancelUpgrade.accesskey "F">
-<!ENTITY cmd.cancelUpgrade.tooltip "Ezen kiegészítő frissítésének visszavonása">
-<!ENTITY cmd.installUpdate.label "Frissítés telepítése">
-<!ENTITY cmd.installUpdate.accesskey "i">
-<!ENTITY cmd.installUpdate.tooltip "Frissítés telepítése e kiegészítőhöz">
-<!ENTITY cmd.showUpdateInfo.label "Információ megjelenítése">
-<!ENTITY cmd.showUpdateInfo.accesskey "j">
-<!ENTITY cmd.showUpdateInfo.tooltip "Részletesebb információ megjelenítése ezekről a frissítésekről">
-<!ENTITY cmd.hideUpdateInfo.label "Információ elrejtése">
-<!ENTITY cmd.hideUpdateInfo.accesskey "c">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Az információ elrejtése ezekről a frissítésekről">
-<!ENTITY cmd.installSearchResult.label "Hozzáadás a &brandShortName; programhoz…">
-<!ENTITY cmd.installSearchResult.accesskey "H">
-<!ENTITY cmd.installSearchResult.tooltip "Kiegészítő letöltése és telepítése">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Mégse">
-<!ENTITY cancel.accesskey "M">
-<!ENTITY cancelInstall.label "Mégse">
-<!ENTITY cancelInstall.accesskey "M">
-<!ENTITY cancelUpgrade.label "Mégse">
-<!ENTITY cancelUpgrade.accesskey "M">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Honlap meglátogatása">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "Kiegészítő névjegye">
-<!ENTITY cmd.about.accesskey "n">
-<!ENTITY cmd.checkUpdate.label "Frissítés keresése">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "Frissítésekkel">
-<!ENTITY cmd.includeUpdate.accesskey "r">
-<!ENTITY includeUpdate.label "Ezzel a frissítéssel">
-<!ENTITY includeUpdate.accesskey "z">
-<!ENTITY includeUpdate.tooltip "Ezt a kiegészítőt is frissítse">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Nem biztosít biztonságos frissítéseket.">
-<!ENTITY needsDependencies.label "További elemek szükségesek.">
-<!ENTITY blocklisted.label "Letiltva az Ön védelme érdekében.">
-<!ENTITY softBlocklisted.label "Biztonsági vagy stabilitási problémát okoz.">
-<!ENTITY outdated.label "Újabb, biztonságosabb verzió érhető el.">
-<!ENTITY toBeDisabled.label "Ez a kiegészítő le lesz tiltva a &brandShortName; újraindításakor.">
-<!ENTITY toBeEnabled.label "Ez a kiegészítő engedélyezve lesz a &brandShortName; újraindításakor.">
-<!ENTITY toBeInstalled.label "Ez a kiegészítő telepítve lesz a &brandShortName; újraindításakor.">
-<!ENTITY toBeUninstalled.label "Ez a kiegészítő el lesz távolítva a &brandShortName; újraindításakor.">
-<!ENTITY toBeUpdated.label "Ez a kiegészítő frissítve lesz a &brandShortName; újraindításakor.">
-<!ENTITY getExtensions.label "Kiterjesztések letöltése">
-<!ENTITY getThemes.label "Témák letöltése">
-<!ENTITY getPlugins.label "Bővítmények letöltése">
-<!ENTITY searchAddons.label "Keresés a kiegészítők között">
-<!ENTITY browseAddons.label "Böngészés a kiegészítők között">
-<!ENTITY searchFailed.label "A &brandShortName; nem tudja lekérni a kiegészítőket">
-<!ENTITY recommendedHeader.label "Ajánlott">
-<!ENTITY recommendedThrobber.label "Ajánlott kiegészítők lekérése">
-<!ENTITY searchThrobber.label "Keresés a kiegészítők között">
-<!ENTITY resetSearch.label "Eredmények törlése">
-<!ENTITY noSearchResults.label "Minden eredmény vagy már telepítve van, vagy nem kompatibilis.">
-<!ENTITY noRecommendedResults.label "Minden javaslat vagy már telepítve van, vagy nem kompatibilis.">
-<!ENTITY emptySearch.label "Nincs ilyen kiegészítő">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Mégse">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "További információ">
-<!ENTITY searchBox.label "Keresés a kiegészítők között">
-<!ENTITY recommendedResults.label "Minden ajánlott kiegészítő megjelenítése">
-<!ENTITY searchResultConnecting.label "Kapcsolódás…">
-<!ENTITY searchResultInstalling.label "Telepítés…">
-<!ENTITY searchResultFailed.label "Sikertelen telepítés">
-<!ENTITY searchResultInstalled.label "A telepítés kész">
-<!ENTITY addonTypeExtension.label "Kiterjesztés">
-<!ENTITY addonTypeTheme.label "Téma">
-<!ENTITY missingThumbnail.label "Nincs előnézet">
-<!ENTITY previewNoThemeSelected.label "Nincs kijelölt téma">
-<!ENTITY previewNoPreviewImage.label "A témának nincs előképe">
-<!ENTITY moreInfo.label "További információk">
-<!ENTITY infoNoAddonSelected.label "Nincs kijelölve frissítés">
-<!ENTITY infoNoUpdateInfo.label "Ehhez a frissítéshez nem tartozik tovább információ">
-<!ENTITY infoUpdateInfoError.label "Hiba történt a frissítésről szóló információk betöltésekor">
-<!ENTITY updateSuccess.label "A frissítés sikeresen befejeződött.">
-<!ENTITY installSuccess.label "A telepítés sikeresen befejeződött.">
-<!ENTITY installSuccessRestart.label "Indítsa újra a telepítés befejezéséhez.">
-<!ENTITY updateSuccessRestart.label "Indítsa újra a frissítés befejezéséhez.">
-<!ENTITY installWaiting.label "Kérem, várjon…">
-<!ENTITY installIncompatibleUpdate.label "Kompatibilitás ellenőrzése…">
-<!ENTITY installFinishing.label "Telepítés…">
-<!ENTITY installFailure.label "A telepítés nem sikerült.">
-<!ENTITY progressStatus.label "Frissítések keresése">
-<!ENTITY eula.title "Végfelhasználói licencszerződés">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Elfogadás és telepítés…">
-<!ENTITY blocklist.blocked.label "Blokkolva">
-<!ENTITY blocklist.checkbox.label "Letiltás">
diff --git a/locale/hu-HU/manage.properties b/locale/hu-HU/manage.properties
deleted file mode 100644
index 4445bca..0000000
--- a/locale/hu-HU/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Engedélyezve
-groupEnabledFalse=Letiltva
-groupTagNone=Nincsenek címkék
-groupTypeApp=Alkalmazás
-groupTypeGlobal=Általános
-groupTypeNone=Nincs típus
-groupTypeSite=Oldal
-styleRegistrationOff=Az összes stílusfájl ki van kapcsolva.
-styleRegistrationTurnOn=Stílusfájlok bekapcsolása
-styleRegistrationTurnOn.ak=b
-updateAvailable=Elérhető egy frissítés.
-updateCheckError=Hiba történt a új frissítések keresése alatt.
-updateCompleted=Frissítés kész.
-updateFailed=Frissítés sikertelen.
-updateNotFound=Nem találhatók frissítések.
-updateNotPossible=Frissítés nem lehetséges.
-appstyledescription=A felhasználói felületre van hatással.
-globalstyledescription=Bármire hatással lehet.
-sitestyledescription=A %S -ra van hatással.
-tagstyledescription=Címkék: %S.
-manageaddonstitle=Stílusfájlok
-installfromurlsprompttitle=Install from URLs
-installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/hu-HU/common.dtd b/locale/hu/common.dtd
similarity index 50%
rename from locale/hu-HU/common.dtd
rename to locale/hu/common.dtd
index 395914c..26a4e22 100644
--- a/locale/hu-HU/common.dtd
+++ b/locale/hu/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Szerkesztés">
 <!ENTITY editstyle.ak "S">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/hu/common.properties b/locale/hu/common.properties
new file mode 100644
index 0000000..78007b6
--- /dev/null
+++ b/locale/hu/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=Biztos benne, hogy eltávolítja a \'%S\'-t?
+deleteStyleTitle=Eltávolítja a stílusfájlt?
+deleteStyleOK=Eltávolítás
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Öltöztesse át a webet a Stylish-al, a felhasználói stílusfájl kezelővel!
diff --git a/locale/hu-HU/domi.dtd b/locale/hu/domi.dtd
similarity index 100%
rename from locale/hu-HU/domi.dtd
rename to locale/hu/domi.dtd
diff --git a/locale/hu-HU/edit.dtd b/locale/hu/edit.dtd
similarity index 84%
rename from locale/hu-HU/edit.dtd
rename to locale/hu/edit.dtd
index 102ae32..73f4a21 100644
--- a/locale/hu-HU/edit.dtd
+++ b/locale/hu/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome mappa útvonala">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Adat URL">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "E">
 <!ENTITY save "Mentés">
 <!ENTITY save.ak "s">
-<!ENTITY switchtoinstall "Váltás telepítésre">
-<!ENTITY switchtoinstall.ak "V">
-<!ENTITY tags "Címkék">
-<!ENTITY tags.ak "k">
 <!ENTITY wraplines "Sorok tördelése">
 <!ENTITY wraplines.ak "r">
 <!ENTITY xulnamespace "XUL névtér beállítása alapértelmezettként">
diff --git a/locale/hu-HU/edit.properties b/locale/hu/edit.properties
similarity index 64%
rename from locale/hu-HU/edit.properties
rename to locale/hu/edit.properties
index 7a714fd..5298876 100644
--- a/locale/hu-HU/edit.properties
+++ b/locale/hu/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=\'%S\' szerkesztése
 newstyletitle=Új stílusfájl
 missingcode=Írjon be kódot a stílusfájlhoz!
 missingname=Adjon neki nevet!
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Menti a változtatásokat?
diff --git a/locale/hu-HU/install.dtd b/locale/hu/install.dtd
similarity index 72%
rename from locale/hu-HU/install.dtd
rename to locale/hu/install.dtd
index ea60f0a..a0c6e23 100644
--- a/locale/hu-HU/install.dtd
+++ b/locale/hu/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "T">
 <!ENTITY preview "Előnézet">
 <!ENTITY preview.ak "E">
-<!ENTITY switchtoedit "Váltás szerkesztésre">
-<!ENTITY switchtoedit.ak "V">
 <!ENTITY title "Stílusfájl telepítése">
diff --git a/locale/hu-HU/install.properties b/locale/hu/install.properties
similarity index 100%
rename from locale/hu-HU/install.properties
rename to locale/hu/install.properties
diff --git a/locale/hu-HU/manage.dtd b/locale/hu/manage.dtd
similarity index 58%
rename from locale/hu-HU/manage.dtd
rename to locale/hu/manage.dtd
index ee8d3c9..e9c9d5e 100644
--- a/locale/hu-HU/manage.dtd
+++ b/locale/hu/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Címkék megváltoztatása">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Kész">
-<!ENTITY done.ak "K">
 <!ENTITY filter "Keresés">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Stílusfájlok">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Látogassa meg">
 <!ENTITY nostylesend "információért, hogy hogyan használható a Stylish.">
 <!ENTITY sortenabled "Engedélyezve">
 <!ENTITY sortname "Név">
-<!ENTITY sorttag "Címke">
 <!ENTITY sorttype "Típus">
-<!ENTITY sortgroup "Rendezés">
-<!ENTITY update "Frissítés">
-<!ENTITY update.ak "F">
 <!ENTITY writenew "Új stílusfájl készítése">
 <!ENTITY writenew.ak "s">
diff --git a/locale/hu/manage.properties b/locale/hu/manage.properties
new file mode 100644
index 0000000..1f63fd6
--- /dev/null
+++ b/locale/hu/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=A felhasználói felületre van hatással.
+globalstyledescription=Bármire hatással lehet.
+sitestyledescription=A %S -ra van hatással.
+manageaddonstitle=Stílusfájlok
+installfromurlsprompttitle=Install from URLs
+installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
+installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/hu-HU/overlay.dtd b/locale/hu/overlay.dtd
similarity index 66%
rename from locale/hu-HU/overlay.dtd
rename to locale/hu/overlay.dtd
index b1ffbae..249902f 100644
--- a/locale/hu-HU/overlay.dtd
+++ b/locale/hu/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Fájl telepítése...">
 <!ENTITY addfile.ak "t">
+<!ENTITY cmd.enable.label "Engedélyezés">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "Letiltás">
+<!ENTITY cmd.disable.accesskey "s">
+<!ENTITY cmd.uninstall.label "Eltávolítás">
+<!ENTITY cmd.uninstall2.accesskey "l">
 <!ENTITY findstylebrowser "Stílusfájlok keresése ehhez az oldalhoz">
 <!ENTITY findstylebrowser.ak "k">
 <!ENTITY managestyles "Stílusfájlok kezelése">
diff --git a/locale/hu-HU/overlay.properties b/locale/hu/overlay.properties
similarity index 73%
rename from locale/hu-HU/overlay.properties
rename to locale/hu/overlay.properties
index 7f1643c..d2b7291 100644
--- a/locale/hu-HU/overlay.properties
+++ b/locale/hu/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S weboldal stílusfájl(ok), %S általános stílusfájl(ok)
 tooltipStylesOff=Stylish - Stílusfájlok kikapcsolva
 updatestyle=Biztos, hogy frissíti a \'%S\'-t?
diff --git a/locale/it/common.dtd b/locale/it/common.dtd
index 75bad3d..8a17916 100644
--- a/locale/it/common.dtd
+++ b/locale/it/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Modifica…">
 <!ENTITY editstyle.ak "M">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/it/common.properties b/locale/it/common.properties
index bdd02b1..05b2cf8 100644
--- a/locale/it/common.properties
+++ b/locale/it/common.properties
@@ -1,10 +1,4 @@
-changeTags=Inserire i nomi delle etichette da aggiungere. L'etichetta '%S' verrà eliminata
-changeTagsNoCurrent=Inserire i nomi delle etichette da aggiungere
-changeTagsTitle=Aggiunta/modifica di etichette
 deleteStyle=Disinstallare lo stile '%S'?
 deleteStyleTitle=Disinstallazione dello stile
 deleteStyleOK=Disinstalla
-deleteStyles=Disinstallare questi %S stili?
-deleteStylesTitle=Disinstallazione degli stili
-deleteStylesOK=Disinstalla
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Permette di personalizzare l'aspetto dei siti e dell'interfaccia utente del browser
diff --git a/locale/it/edit.dtd b/locale/it/edit.dtd
index a501c9a..03f3ed5 100644
--- a/locale/it/edit.dtd
+++ b/locale/it/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Cartella chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Dati URI…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "V">
 <!ENTITY save "Salva">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Passa alla modalità di aggiunta">
-<!ENTITY switchtoinstall.ak "m">
-<!ENTITY tags "Etichette:">
-<!ENTITY tags.ak "E">
 <!ENTITY wraplines "Righe a capo">
 <!ENTITY wraplines.ak "c">
 <!ENTITY xulnamespace "Spazio dei nomi XUL">
diff --git a/locale/it/edit.properties b/locale/it/edit.properties
index c825856..31c7f26 100644
--- a/locale/it/edit.properties
+++ b/locale/it/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Modifica dello stile '%S'
 newstyletitle=Nuovo stile
 missingcode=È necessario aggiungere del codice per questo stile
 missingname=È necessario indicare un nome per questo stile
-unsavedchanges=Salvare le modifiche apportate a questo stile?
-unsavedchangestitle=Salvataggio delle modifiche
diff --git a/locale/it/extensions.dtd b/locale/it/extensions.dtd
deleted file mode 100644
index 1a886ec..0000000
--- a/locale/it/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Componenti aggiuntivi">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Cerca fra i componenti aggiuntivi">
-<!ENTITY extensions.label "Estensioni">
-<!ENTITY themes.label "Temi">
-<!ENTITY locales.label "Lingue">
-<!ENTITY plugins.label "Plugin">
-<!ENTITY update.label "Aggiornamenti">
-<!ENTITY install.label "Installazione">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Controlla aggiornamenti">
-<!ENTITY cmd.checkUpdatesAll.accesskey "C">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Controlla aggiornamenti per le estensioni installate">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Controlla aggiornamenti per i temi installati">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Controlla aggiornamenti per i plugin installati">
-<!ENTITY cmd.installLocalFile.label "Installa…">
-<!ENTITY cmd.installLocalFile.accesskey "s">
-<!ENTITY cmd.installFileAddon.tooltip "Installa un'estensione">
-<!ENTITY cmd.installFileTheme.tooltip "Installa un tema">
-<!ENTITY cmd.installUpdatesAll2.label "Installa gli aggiornamenti">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Installa gli aggiornamenti selezionati">
-<!ENTITY cmd.restartApp2.label "Riavvia &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Riavvia &brandShortName; per applicare le modifiche">
-<!ENTITY cmd.skip.label "Ignora">
-<!ENTITY cmd.skip.accesskey "g">
-<!ENTITY cmd.skip.tooltip "Ignora questi aggiornamenti">
-<!ENTITY cmd.continue.label "Continua">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continua il caricamento di &brandShortName;">
-<!ENTITY cmd.enableAll.label "Attiva tutti">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Attiva tutti i componenti aggiuntivi visualizzati">
-<!ENTITY cmd.disableAll.label "Disattiva tutti">
-<!ENTITY cmd.disableAll.accesskey "D">
-<!ENTITY cmd.disableAll.tooltip "Disattiva tutti i componenti aggiuntivi visualizzati">
-<!-- Displayed in the selected Add-on's richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Utilizza questo tema">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Cambia il tema di &brandShortName;">
-<!ENTITY cmd.options.label "Opzioni">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Modifica le opzioni dell'estensione selezionata">
-<!ENTITY cmd.optionsUnix.label "Preferenze">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Modifica le preferenze dell'estensione selezionata">
-<!ENTITY cmd.enable.label "Attiva">
-<!ENTITY cmd.enable.accesskey "A">
-<!ENTITY cmd.enable.tooltip "Attiva il componente aggiuntivo dopo il riavvio di &brandShortName;">
-<!ENTITY cmd.disable.label "Disattiva">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Disattiva il componente aggiuntivo dopo il riavvio di &brandShortName;">
-<!ENTITY cmd.uninstall.label "Disinstalla">
-<!ENTITY cmd.uninstall2.accesskey "i">
-<!ENTITY cmd.uninstall2.tooltip "Disinstalla il componente aggiuntivo dopo il riavvio di &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Annulla la disinstallazione">
-<!ENTITY cmd.cancelUninstall.accesskey "u">
-<!ENTITY cmd.cancelUninstall.tooltip "Annulla la disinstallazione del componente aggiuntivo">
-<!ENTITY cmd.cancelInstall.label "Annulla l'installazione">
-<!ENTITY cmd.cancelInstall.accesskey "l">
-<!ENTITY cmd.cancelInstall.tooltip "Annulla l'installazione del componente aggiuntivo">
-<!ENTITY cmd.cancelUpgrade.label "Annulla l'aggiornamento">
-<!ENTITY cmd.cancelUpgrade.accesskey "m">
-<!ENTITY cmd.cancelUpgrade.tooltip "Annulla l'aggiornamento per il componente aggiuntivo">
-<!ENTITY cmd.installUpdate.label "Installa aggiornamento">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Installa l'aggiornamento per il componente aggiuntivo">
-<!ENTITY cmd.showUpdateInfo.label "Visualizza informazioni">
-<!ENTITY cmd.showUpdateInfo.accesskey "V">
-<!ENTITY cmd.showUpdateInfo.tooltip "Visualizza ulteriori informazioni per questi aggiornamenti">
-<!ENTITY cmd.hideUpdateInfo.label "Nascondi informazioni">
-<!ENTITY cmd.hideUpdateInfo.accesskey "N">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Nascondi le informazioni per questi aggiornamenti">
-<!ENTITY cmd.installSearchResult.label "Aggiungi a &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Scarica ed installa il componente aggiuntivo">
-<!-- The selected add-on's cancel action button label -->
-<!ENTITY cancel.label "Annulla">
-<!ENTITY cancel.accesskey "u">
-<!ENTITY cancelInstall.label "Annulla">
-<!ENTITY cancelInstall.accesskey "u">
-<!ENTITY cancelUpgrade.label "Annulla">
-<!ENTITY cancelUpgrade.accesskey "u">
-<!-- Only displayed in the selected Add-on's context menu -->
-<!ENTITY cmd.homepage.label "Visita il sito web">
-<!ENTITY cmd.homepage.accesskey "w">
-<!ENTITY cmd.about2.label "Visualizza ulteriori informazioni">
-<!ENTITY cmd.about.accesskey "V">
-<!ENTITY cmd.checkUpdate.label "Controlla aggiornamenti">
-<!ENTITY cmd.checkUpdate.accesskey "C">
-<!ENTITY cmd.includeUpdate.label "Includi negli aggiornamenti">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Includi negli aggiornamenti">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Include il componente aggiuntivo quando si installano gli aggiornamenti">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Non fornisce aggiornamenti sicuri">
-<!ENTITY needsDependencies.label "Richiede elementi aggiuntivi">
-<!ENTITY blocklisted.label "Disattivato per protezione">
-<!ENTITY softBlocklisted.label "Disattivato in quanto comporta rischi per la stabilità o la sicurezza">
-<!ENTITY outdated.label "È disponibile una nuova versione più sicura">
-<!ENTITY toBeDisabled.label "Il componente aggiuntivo verrà disattivato dopo il riavvio di &brandShortName;">
-<!ENTITY toBeEnabled.label "Il componente aggiuntivo verrà attivato dopo il riavvio di &brandShortName;">
-<!ENTITY toBeInstalled.label "Il componente aggiuntivo verrà installato dopo il riavvio di &brandShortName;">
-<!ENTITY toBeUninstalled.label "Il componente aggiuntivo verrà disinstallato dopo il riavvio di &brandShortName;">
-<!ENTITY toBeUpdated.label "Il componente aggiuntivo verrà aggiornato dopo il riavvio di &brandShortName;">
-<!ENTITY getExtensions.label "Altre estensioni…">
-<!ENTITY getThemes.label "Altri temi…">
-<!ENTITY getPlugins.label "Altri plugin…">
-<!ENTITY searchAddons.label "Cerca fra i componenti aggiuntivi">
-<!ENTITY browseAddons.label "Visualizza tutti i componenti aggiuntivi">
-<!ENTITY searchFailed.label "&brandShortName; non ha trovato alcun componente aggiuntivo">
-<!ENTITY recommendedHeader.label "Consigliati">
-<!ENTITY recommendedThrobber.label "Ricerca dei componenti aggiuntivi consigliati in corso…">
-<!ENTITY searchThrobber.label "Ricerca dei componenti aggiuntivi in corso…">
-<!ENTITY resetSearch.label "Elimina i risultati">
-<!ENTITY noSearchResults.label "Tutti i componenti aggiuntivi cercati sono già installati oppure non compatibili">
-<!ENTITY noRecommendedResults.label "Tutti i componenti aggiuntivi consigliati sono già installati oppure non compatibili">
-<!ENTITY emptySearch.label "Nessun componente aggiuntivo corrispondente">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Annulla">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Ulteriori informazioni">
-<!ENTITY searchBox.label "Cerca fra tutti i componenti aggiuntivi">
-<!ENTITY recommendedResults.label "Cerca fra i componenti aggiuntivi consigliati">
-<!ENTITY searchResultConnecting.label "Connessione in corso…">
-<!ENTITY searchResultInstalling.label "Installazione in corso…">
-<!ENTITY searchResultFailed.label "Installazione non riuscita">
-<!ENTITY searchResultInstalled.label "Installazione completata">
-<!ENTITY addonTypeExtension.label "Estensione">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Nessuna anteprima">
-<!ENTITY previewNoThemeSelected.label "Nessun tema selezionato">
-<!ENTITY previewNoPreviewImage.label "Tema sprovvisto di un'immagine di anteprima">
-<!ENTITY moreInfo.label "Ulteriori informazioni">
-<!ENTITY infoNoAddonSelected.label "Nessun aggiornamento selezionato">
-<!ENTITY infoNoUpdateInfo.label "Aggiornamento sprovvisto di alcuna ulteriore informazione">
-<!ENTITY infoUpdateInfoError.label "Si è verificato un errore durante il caricamento delle ulteriori informazioni sull'aggiornamento">
-<!ENTITY updateSuccess.label "L'aggiornamento è stato completato con successo">
-<!ENTITY installSuccess.label "L'installazione è stata completata con successo">
-<!ENTITY installSuccessRestart.label "Riavviare per completare l'installazione">
-<!ENTITY updateSuccessRestart.label "Riavviare per completare l'aggiornamento">
-<!ENTITY installWaiting.label "Attendere…">
-<!ENTITY installIncompatibleUpdate.label "Controllo compatibilità in corso…">
-<!ENTITY installFinishing.label "Installazione in corso…">
-<!ENTITY installFailure.label "Installazione non riuscita">
-<!ENTITY progressStatus.label "Ricerca aggiornamenti in corso…">
-<!ENTITY eula.title "Contratto di licenza con l'utente finale">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accetta ed installa…">
-<!ENTITY blocklist.blocked.label "Bloccati">
-<!ENTITY blocklist.checkbox.label "Disattiva">
diff --git a/locale/it/install.dtd b/locale/it/install.dtd
index 7528ee6..11fbb72 100644
--- a/locale/it/install.dtd
+++ b/locale/it/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "A">
 <!ENTITY preview "Visualizza anteprima">
 <!ENTITY preview.ak "V">
-<!ENTITY switchtoedit "Modifica…">
-<!ENTITY switchtoedit.ak "M">
 <!ENTITY title "Nuovo stile">
diff --git a/locale/it/manage.dtd b/locale/it/manage.dtd
index 9e01fea..a9d842b 100644
--- a/locale/it/manage.dtd
+++ b/locale/it/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Aggiungi/modifica etichette…">
-<!ENTITY changetags.ak "m">
-<!ENTITY done "Fatto">
-<!ENTITY done.ak "F">
 <!ENTITY filter "Cerca">
 <!ENTITY installfromurls "Installa da URL…">
-<!ENTITY manageaddonstitle "Stili utente">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visitare">
 <!ENTITY nostylesend "per informazioni su come utilizzare Stylish">
 <!ENTITY sortenabled "Stili attivati">
 <!ENTITY sortname "Nome">
-<!ENTITY sorttag "Etichetta">
 <!ENTITY sorttype "Tipo">
-<!ENTITY sortgroup "Ordina per:">
-<!ENTITY update "Aggiorna">
-<!ENTITY update.ak "A">
 <!ENTITY writenew "Nuovo stile…">
 <!ENTITY writenew.ak "v">
diff --git a/locale/it/manage.properties b/locale/it/manage.properties
index 3ef81a8..18eded4 100644
--- a/locale/it/manage.properties
+++ b/locale/it/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Stili attivati
-groupEnabledFalse=Stili disattivati
-groupTagNone=Nessuna etichetta
-groupTypeApp=Applicazione
-groupTypeGlobal=Globale
-groupTypeNone=Nessun tipo
-groupTypeSite=Sito web
-styleRegistrationOff=Tutti gli stili sono disattivati
-styleRegistrationTurnOn=Attiva gli stili
-styleRegistrationTurnOn.ak=A
-updateAvailable=È disponibile un aggiornamento
-updateCheckError=Si è verificato un errore durante la ricerca degli aggiornamenti
-updateCompleted=Aggiornamento completato con successo
-updateFailed=Aggiornamento non riuscito
-updateNotFound=Non è stato trovato alcun aggiornamento
-updateNotPossible=Impossibile aggiornare
 appstyledescription=Può influire sull'interfaccia utente
 globalstyledescription=Può influire su tutti gli elementi
 sitestyledescription=Può influire su %S
-tagstyledescription=Etichette: %S
 manageaddonstitle=Stili utente
 installfromurlsprompttitle=Installazione da URL
 installfromurlsprompt=Immettere URL degli stili utente, che possono essere pagine del sito userstyles.org oppure file CSS, da installare. Separare molteplici URL tramite spazi
diff --git a/locale/it/overlay.dtd b/locale/it/overlay.dtd
index e4c2f9d..77285ce 100644
--- a/locale/it/overlay.dtd
+++ b/locale/it/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Aggiungi stile a &stylish;…">
 <!ENTITY addfile.ak "A">
+<!ENTITY cmd.enable.label "Attiva">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Disattiva">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Disinstalla">
+<!ENTITY cmd.uninstall2.accesskey "i">
 <!ENTITY findstylebrowser "Trova stili per questa pagina">
 <!ENTITY findstylebrowser.ak "T">
 <!ENTITY managestyles "Gestione degli stili…">
diff --git a/locale/it/overlay.properties b/locale/it/overlay.properties
index 4b5588f..2d2ae1b 100644
--- a/locale/it/overlay.properties
+++ b/locale/it/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Siti con stili: %S - Stili globali: %S
 tooltipStylesOff=Gli stili di Stylish sono disattivati
 updatestyle=Aggiornare '%S'?
diff --git a/locale/ja/common.dtd b/locale/ja/common.dtd
index eb3b85f..57604b6 100644
--- a/locale/ja/common.dtd
+++ b/locale/ja/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "編集">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/ja/common.properties b/locale/ja/common.properties
index 606b726..cfaa9de 100644
--- a/locale/ja/common.properties
+++ b/locale/ja/common.properties
@@ -1,10 +1,4 @@
-changeTags=タグ「%S」を削除して次のタグを追加:
-changeTagsNoCurrent=次のタグを追加:
-changeTagsTitle=タグ変更
 deleteStyle=本当に「%S」をアンインストールしますか?
 deleteStyleTitle=スタイルをアンインストールしますか?
 deleteStyleOK=アンインストール
-deleteStyles=本当にこれら%S個のスタイルをアンインストールしてもよろしいですか?
-deleteStylesTitle=スタイルをアンインストールしますか?
-deleteStylesOK=アンインストール
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stylish は Web の見た目をカスタマイズすることができるユーザースタイルのマネージャです。
diff --git a/locale/ja/edit.dtd b/locale/ja/edit.dtd
index 874e26a..827445c 100644
--- a/locale/ja/edit.dtd
+++ b/locale/ja/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome フォルダパス">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "データ URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "保存">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "インストールに切り替える">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "タグ">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "行を折り返す">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "XUL 名前空間を標準とする">
diff --git a/locale/ja/edit.properties b/locale/ja/edit.properties
index 47b8f52..cc45d54 100644
--- a/locale/ja/edit.properties
+++ b/locale/ja/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=「%S」の編集
 newstyletitle=新しいスタイル
 missingcode=このスタイルにコードを入力してください。
 missingname=このスタイルに名前を付けてください。
-unsavedchanges=このスタイルの変更を保存しますか?
-unsavedchangestitle=変更を保存しますか?
diff --git a/locale/ja/extensions.dtd b/locale/ja/extensions.dtd
deleted file mode 100644
index 7386b09..0000000
--- a/locale/ja/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "アドオン">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "680">
-<!ENTITY em.height "450">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "アドオンを入手">
-<!ENTITY extensions.label "拡張機能">
-<!ENTITY themes.label "テーマ">
-<!ENTITY locales.label "言語パック">
-<!ENTITY plugins.label "プラグイン">
-<!ENTITY update.label "更新">
-<!ENTITY install.label "インストール">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "更新を確認">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "アドオンの更新がないか確認します">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "テーマの更新がないか確認します">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "プラグインの更新がないか確認します">
-<!ENTITY cmd.installLocalFile.label "インストール...">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "アドオンをインストールします">
-<!ENTITY cmd.installFileTheme.tooltip "テーマをインストールします">
-<!ENTITY cmd.installUpdatesAll2.label "更新をインストール">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "選択した更新をインストールします">
-<!ENTITY cmd.restartApp2.label "&brandShortName; を再起動">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "&brandShortName; を再起動して変更を適用します">
-<!ENTITY cmd.skip.label "スキップ">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "更新をインストールせずに起動します">
-<!ENTITY cmd.continue.label "続行">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "&brandShortName; を起動します">
-<!ENTITY cmd.enableAll.label "すべて有効">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "表示されているすべてのアドオンを有効にします">
-<!ENTITY cmd.disableAll.label "すべて無効">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "表示されているすべてのアドオンを無効にします">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "テーマを使用">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "&brandShortName; のテーマを変更します">
-<!ENTITY cmd.options.label "設定">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "選択した拡張機能の設定を変更します">
-<!ENTITY cmd.optionsUnix.label "設定">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "選択した拡張機能の設定を変更します">
-<!ENTITY cmd.enable.label "有効化">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "&brandShortName; の再起動後にこのアドオンを有効にします">
-<!ENTITY cmd.disable.label "無効化">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "&brandShortName; の再起動後にこのアドオンを無効にします">
-<!ENTITY cmd.uninstall.label "削除">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "&brandShortName; の再起動後にこのアドオンをアンインストールします">
-<!ENTITY cmd.cancelUninstall.label "削除を中止">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "このアドオンの削除を取りやめます">
-<!ENTITY cmd.cancelInstall.label "インストールを中止">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "このアドオンのインストールを取りやめます">
-<!ENTITY cmd.cancelUpgrade.label "更新を中止">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "このアドオンの更新を取りやめます">
-<!ENTITY cmd.installUpdate.label "更新をインストール">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "このアドオンの更新をインストールします">
-<!ENTITY cmd.showUpdateInfo.label "情報を表示">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "更新についての詳細情報を表示します">
-<!ENTITY cmd.hideUpdateInfo.label "情報を隠す">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "更新についての詳細情報を表示しません">
-<!ENTITY cmd.installSearchResult.label "&brandShortName; に追加">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "このアドオンをダウンロードしてインストールします">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "キャンセル">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "キャンセル">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "キャンセル">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "サイトを表示">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "このアドオンについて">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "更新を確認">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "更新を含める">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "この更新を含める">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "このアドオンを更新のインストール時に含めます">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "このアドオンには安全な更新方法が用意されていません。">
-<!ENTITY needsDependencies.label "このアドオンの動作に必要なアドオンがありません。">
-<!ENTITY blocklisted.label "ユーザ保護のために無効化されています。">
-<!ENTITY softBlocklisted.label "セキュリティまたは安定性に問題を生じることが知られています。">
-<!ENTITY outdated.label "新しくより安全なバージョンがリリースされています。">
-<!ENTITY toBeDisabled.label "このアドオンは &brandShortName; の再起動後に無効になります。">
-<!ENTITY toBeEnabled.label "このアドオンは &brandShortName; の再起動後に有効になります。">
-<!ENTITY toBeInstalled.label "このアドオンは &brandShortName; の再起動後にインストールされます。">
-<!ENTITY toBeUninstalled.label "このアドオンは &brandShortName; の再起動後に削除されます。">
-<!ENTITY toBeUpdated.label "このアドオンは &brandShortName; の再起動後に更新されます。">
-<!ENTITY getExtensions.label "新しい拡張機能を入手">
-<!ENTITY getThemes.label "新しいテーマを入手">
-<!ENTITY getPlugins.label "新しいプラグインを入手">
-<!ENTITY searchAddons.label "すべてのアドオンを検索">
-<!ENTITY browseAddons.label "すべてのアドオンを参照">
-<!ENTITY searchFailed.label "アドオンを取得できませんでした">
-<!ENTITY recommendedHeader.label "おすすめのアドオン">
-<!ENTITY recommendedThrobber.label "おすすめのアドオン一覧を取得しています...">
-<!ENTITY searchThrobber.label "アドオンを検索しています...">
-<!ENTITY resetSearch.label "検索結果を消去">
-<!ENTITY noSearchResults.label "見つかったアドオンはすべてインストールされているか、互換性がありません。">
-<!ENTITY noRecommendedResults.label "おすすめのアドオンはすべてインストールされているか、互換性がありません。">
-<!ENTITY emptySearch.label "該当するアドオンが見つかりませんでした">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "キャンセル">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "詳細を表示">
-<!ENTITY searchBox.label "すべてのアドオンから検索">
-<!ENTITY recommendedResults.label "すべてのおすすめアドオンを参照">
-<!ENTITY searchResultConnecting.label "接続しています...">
-<!ENTITY searchResultInstalling.label "インストールしています...">
-<!ENTITY searchResultFailed.label "正常にインストールできませんでした">
-<!ENTITY searchResultInstalled.label "正常にインストールを完了しました">
-<!ENTITY addonTypeExtension.label "拡張機能">
-<!ENTITY addonTypeTheme.label "テーマ">
-<!ENTITY missingThumbnail.label "プレビューなし">
-<!ENTITY previewNoThemeSelected.label "テーマが選択されていません">
-<!ENTITY previewNoPreviewImage.label "このテーマにはプレビュー画像がありません">
-<!ENTITY moreInfo.label "追加情報">
-<!ENTITY infoNoAddonSelected.label "更新を選択してください">
-<!ENTITY infoNoUpdateInfo.label "この更新には追加情報はありません">
-<!ENTITY infoUpdateInfoError.label "この更新についての追加情報を読み込めませんでした">
-<!ENTITY updateSuccess.label "更新が正常に完了しました。">
-<!ENTITY installSuccess.label "インストールが正常に完了しました。">
-<!ENTITY installSuccessRestart.label "再起動してインストールを完了してください。">
-<!ENTITY updateSuccessRestart.label "再起動して更新を完了してください。">
-<!ENTITY installWaiting.label "待機しています...">
-<!ENTITY installIncompatibleUpdate.label "互換性を確認しています...">
-<!ENTITY installFinishing.label "インストールしています...">
-<!ENTITY installFailure.label "インストールできませんでした。">
-<!ENTITY progressStatus.label "更新を確認しています">
-<!ENTITY eula.title "エンドユーザライセンス契約">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "同意してインストール...">
-<!ENTITY blocklist.blocked.label "ブロックされています">
-<!ENTITY blocklist.checkbox.label "無効化">
diff --git a/locale/ja/install.dtd b/locale/ja/install.dtd
index fa03699..35479e3 100644
--- a/locale/ja/install.dtd
+++ b/locale/ja/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "お試し">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "編集に切り替える">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "ユーザースタイルをインストール">
diff --git a/locale/ja/manage.dtd b/locale/ja/manage.dtd
index 7ce3b24..bac236e 100644
--- a/locale/ja/manage.dtd
+++ b/locale/ja/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "タグを変更">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "完了">
-<!ENTITY done.ak "D">
 <!ENTITY filter "検索">
 <!ENTITY installfromurls "URLからインストール...">
-<!ENTITY manageaddonstitle "ユーザースタイル">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Stylish の使い方に関する情報は">
 <!ENTITY nostylesend "をご覧ください。">
 <!ENTITY sortenabled "有効無効">
 <!ENTITY sortname "名前">
-<!ENTITY sorttag "タグ">
 <!ENTITY sorttype "種類">
-<!ENTITY sortgroup "並べ替え:">
-<!ENTITY update "更新">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "新しいスタイルを書く">
 <!ENTITY writenew.ak "W">
diff --git a/locale/ja/manage.properties b/locale/ja/manage.properties
index d0d4897..f3ac956 100644
--- a/locale/ja/manage.properties
+++ b/locale/ja/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=有効
-groupEnabledFalse=無効
-groupTagNone=タグなし
-groupTypeApp=アプリケーション
-groupTypeGlobal=グローバル
-groupTypeNone=種類なし
-groupTypeSite=サイト
-styleRegistrationOff=すべてのスタイルは停止されています。
-styleRegistrationTurnOn=スタイルを作動させる
-styleRegistrationTurnOn.ak=T
-updateAvailable=最新版が利用可能です。
-updateCheckError=更新の確認でエラーが起こりました。
-updateCompleted=更新が完了しました。
-updateFailed=更新に失敗しました。
-updateNotFound=更新は見つかりませんでした。
-updateNotPossible=更新することはできません。
 appstyledescription=ユーザーインターフェースに作用します。
 globalstyledescription=すべての Web サイトに作用します。
 sitestyledescription=作用%S
-tagstyledescription=タグ:%S
 manageaddonstitle=ユーザースタイル
 installfromurlsprompttitle=URL からインストール
 installfromurlsprompt=インストールするには、ユーザースタイルの URL を入力してください。これらは userstyles.org または CSS ファイル上のページがあります。スペースで複数の URL を区切ります。
diff --git a/locale/ja/overlay.dtd b/locale/ja/overlay.dtd
index 93dd217..117bd30 100644
--- a/locale/ja/overlay.dtd
+++ b/locale/ja/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "ファイルをインストール...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "有効化">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "無効化">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "削除">
+<!ENTITY cmd.uninstall2.accesskey "U">
 <!ENTITY findstylebrowser "このサイト用のスタイルを探す">
 <!ENTITY findstylebrowser.ak "F">
 <!ENTITY managestyles "スタイルの管理...">
diff --git a/locale/ja/overlay.properties b/locale/ja/overlay.properties
index 26e8a77..4fdba8c 100644
--- a/locale/ja/overlay.properties
+++ b/locale/ja/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S サイトスタイル、%S グローバルスタイル
 tooltipStylesOff=Stylish - スタイルは停止中
 updatestyle=本当に「%S」を更新しますか?
diff --git a/locale/ko-KR/common.dtd b/locale/ko-KR/common.dtd
deleted file mode 100644
index 3403bf2..0000000
--- a/locale/ko-KR/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "편집">
-<!ENTITY editstyle.ak "E">
-<!ENTITY stylish "Stylish">
diff --git a/locale/ko-KR/common.properties b/locale/ko-KR/common.properties
deleted file mode 100644
index 988e4f0..0000000
--- a/locale/ko-KR/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=\'%S\' 태그를 제거한 후 다음 태그를 추가합니다 :
-changeTagsNoCurrent=다음 태그 추가 :
-changeTagsTitle=태그 변경
-deleteStyle=\'%S\' 스타일을 제거하시겠습니까?
-deleteStyleTitle=스타일 제거
-deleteStyleOK=제거
-deleteStyles=%S개 스타일을 제거하시겠습니까?
-deleteStylesTitle=스타일을 제거하시겠습니까?
-deleteStylesOK=제거
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stylish로 웹페이지와 브라우저 인터페이스를 개성있게 꾸밀 수 있습니다.
diff --git a/locale/ko-KR/extensions.dtd b/locale/ko-KR/extensions.dtd
deleted file mode 100644
index ecbcce4..0000000
--- a/locale/ko-KR/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "부가 기능">
-<!-- View labels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "전체 검색">
-<!ENTITY extensions.label "확장 기능">
-<!ENTITY themes.label "테마">
-<!ENTITY locales.label "언어">
-<!ENTITY plugins.label "플러그인">
-<!ENTITY update.label "업데이트">
-<!ENTITY install.label "설치">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "업데이트 찾기">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "설치된 부가 기능의 변경 사항 찾기">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "설치된 테마의 변경 사항 찾기">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "설치된 플러그인 변경 사항 찾기">
-<!ENTITY cmd.installLocalFile.label "설치…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "부가 기능 설치">
-<!ENTITY cmd.installFileTheme.tooltip "테마 설치">
-<!ENTITY cmd.installUpdatesAll2.label "업데이트 설치">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "선택한 업데이트 설치">
-<!ENTITY cmd.restartApp2.label "&brandShortName; 다시 시작">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "설정 적용을 위해 &brandShortName; 다시 시작">
-<!ENTITY cmd.skip.label "나중에 하기">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "업데이트를 나중에 설치합니다.">
-<!ENTITY cmd.continue.label "계속">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "&brandShortName; 실행을 계속합니다.">
-<!ENTITY cmd.enableAll.label "모두 사용함">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "표시된 모든 부가 기능 사용 합니다.">
-<!ENTITY cmd.disableAll.label "모두 사용하지 않음">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "모든 부가 기능을 사용하지 않습니다.">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "적용">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "&brandShortName; 테마 변경">
-<!ENTITY cmd.options.label "설정">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "선택된 확장 기능 설정">
-<!ENTITY cmd.optionsUnix.label "환경 설정">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "선택된 확장 기능 설정 편집">
-<!ENTITY cmd.enable.label "사용함">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "이 부가 기능을 사용하려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY cmd.disable.label "사용 안 함">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "이 부가 기능을 사용하지 않으려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY cmd.uninstall.label "제거">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "이 부가 기능을 제거하려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY cmd.cancelUninstall.label "설치 취소">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "이 부가 기능의 설치를 취소합니다.">
-<!ENTITY cmd.cancelInstall.label "설치 취소">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "부가 기능 설치 취소">
-<!ENTITY cmd.cancelUpgrade.label "업그레이드 취소">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "부가 기능 업그레이드 취소">
-<!ENTITY cmd.installUpdate.label "업데이트 설치">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "이 부가 기능의 업데이트를 설치합니다.">
-<!ENTITY cmd.showUpdateInfo.label "정보 보기">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "업데이트에 대한 상세 정보 보기">
-<!ENTITY cmd.hideUpdateInfo.label "정보 숨기기">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "업데이트 정보 숨기기">
-<!ENTITY cmd.installSearchResult.label "&brandShortName;에 추가…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "다운로드 및 설치">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "취소">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "취소">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "취소">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "홈 페이지 방문">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "부가 기능 소개">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "업데이트 찾기">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "업데이트 선택">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "현재 업데이트 선택">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "업데이트 설치 시 이 부가 기능을 포함합니다.">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "보안 업데이트를 제공하지 않습니다.">
-<!ENTITY needsDependencies.label "부가 항목 필요">
-<!ENTITY blocklisted.label "보안상 사용할 수 없음">
-<!ENTITY softBlocklisted.label "보안 및 안정성을 야기할 수 있는 문제">
-<!ENTITY outdated.label "보다 안전한 신규 버전으로 업그레이드 가능합니다.">
-<!ENTITY toBeDisabled.label "이 부가 기능을 사용하지 않으려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY toBeEnabled.label "이 부가 기능을 사용하려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY toBeInstalled.label "이 부가 기능을 설치하려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY toBeUninstalled.label "이 부가 기능을 제거하려면 &brandShortName;를 다시 시작해야 합니다.">
-<!ENTITY toBeUpdated.label "&brandShortName; 다시 시작 후 부가 기능을 업데이트 합니다.">
-<!ENTITY getExtensions.label "유용한 확장 기능 찾기">
-<!ENTITY getThemes.label "유용한 테마 찾기">
-<!ENTITY getPlugins.label "플러그인 찾기">
-<!ENTITY searchAddons.label "부가 기능 검색">
-<!ENTITY browseAddons.label "부가 기능 모음">
-<!ENTITY searchFailed.label "&brandShortName;는 부가 기능 정보를 가져올 수 없음">
-<!ENTITY recommendedHeader.label "추천 부가 기능">
-<!ENTITY recommendedThrobber.label "추천 부가 기능 가져 오기">
-<!ENTITY searchThrobber.label "부가 기능 검색">
-<!ENTITY resetSearch.label "결과 지우기">
-<!ENTITY noSearchResults.label "부가 기능 검색 결과들이 없습니다.">
-<!ENTITY noRecommendedResults.label "추천 부가 기능 결과를 얻을 수 없습니다.">
-<!ENTITY emptySearch.label "검색 결과 없음">
-<!ENTITY emptySearch.button "확인">
-<!ENTITY cancelSearch.button "취소">
-<!ENTITY searchFailed.button "확인">
-<!ENTITY searchResultHomepage.value "자세한 정보">
-<!ENTITY searchBox.label "전체 부가 기능 검색">
-<!ENTITY recommendedResults.label "전체 추천 부가 기능 보기">
-<!ENTITY searchResultConnecting.label "연결 중…">
-<!ENTITY searchResultInstalling.label "설치 중…">
-<!ENTITY searchResultFailed.label "설치 실패">
-<!ENTITY searchResultInstalled.label "설치 완료">
-<!ENTITY addonTypeExtension.label "확장 기능">
-<!ENTITY addonTypeTheme.label "테마">
-<!ENTITY missingThumbnail.label "미리 보기 없음">
-<!ENTITY previewNoThemeSelected.label "선택된 테마 없음">
-<!ENTITY previewNoPreviewImage.label "이 테마는 미리 보기를 할 수 없습니다.">
-<!ENTITY moreInfo.label "자세한 정보">
-<!ENTITY infoNoAddonSelected.label "선택한 업데이트가 없음">
-<!ENTITY infoNoUpdateInfo.label "현재 업데이트는 부가 정보를 제공하지 않습니다.">
-<!ENTITY infoUpdateInfoError.label "현재 업데이트 정보를 가져오는 데 오류가 있습니다.">
-<!ENTITY updateSuccess.label "업데이트가 성공적으로 완료되었습니다.">
-<!ENTITY installSuccess.label "설치가 성공적으로 완료되었습니다.">
-<!ENTITY installSuccessRestart.label "설치 완료를 위해 다시 시작합니다.">
-<!ENTITY updateSuccessRestart.label "업데이트 완료를 위해 다시 시작합니다.">
-<!ENTITY installWaiting.label "잠시만 기다려 주십시오…">
-<!ENTITY installIncompatibleUpdate.label "호환성 확인 중…">
-<!ENTITY installFinishing.label "설치 중…">
-<!ENTITY installFailure.label "설치에 실패했습니다.">
-<!ENTITY progressStatus.label "업데이트 확인">
-<!ENTITY eula.title "개인 사용자 이용 약관">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "동의 및 설치…">
-<!ENTITY blocklist.blocked.label "차단됨">
-<!ENTITY blocklist.checkbox.label "사용 안함">
diff --git a/locale/ko-KR/manage.properties b/locale/ko-KR/manage.properties
deleted file mode 100644
index 5b81fbe..0000000
--- a/locale/ko-KR/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=사용함
-groupEnabledFalse=사용 안 함
-groupTagNone=태그 없음
-groupTypeApp=애플리케이션
-groupTypeGlobal=글로벌
-groupTypeNone=유형 없음
-groupTypeSite=사이트
-styleRegistrationOff=모든 스타일 꺼짐
-styleRegistrationTurnOn=스타일 켜기
-styleRegistrationTurnOn.ak=T
-updateAvailable=업데이트 가능
-updateCheckError=업데이트 확인 중에 오류 발생
-updateCompleted=업데이트 완료
-updateFailed=업데이트 실패
-updateNotFound=업데이트 없음
-updateNotPossible=업데이트 불가능
-appstyledescription=사용자 인터페이스에 영향을 미침
-globalstyledescription=모든 것에 영향을 미침
-sitestyledescription=%S에 영향을 미침
-tagstyledescription=태그 : %S
-manageaddonstitle=사용자 스타일
-installfromurlsprompttitle=주소에서 설치
-installfromurlsprompt=설치를 위한 userstyles.org 혹은 CSS 파일의 주소를 입력하세요. 여러 개의 주소일 경우 스페이스로 구분합니다.
-installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/ko/common.dtd b/locale/ko/common.dtd
new file mode 100644
index 0000000..f8ddbaf
--- /dev/null
+++ b/locale/ko/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "편집">
+<!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
+<!ENTITY stylish "Stylish">
diff --git a/locale/ko/common.properties b/locale/ko/common.properties
new file mode 100644
index 0000000..37f11e6
--- /dev/null
+++ b/locale/ko/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=\'%S\' 스타일을 제거하시겠습니까?
+deleteStyleTitle=스타일 제거
+deleteStyleOK=제거
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stylish로 웹페이지와 브라우저 인터페이스를 개성있게 꾸밀 수 있습니다.
diff --git a/locale/ko-KR/domi.dtd b/locale/ko/domi.dtd
similarity index 100%
rename from locale/ko-KR/domi.dtd
rename to locale/ko/domi.dtd
diff --git a/locale/ko-KR/edit.dtd b/locale/ko/edit.dtd
similarity index 84%
rename from locale/ko-KR/edit.dtd
rename to locale/ko/edit.dtd
index 8b86c9e..326cf73 100644
--- a/locale/ko-KR/edit.dtd
+++ b/locale/ko/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "크롬 폴더 경로">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "데이터 URI">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "저장">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "설치로 전환">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "태그">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "자동 줄 바꿈">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "XUL 이름공간 선언">
diff --git a/locale/ko-KR/edit.properties b/locale/ko/edit.properties
similarity index 62%
rename from locale/ko-KR/edit.properties
rename to locale/ko/edit.properties
index 33c6f7b..07a5f66 100644
--- a/locale/ko-KR/edit.properties
+++ b/locale/ko/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=\'%S\' 편집
 newstyletitle=새 스타일
 missingcode=이 스타일의 코드를 입력하십시오.
 missingname=이 스타일의 이름을 입력하십시오.
-unsavedchanges=이 스타일에 대한 변경사항을 저장하시겠습니까?
-unsavedchangestitle=변경사항을 저장하시겠습니까?
diff --git a/locale/ko-KR/install.dtd b/locale/ko/install.dtd
similarity index 76%
rename from locale/ko-KR/install.dtd
rename to locale/ko/install.dtd
index 5a62535..07b9255 100644
--- a/locale/ko-KR/install.dtd
+++ b/locale/ko/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "미리보기">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "편집">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "사용자 스타일 설치">
diff --git a/locale/ko-KR/install.properties b/locale/ko/install.properties
similarity index 100%
rename from locale/ko-KR/install.properties
rename to locale/ko/install.properties
diff --git a/locale/ko-KR/manage.dtd b/locale/ko/manage.dtd
similarity index 58%
rename from locale/ko-KR/manage.dtd
rename to locale/ko/manage.dtd
index 29af126..b41318c 100644
--- a/locale/ko-KR/manage.dtd
+++ b/locale/ko/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "태그 변경">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "완료">
-<!ENTITY done.ak "D">
 <!ENTITY filter "검색">
 <!ENTITY installfromurls "주소에서 설치">
-<!ENTITY manageaddonstitle "사용자 스타일">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "스타일리시 사용법을 알고 싶으면">
 <!ENTITY nostylesend "로 방문해 주십시오.">
 <!ENTITY sortenabled "사용 여부">
 <!ENTITY sortname "이름">
-<!ENTITY sorttag "태그">
 <!ENTITY sorttype "종류">
-<!ENTITY sortgroup "정렬">
-<!ENTITY update "업데이트">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "새 스타일 작성">
 <!ENTITY writenew.ak "W">
diff --git a/locale/ko/manage.properties b/locale/ko/manage.properties
new file mode 100644
index 0000000..454c4fe
--- /dev/null
+++ b/locale/ko/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=사용자 인터페이스에 영향을 미침
+globalstyledescription=모든 것에 영향을 미침
+sitestyledescription=%S에 영향을 미침
+manageaddonstitle=사용자 스타일
+installfromurlsprompttitle=주소에서 설치
+installfromurlsprompt=설치를 위한 userstyles.org 혹은 CSS 파일의 주소를 입력하세요. 여러 개의 주소일 경우 스페이스로 구분합니다.
+installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/ko-KR/overlay.dtd b/locale/ko/overlay.dtd
similarity index 65%
rename from locale/ko-KR/overlay.dtd
rename to locale/ko/overlay.dtd
index 95522d3..0e60c67 100644
--- a/locale/ko-KR/overlay.dtd
+++ b/locale/ko/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "파일 설치">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "사용함">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "사용 안 함">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "제거">
+<!ENTITY cmd.uninstall2.accesskey "U">
 <!ENTITY findstylebrowser "이 사이트의 스타일 검색">
 <!ENTITY findstylebrowser.ak "F">
 <!ENTITY managestyles "스타일 관리">
diff --git a/locale/ko-KR/overlay.properties b/locale/ko/overlay.properties
similarity index 71%
rename from locale/ko-KR/overlay.properties
rename to locale/ko/overlay.properties
index db769a2..37984d0 100644
--- a/locale/ko-KR/overlay.properties
+++ b/locale/ko/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=사이트 스타일 : %S, 글로벌 스타일 : %S
 tooltipStylesOff=스타일 꺼짐
 updatestyle=\'%S\'를 업데이트하시겠습니까?
diff --git a/locale/lt/common.dtd b/locale/lt/common.dtd
index 96fd03e..693e51b 100644
--- a/locale/lt/common.dtd
+++ b/locale/lt/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Keisti">
 <!ENTITY editstyle.ak "K">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/lt/common.properties b/locale/lt/common.properties
index 1a47b89..88bbc86 100644
--- a/locale/lt/common.properties
+++ b/locale/lt/common.properties
@@ -1,10 +1,4 @@
-changeTags=Pašalinti žymę „%S“ ir pridėti šias žymes:
-changeTagsNoCurrent=Pridėti šias žymes:
-changeTagsTitle=Keisti žymes
 deleteStyle=Ar jūs įsitikinę jog norite pašalinti „%S“?
 deleteStyleTitle=Pašalinti stilių?
 deleteStyleOK=Pašalinti
-deleteStyles=Ar jūs įsitikinę jog norite pašalinti šiuos %S stilius?
-deleteStylesTitle=Pašalinti stilius?
-deleteStylesOK=Pašalinti
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Suteikite tinklalapiui naują išvaizdą su „Stylish“ stilių tvarkykle.
diff --git a/locale/lt/edit.dtd b/locale/lt/edit.dtd
index 1df94cf..68e68b7 100644
--- a/locale/lt/edit.dtd
+++ b/locale/lt/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome aplanko kelias">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Duomenų URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "Įrašyti">
 <!ENTITY save.ak "I">
-<!ENTITY switchtoinstall "Perjungti į diegimą">
-<!ENTITY switchtoinstall.ak "E">
-<!ENTITY tags "Žymos">
-<!ENTITY tags.ak "m">
 <!ENTITY wraplines "Laužyti eilutes">
 <!ENTITY wraplines.ak "L">
 <!ENTITY xulnamespace "XUL vardai kaip numatyta">
diff --git a/locale/lt/edit.properties b/locale/lt/edit.properties
index 8f5ba8b..755b145 100644
--- a/locale/lt/edit.properties
+++ b/locale/lt/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Redaguojamas „%S“
 newstyletitle=Naujas stilius
 missingcode=Įveskite šiek tiek kodo šiam stiliui.
 missingname=Pavadinkite stilių.
-unsavedchanges=Ar norite išsaugoti šio pakeitimus?
-unsavedchangestitle=Išsaugoti keitimus?
diff --git a/locale/lt/extensions.dtd b/locale/lt/extensions.dtd
deleted file mode 100644
index 395f180..0000000
--- a/locale/lt/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Papildiniai">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Parsiųsti papildinių">
-<!ENTITY extensions.label "Plėtiniai">
-<!ENTITY themes.label "Temos">
-<!ENTITY locales.label "Kalbos">
-<!ENTITY plugins.label "Įskiepiai">
-<!ENTITY update.label "Atnaujinimai">
-<!ENTITY install.label "Įdiegimas">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Ieškoti atnaujinimų">
-<!ENTITY cmd.checkUpdatesAll.accesskey "I">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Ieškoti atnaujinimų jūsų papildiniams">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Ieškoti atnaujinimų jūsų temoms">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Ieškoti atnaujinimų jūsų įskiepiams">
-<!ENTITY cmd.installLocalFile.label "Įdiegti">
-<!ENTITY cmd.installLocalFile.accesskey "d">
-<!ENTITY cmd.installFileAddon.tooltip "Įdiegti papildinį">
-<!ENTITY cmd.installFileTheme.tooltip "Įdiegti temą">
-<!ENTITY cmd.installUpdatesAll2.label "Įdiegti atnaujinimus">
-<!ENTITY cmd.installUpdatesAll2.accesskey "Į">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Įdiegti pasirinktus atnaujinimus">
-<!ENTITY cmd.restartApp2.label "Iš naujo paleisti &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "I">
-<!ENTITY cmd.restartApp2.tooltip "Pakeitimams pritaikyti, paleiskite iš naujo &brandShortName;">
-<!ENTITY cmd.skip.label "Praleisti">
-<!ENTITY cmd.skip.accesskey "P">
-<!ENTITY cmd.skip.tooltip "Praleisti šiuos atnaujinimus">
-<!ENTITY cmd.continue.label "Tęsti">
-<!ENTITY cmd.continue.accesskey "T">
-<!ENTITY cmd.continue.tooltip "Tęsti &brandShortName; įkrovą">
-<!ENTITY cmd.enableAll.label "Įjungti visus">
-<!ENTITY cmd.enableAll.accesskey "v">
-<!ENTITY cmd.enableAll.tooltip "Įjungti visus rodomus papildinius">
-<!ENTITY cmd.disableAll.label "Išjungti visus">
-<!ENTITY cmd.disableAll.accesskey "I">
-<!ENTITY cmd.disableAll.tooltip "Išjungti visus rodomus papildinius">
-<!-- Displayed in the selected Add-on's richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Naudoti temą">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Keisti &brandShortName; temą">
-<!ENTITY cmd.options.label "Parinktys">
-<!ENTITY cmd.options.accesskey "P">
-<!ENTITY cmd.options.tooltip "Nustatyti pasirinktų plėtinių parinktis">
-<!ENTITY cmd.optionsUnix.label "Nustatymai">
-<!ENTITY cmd.optionsUnix.accesskey "N">
-<!ENTITY cmd.optionsUnix.tooltip "Keisti pasirinktų plėtinių nustatymus">
-<!ENTITY cmd.enable.label "Įjungti">
-<!ENTITY cmd.enable.accesskey "j">
-<!ENTITY cmd.enable.tooltip "Paleidus &brandShortName; iš naujo įjungti šį papildinį">
-<!ENTITY cmd.disable.label "Išjungti">
-<!ENTITY cmd.disable.accesskey "I">
-<!ENTITY cmd.disable.tooltip "Paleidus &brandShortName; iš naujo išjungti šį papildinį">
-<!ENTITY cmd.uninstall.label "Pašalinti">
-<!ENTITY cmd.uninstall2.accesskey "P">
-<!ENTITY cmd.uninstall2.tooltip "Paleidus &brandShortName; iš naujo pašalinti šį papildinį">
-<!ENTITY cmd.cancelUninstall.label "Atšaukti pašalinimą">
-<!ENTITY cmd.cancelUninstall.accesskey "A">
-<!ENTITY cmd.cancelUninstall.tooltip "Atšaukti šio papildinio pašalinimą">
-<!ENTITY cmd.cancelInstall.label "Atšaukti diegimą">
-<!ENTITY cmd.cancelInstall.accesskey "A">
-<!ENTITY cmd.cancelInstall.tooltip "Atšaukti šio papildinio diegimą">
-<!ENTITY cmd.cancelUpgrade.label "Atšaukti atnaujinimą">
-<!ENTITY cmd.cancelUpgrade.accesskey "A">
-<!ENTITY cmd.cancelUpgrade.tooltip "Atšaukti šio papildinio atnaujinimą">
-<!ENTITY cmd.installUpdate.label "Įdiegti atnaujinimą">
-<!ENTITY cmd.installUpdate.accesskey "d">
-<!ENTITY cmd.installUpdate.tooltip "Įdiegti šio papildinio atnaujinimą">
-<!ENTITY cmd.showUpdateInfo.label "Rodyti informaciją">
-<!ENTITY cmd.showUpdateInfo.accesskey "R">
-<!ENTITY cmd.showUpdateInfo.tooltip "Rodyti daugiau informacijos apie šiuos atnaujinimus">
-<!ENTITY cmd.hideUpdateInfo.label "Slėpti informaciją">
-<!ENTITY cmd.hideUpdateInfo.accesskey "S">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Slėpti informaciją apie šiuos atnaujinimus">
-<!ENTITY cmd.installSearchResult.label "Pridėti į &brandShortName;...">
-<!ENTITY cmd.installSearchResult.accesskey "P">
-<!ENTITY cmd.installSearchResult.tooltip "Parsiųsti ir įdiegti šį papildinį">
-<!-- The selected add-on's cancel action button label -->
-<!ENTITY cancel.label "Atsisakyti">
-<!ENTITY cancel.accesskey "A">
-<!ENTITY cancelInstall.label "Atsisakyti">
-<!ENTITY cancelInstall.accesskey "A">
-<!ENTITY cancelUpgrade.label "Atsisakyti">
-<!ENTITY cancelUpgrade.accesskey "A">
-<!-- Only displayed in the selected Add-on's context menu -->
-<!ENTITY cmd.homepage.label "Aplankyti namų puslapį">
-<!ENTITY cmd.homepage.accesskey "n">
-<!ENTITY cmd.about2.label "Apie šį plėtinį">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Ieškoti atnaujinimų">
-<!ENTITY cmd.checkUpdate.accesskey "I">
-<!ENTITY cmd.includeUpdate.label "Įtraukti atnaujinimą">
-<!ENTITY cmd.includeUpdate.accesskey "r">
-<!ENTITY includeUpdate.label "Įtraukti šį atnaujinimą">
-<!ENTITY includeUpdate.accesskey "a">
-<!ENTITY includeUpdate.tooltip "Įtraukti šį papildinį diegiant atnaujinimus">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Neteikia saugumo atnaujinimų.">
-<!ENTITY needsDependencies.label "Reikia papildomų elementų.">
-<!ENTITY blocklisted.label "Išjungta jūsų pačių saugumui.">
-<!ENTITY softBlocklisted.label "Žinoma jog gali sukelti saugumo ar stabilumo problemų.">
-<!ENTITY outdated.label "Niekada, prieinama saugesnė versija.">
-<!ENTITY toBeDisabled.label "Šis papildinys bus išjungtas iš naujo paleidus &brandShortName;.">
-<!ENTITY toBeEnabled.label "Šis papildinys bus įjungtas iš naujo paleidus &brandShortName;.">
-<!ENTITY toBeInstalled.label "Šis papildinys bus įdiegtas iš naujo paleidus &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Šis papildinys bus pašalintas iš naujo paleidus &brandShortName;.">
-<!ENTITY toBeUpdated.label "Šis papildinys bus atnaujintas iš naujo paleidus &brandShortName;.">
-<!ENTITY getExtensions.label "Gauti plėtinių">
-<!ENTITY getThemes.label "Gauti temų">
-<!ENTITY getPlugins.label "Gauti papildinių">
-<!ENTITY searchAddons.label "Ieškoti tarp visų papildinių">
-<!ENTITY browseAddons.label "Naršyti tarp visų papildinių">
-<!ENTITY searchFailed.label "&brandShortName; nesugebėjo parsiųsti papildinių">
-<!ENTITY recommendedHeader.label "Rekomenduojami">
-<!ENTITY recommendedThrobber.label "Gaunami rekomenduojami papildiniai">
-<!ENTITY searchThrobber.label "Ieškoma papildinių">
-<!ENTITY resetSearch.label "Išvalyti rezultatus">
-<!ENTITY noSearchResults.label "Visi rezultatai įdiegti arba nesuderinami.">
-<!ENTITY noRecommendedResults.label "Visi rekomenduojami yra įdiegti arba nesuderinami.">
-<!ENTITY emptySearch.label "Nėra atitinkančių papildinių">
-<!ENTITY emptySearch.button "Gerai">
-<!ENTITY cancelSearch.button "Atsisakyti">
-<!ENTITY searchFailed.button "Gerai">
-<!ENTITY searchResultHomepage.value "Sužinokite daugiau">
-<!ENTITY searchBox.label "Ieškoti tarp visų papildinių">
-<!ENTITY recommendedResults.label "Peržiūrėti visus rekomenduojamus papildinius">
-<!ENTITY searchResultConnecting.label "Jungiamasi…">
-<!ENTITY searchResultInstalling.label "Diegiama...">
-<!ENTITY searchResultFailed.label "Diegimas nepavyko">
-<!ENTITY searchResultInstalled.label "Diegimas baigtas">
-<!ENTITY addonTypeExtension.label "Plėtinys">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Peržiūros nėra">
-<!ENTITY previewNoThemeSelected.label "Nepasirinkta tema">
-<!ENTITY previewNoPreviewImage.label "Ši tema neturi peržiūros paveikslėlio">
-<!ENTITY moreInfo.label "Daugiau informacijos">
-<!ENTITY infoNoAddonSelected.label "Nepasirinktas atnaujinimas">
-<!ENTITY infoNoUpdateInfo.label "Šis atnaujinimas neturi papildomos informacijos">
-<!ENTITY infoUpdateInfoError.label "Įkraunant informaciją apie šį atnaujinimą įvyko klaida">
-<!ENTITY updateSuccess.label "Sėkmingai atnaujinta.">
-<!ENTITY installSuccess.label "Sėkmingai įdiegta.">
-<!ENTITY installSuccessRestart.label "Diegimui užbaigti, paleiskite iš naujo.">
-<!ENTITY updateSuccessRestart.label "Atnaujinimui užbaigti, paleiskite iš naujo.">
-<!ENTITY installWaiting.label "Laukiama...">
-<!ENTITY installIncompatibleUpdate.label "Tikrinamas suderinamumas...">
-<!ENTITY installFinishing.label "Diegiama...">
-<!ENTITY installFailure.label "Įdiegti nepavyko.">
-<!ENTITY progressStatus.label "Ieškoma atnaujinimų">
-<!ENTITY eula.title "Galutinio naudotojo sutikimas">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Sutikti ir įdiegti...">
-<!ENTITY blocklist.blocked.label "Užblokuotas">
-<!ENTITY blocklist.checkbox.label "Išjungti">
diff --git a/locale/lt/install.dtd b/locale/lt/install.dtd
index 90f1a36..e595e9f 100644
--- a/locale/lt/install.dtd
+++ b/locale/lt/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "D">
 <!ENTITY preview "Peržiūra">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Perjungti į redagavimą">
-<!ENTITY switchtoedit.ak "R">
 <!ENTITY title "Įdiegti naudotojo stilių">
diff --git a/locale/lt/manage.dtd b/locale/lt/manage.dtd
index 975155f..45a77c9 100644
--- a/locale/lt/manage.dtd
+++ b/locale/lt/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Keisti žymes">
-<!ENTITY changetags.ak "K">
-<!ENTITY done "Atlikta">
-<!ENTITY done.ak "A">
 <!ENTITY filter "Ieškoti">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Naudotojo stiliai">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Aplankykite">
 <!ENTITY nostylesend "informacijai apie tai kaip naudoti Stylish.">
 <!ENTITY sortenabled "Būsena">
 <!ENTITY sortname "Pavadinimas">
-<!ENTITY sorttag "Žymė">
 <!ENTITY sorttype "Tipas">
-<!ENTITY sortgroup "Rikiuoti pagal:">
-<!ENTITY update "Atnaujinti">
-<!ENTITY update.ak "A">
 <!ENTITY writenew "Kurti naują stilių">
 <!ENTITY writenew.ak "N">
diff --git a/locale/lt/manage.properties b/locale/lt/manage.properties
index 593cd21..1a69ffa 100644
--- a/locale/lt/manage.properties
+++ b/locale/lt/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Įjungta
-groupEnabledFalse=Išjungta
-groupTagNone=Nėra žymių
-groupTypeApp=Programa
-groupTypeGlobal=Bendra
-groupTypeNone=Nėra tipo
-groupTypeSite=Svetainė
-styleRegistrationOff=Visi stiliai išjungti.
-styleRegistrationTurnOn=Įjungti stilius
-styleRegistrationTurnOn.ak=I
-updateAvailable=Prieinamas atnaujinimas.
-updateCheckError=Ieškant atnaujinimų įvyko klaida.
-updateCompleted=Atnaujinimas baigtas.
-updateFailed=Atnaujinimas nepavyko.
-updateNotFound=Nėra atnaujinimų.
-updateNotPossible=Atnaujinti neįmanoma.
 appstyledescription=Įtakoja naudotojo sąsają.
 globalstyledescription=Gali paveikti viską.
 sitestyledescription=Įtakoja %S.
-tagstyledescription=Žymės: %S.
 manageaddonstitle=Naudotojo stiliai
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/lt/overlay.dtd b/locale/lt/overlay.dtd
index f849c84..38a1c46 100644
--- a/locale/lt/overlay.dtd
+++ b/locale/lt/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Įdiegti failą...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Įjungti">
+<!ENTITY cmd.enable.accesskey "j">
+<!ENTITY cmd.disable.label "Išjungti">
+<!ENTITY cmd.disable.accesskey "I">
+<!ENTITY cmd.uninstall.label "Pašalinti">
+<!ENTITY cmd.uninstall2.accesskey "P">
 <!ENTITY findstylebrowser "Ieškoti stilių šiai svetainei...">
 <!ENTITY findstylebrowser.ak "E">
 <!ENTITY managestyles "Tvarkyti stilius...">
diff --git a/locale/lt/overlay.properties b/locale/lt/overlay.properties
index f84364a..a5f4345 100644
--- a/locale/lt/overlay.properties
+++ b/locale/lt/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S puslapio stiliai(-ių), %S bendri stiliai(-ių)
 tooltipStylesOff=Stylish - stiliai išjungti
 updatestyle=Ar jūs įsitikinę jog norite atnaujinti „%S“?
diff --git a/locale/nl/common.dtd b/locale/nl/common.dtd
index 52ce5ef..5f62236 100644
--- a/locale/nl/common.dtd
+++ b/locale/nl/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Wijzigen">
 <!ENTITY editstyle.ak "W">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/nl/common.properties b/locale/nl/common.properties
index 08863f9..e22c816 100644
--- a/locale/nl/common.properties
+++ b/locale/nl/common.properties
@@ -1,10 +1,4 @@
-changeTags=Label \'%S\' verwijderen en de volgende labels toevoegen:
-changeTagsNoCurrent=De volgende labels toevoegen:
-changeTagsTitle=Labels wijzigen
 deleteStyle=\'%S\' werkelijk deïnstalleren?
 deleteStyleTitle=Stijl deïnstalleren?
 deleteStyleOK=Deïnstalleren
-deleteStyles=Deze %S stijlen werkelijk deïnstalleren?
-deleteStylesTitle=Stijlen deïnstalleren?
-deleteStylesOK=Deïnstalleren
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Het web herstijlen met Stylish, een gebruikerstijlen beheerder.
diff --git a/locale/nl/edit.dtd b/locale/nl/edit.dtd
index f4a19d5..8d9ab1d 100644
--- a/locale/nl/edit.dtd
+++ b/locale/nl/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome map pad">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI gegevens...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "V">
 <!ENTITY save "Opslaan">
 <!ENTITY save.ak "O">
-<!ENTITY switchtoinstall "Naar installatie omschakelen">
-<!ENTITY switchtoinstall.ak "i">
-<!ENTITY tags "Labels">
-<!ENTITY tags.ak "L">
 <!ENTITY wraplines "Tekstregels afbreken">
 <!ENTITY wraplines.ak "R">
 <!ENTITY xulnamespace "XUL namespace als standaard">
diff --git a/locale/nl/edit.properties b/locale/nl/edit.properties
index 632d3ae..5379b36 100644
--- a/locale/nl/edit.properties
+++ b/locale/nl/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Bewerken '%S'
 newstyletitle=Nieuwe stijl
 missingcode=Voer de code in voor deze stijl.
 missingname=Geef deze stijl een naam.
-unsavedchanges=De wijzigingen bij deze stijl opslaan?
-unsavedchangestitle=Wijzigingen opslaan?
diff --git a/locale/nl/extensions.dtd b/locale/nl/extensions.dtd
deleted file mode 100644
index 05d5a3f..0000000
--- a/locale/nl/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Add-ons">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "S">
-<!-- View labels -->
-<!ENTITY search.label "Add-ons verkrijgen">
-<!ENTITY extensions.label "Extensies">
-<!ENTITY themes.label "Thema\'s">
-<!ENTITY locales.label "Talen">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Updates">
-<!ENTITY install.label "Installatie">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Updates zoeken">
-<!ENTITY cmd.checkUpdatesAll.accesskey "U">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Updates voor add-ons zoeken">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Updates voor thema\'s zoeken">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Updates voor plugins zoeken">
-<!ENTITY cmd.installLocalFile.label "Installeren…">
-<!ENTITY cmd.installLocalFile.accesskey "i">
-<!ENTITY cmd.installFileAddon.tooltip "Addon installeren">
-<!ENTITY cmd.installFileTheme.tooltip "Thema installeren">
-<!ENTITY cmd.installUpdatesAll2.label "Updates installeren">
-<!ENTITY cmd.installUpdatesAll2.accesskey "s">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Geselecteerde updates installeren">
-<!ENTITY cmd.restartApp2.label "&brandShortName; herstarten">
-<!ENTITY cmd.restartApp2.accesskey "h">
-<!ENTITY cmd.restartApp2.tooltip "&brandShortName; herstarten om wijzigingen toe te passen">
-<!ENTITY cmd.skip.label "Overslaan">
-<!ENTITY cmd.skip.accesskey "O">
-<!ENTITY cmd.skip.tooltip "Deze updates overslaan">
-<!ENTITY cmd.continue.label "Doorgaan">
-<!ENTITY cmd.continue.accesskey "D">
-<!ENTITY cmd.continue.tooltip "Laden &brandShortName; voortzetten">
-<!ENTITY cmd.enableAll.label "Alles inschakelen">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Alle weergegeven add-ons inschakelen">
-<!ENTITY cmd.disableAll.label "Alles uitschakelen">
-<!ENTITY cmd.disableAll.accesskey "u">
-<!ENTITY cmd.disableAll.tooltip "Alle weergegeven add-ons uitschakelen">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Thema gebruiken">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "&brandShortName;\'s thema wijzigen">
-<!ENTITY cmd.options.label "Opties">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Opties voor geselecteerde extensies instellen">
-<!ENTITY cmd.optionsUnix.label "Voorkeuren">
-<!ENTITY cmd.optionsUnix.accesskey "V">
-<!ENTITY cmd.optionsUnix.tooltip "Voorkeuren van geselecteerde extensies wijzigen">
-<!ENTITY cmd.enable.label "Inschakelen">
-<!ENTITY cmd.enable.accesskey "I">
-<!ENTITY cmd.enable.tooltip "Deze add-on inschakelen als &brandShortName; wordt herstart">
-<!ENTITY cmd.disable.label "UitschakelenU">
-<!ENTITY cmd.disable.accesskey "U">
-<!ENTITY cmd.disable.tooltip "Deze add-on uitschakelen als &brandShortName;  wordt herstart">
-<!ENTITY cmd.uninstall.label "Deïnstalleren">
-<!ENTITY cmd.uninstall2.accesskey "D">
-<!ENTITY cmd.uninstall2.tooltip "Deze add-on deïnstalleren als &brandShortName; wordt herstart">
-<!ENTITY cmd.cancelUninstall.label "Deïnstalleren annuleren">
-<!ENTITY cmd.cancelUninstall.accesskey "a">
-<!ENTITY cmd.cancelUninstall.tooltip "Het deïnstalleren van deze add-on annuleren">
-<!ENTITY cmd.cancelInstall.label "Installeren annuleren">
-<!ENTITY cmd.cancelInstall.accesskey "a">
-<!ENTITY cmd.cancelInstall.tooltip "Het installeren van deze add-on annuleren">
-<!ENTITY cmd.cancelUpgrade.label "Update annuleren">
-<!ENTITY cmd.cancelUpgrade.accesskey "a">
-<!ENTITY cmd.cancelUpgrade.tooltip "Updaten van deze add-on annuleren">
-<!ENTITY cmd.installUpdate.label "Update installeren">
-<!ENTITY cmd.installUpdate.accesskey "i">
-<!ENTITY cmd.installUpdate.tooltip "Update voor deze add-on installeren">
-<!ENTITY cmd.showUpdateInfo.label "Informatie weergeven">
-<!ENTITY cmd.showUpdateInfo.accesskey "w">
-<!ENTITY cmd.showUpdateInfo.tooltip "Meer informatie over deze updates weergeven">
-<!ENTITY cmd.hideUpdateInfo.label "Informatie verbergen">
-<!ENTITY cmd.hideUpdateInfo.accesskey "V">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Informatie over deze updates verbergen">
-<!ENTITY cmd.installSearchResult.label "Aan &brandShortName; toevoegen…">
-<!ENTITY cmd.installSearchResult.accesskey "t">
-<!ENTITY cmd.installSearchResult.tooltip "Deze add-on downloaden en installeren">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Annuleren">
-<!ENTITY cancel.accesskey "A">
-<!ENTITY cancelInstall.label "Annuleren">
-<!ENTITY cancelInstall.accesskey "A">
-<!ENTITY cancelUpgrade.label "Annuleren">
-<!ENTITY cancelUpgrade.accesskey "A">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Startpagina bezoeken">
-<!ENTITY cmd.homepage.accesskey "S">
-<!ENTITY cmd.about2.label "Over deze add-on">
-<!ENTITY cmd.about.accesskey "O">
-<!ENTITY cmd.checkUpdate.label "Update zoeken">
-<!ENTITY cmd.checkUpdate.accesskey "z">
-<!ENTITY cmd.includeUpdate.label "Update toevoegen">
-<!ENTITY cmd.includeUpdate.accesskey "t">
-<!ENTITY includeUpdate.label "Deze update toevoegen">
-<!ENTITY includeUpdate.accesskey "t">
-<!ENTITY includeUpdate.tooltip "Deze add-on toevoegen bij het installeren van de updates">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Bevat geen beveiligde updates.">
-<!ENTITY needsDependencies.label "Vereist aanvullende onderdelen.">
-<!ENTITY blocklisted.label "Uitgeschakeld ter bescherming.">
-<!ENTITY softBlocklisted.label "Bekend om het veroorzaken van veiligheids- of stabiliteitsproblemen.">
-<!ENTITY outdated.label "Een nieuwere, veiligere versie is beschikbaar.">
-<!ENTITY toBeDisabled.label "Deze add-on wordt uitgeschakeld als &brandShortName; wordt herstart.">
-<!ENTITY toBeEnabled.label "Deze add-on wordt ingeschakeld als &brandShortName; wordt herstart.">
-<!ENTITY toBeInstalled.label "Deze add-on wordt geïnstalleerd als &brandShortName; wordt herstart.">
-<!ENTITY toBeUninstalled.label "Deze add-on wordt gedeïnstalleerd als &brandShortName; wordt herstart.">
-<!ENTITY toBeUpdated.label "Deze add-on wordt geüpdated als &brandShortName; wordt herstart.">
-<!ENTITY getExtensions.label "Extensies verkrijgen">
-<!ENTITY getThemes.label "Thema\'s verkrijgen">
-<!ENTITY getPlugins.label "Plugins verkrijgen">
-<!ENTITY searchAddons.label "Door alle add-ons zoeken">
-<!ENTITY browseAddons.label "Door alle add-ons bladeren">
-<!ENTITY searchFailed.label "&brandShortName; kon de add-ons niet ophalen">
-<!ENTITY recommendedHeader.label "Aanbevolen">
-<!ENTITY recommendedThrobber.label "Aanbevolen add-ons ophalen…">
-<!ENTITY searchThrobber.label "Zoeken naar add-ons…">
-<!ENTITY resetSearch.label "Resultaten wissen">
-<!ENTITY noSearchResults.label "Alle resultaten zijn al geïnstalleerd of niet compatibel.">
-<!ENTITY noRecommendedResults.label "Alle aanbevelingen zijn al geïnstalleerd of niet compatibel.">
-<!ENTITY emptySearch.label "Geen overeenkomende add-ons">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Annuleren">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Meer informatie">
-<!ENTITY searchBox.label "Door alle add-ons zoeken">
-<!ENTITY recommendedResults.label "Alle aanbevolen add-ons bekijken">
-<!ENTITY searchResultConnecting.label "Verbinden…">
-<!ENTITY searchResultInstalling.label "Installeren…">
-<!ENTITY searchResultFailed.label "Installeren mislukt">
-<!ENTITY searchResultInstalled.label "Installeren voltooid">
-<!ENTITY addonTypeExtension.label "Extensie">
-<!ENTITY addonTypeTheme.label "Thema">
-<!ENTITY missingThumbnail.label "Geen voorbeeld">
-<!ENTITY previewNoThemeSelected.label "Geen thema geselecteerd">
-<!ENTITY previewNoPreviewImage.label "Dit thema heeft geen voorbeeld afbeelding">
-<!ENTITY moreInfo.label "Meer informatie">
-<!ENTITY infoNoAddonSelected.label "Geen update geselecteerd">
-<!ENTITY infoNoUpdateInfo.label "Deze update heeft geen enkele aanvullende informatie">
-<!ENTITY infoUpdateInfoError.label "Er is een fout opgetreden bij het laden van de informatie van deze update">
-<!ENTITY updateSuccess.label "Update succesvol voltooid.">
-<!ENTITY installSuccess.label "Installatie succesvol voltooid.">
-<!ENTITY installSuccessRestart.label "Herstarten om de installatie te voltooien.">
-<!ENTITY updateSuccessRestart.label "Herstarten om de update te voltooien.">
-<!ENTITY installWaiting.label "Even geduld…">
-<!ENTITY installIncompatibleUpdate.label "Compatibiliteit controleren…">
-<!ENTITY installFinishing.label "Installeren…">
-<!ENTITY installFailure.label "Installatie mislukt.">
-<!ENTITY progressStatus.label "Op updates controleren…">
-<!ENTITY eula.title "Eindgebruiker licentie overeenkomst">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accepteren en installeren…">
-<!ENTITY blocklist.blocked.label "Geblokkeerd">
-<!ENTITY blocklist.checkbox.label "Uitschakelen">
diff --git a/locale/nl/install.dtd b/locale/nl/install.dtd
index a3faaeb..9d7771a 100644
--- a/locale/nl/install.dtd
+++ b/locale/nl/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Voorbeeld">
 <!ENTITY preview.ak "V">
-<!ENTITY switchtoedit "Naar bewerken omschakelen">
-<!ENTITY switchtoedit.ak "b">
 <!ENTITY title "Gebruikerstijl installeren">
diff --git a/locale/nl/manage.dtd b/locale/nl/manage.dtd
index 8151d3b..933609d 100644
--- a/locale/nl/manage.dtd
+++ b/locale/nl/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Labels wijzigen">
-<!ENTITY changetags.ak "w">
-<!ENTITY done "Voltooid">
-<!ENTITY done.ak "V">
 <!ENTITY filter "Zoeken">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Stijlen">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Bezoek">
 <!ENTITY nostylesend "voor informatie hoe Stylish te gebruiken.">
 <!ENTITY sortenabled "Ingeschakeld">
 <!ENTITY sortname "Naam">
-<!ENTITY sorttag "Label">
 <!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Sorteren op:">
-<!ENTITY update "Bijwerken">
-<!ENTITY update.ak "B">
 <!ENTITY writenew "Nieuwe stijl schrijven">
 <!ENTITY writenew.ak "s">
diff --git a/locale/nl/manage.properties b/locale/nl/manage.properties
index 9233444..acdf734 100644
--- a/locale/nl/manage.properties
+++ b/locale/nl/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Ingeschakeld
-groupEnabledFalse=Uitgeschakeld
-groupTagNone=Geen labels
-groupTypeApp=Toepassing
-groupTypeGlobal=Algemeen
-groupTypeNone=Geen type
-groupTypeSite=Site
-styleRegistrationOff=Alle stijlen zijn uitgeschakeld
-styleRegistrationTurnOn=Stijlen inschakelen
-styleRegistrationTurnOn.ak=i
-updateAvailable=Er is een nieuwe versie beschikbaar.
-updateCheckError=Fout bij controleren op nieuwe versie.
-updateCompleted=Installeren nieuwe versie voltooid.
-updateFailed=Installeren nieuwe versie mislukt.
-updateNotFound=Geen updates gevonden.
-updateNotPossible=Installeren nieuwe versie niet mogelijk.
 appstyledescription=Heeft invloed op de gebruikersinterface.
 globalstyledescription=Kan invloed op alles hebben.
 sitestyledescription=Beïnvloed %S.
-tagstyledescription=Labels: %S.
 manageaddonstitle=Stijlen
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/nl/overlay.dtd b/locale/nl/overlay.dtd
index 8136b90..92075a2 100644
--- a/locale/nl/overlay.dtd
+++ b/locale/nl/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Bestand installeren...">
 <!ENTITY addfile.ak "i">
+<!ENTITY cmd.enable.label "Inschakelen">
+<!ENTITY cmd.enable.accesskey "I">
+<!ENTITY cmd.disable.label "UitschakelenU">
+<!ENTITY cmd.disable.accesskey "U">
+<!ENTITY cmd.uninstall.label "Deïnstalleren">
+<!ENTITY cmd.uninstall2.accesskey "D">
 <!ENTITY findstylebrowser "Stijlen zoeken voor deze website...">
 <!ENTITY findstylebrowser.ak "z">
 <!ENTITY managestyles "Stijlen beheren...">
diff --git a/locale/nl/overlay.properties b/locale/nl/overlay.properties
index 788aeff..7dbf237 100644
--- a/locale/nl/overlay.properties
+++ b/locale/nl/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S website stijl(en), %S algemene stijl(en)
 tooltipStylesOff=Stylish - Stijlen zijn uitgeschakeld
 updatestyle=\'%S\' werkelijk bijwerken?
diff --git a/locale/pl-PL/common.dtd b/locale/pl-PL/common.dtd
deleted file mode 100644
index f1d9771..0000000
--- a/locale/pl-PL/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "Edytuj">
-<!ENTITY editstyle.ak "E">
-<!ENTITY stylish "Stylish">
diff --git a/locale/pl-PL/common.properties b/locale/pl-PL/common.properties
deleted file mode 100644
index 47aa523..0000000
--- a/locale/pl-PL/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=Usuń znacznik „%S” i dodaj znaczniki:
-changeTagsNoCurrent=Dodaj następujące znaczniki:
-changeTagsTitle=Zmień znaczniki
-deleteStyle=Czy na pewno chcesz odinstalować styl „%S”?
-deleteStyleTitle=Dezinstalacja stylu
-deleteStyleOK=Odinstaluj
-deleteStyles=Czy na pewno chcesz odinstalować te %S style?
-deleteStylesTitle=Dezinstalacja stylów
-deleteStylesOK=Odinstaluj
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stylizuj Internet za pomocą Stylish – menadżera stylów użytkownika.
diff --git a/locale/pl-PL/extensions.dtd b/locale/pl-PL/extensions.dtd
deleted file mode 100644
index 7bb1def..0000000
--- a/locale/pl-PL/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Dodatki">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "625">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Pobierz dodatki">
-<!ENTITY extensions.label "Rozszerzenia">
-<!ENTITY themes.label "Motywy">
-<!ENTITY locales.label "Języki">
-<!ENTITY plugins.label "Wtyczki">
-<!ENTITY update.label "Aktualizacje">
-<!ENTITY install.label "Instalacja">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Znajdź aktualizacje">
-<!ENTITY cmd.checkUpdatesAll.accesskey "n">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Znajdź aktualizacje zainstalowanych dodatków">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Znajdź aktualizacje zainstalowanych motywów">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Znajdź aktualizacje zainstalowanych wtyczek">
-<!ENTITY cmd.installLocalFile.label "Zainstaluj…">
-<!ENTITY cmd.installLocalFile.accesskey "a">
-<!ENTITY cmd.installFileAddon.tooltip "Zainstaluj dodatek">
-<!ENTITY cmd.installFileTheme.tooltip "Zainstaluj motyw">
-<!ENTITY cmd.installUpdatesAll2.label "Zainstaluj aktualizacje">
-<!ENTITY cmd.installUpdatesAll2.accesskey "Z">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Zainstaluj wybrane aktualizacje">
-<!ENTITY cmd.restartApp2.label "Uruchom ponownie program &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "U">
-<!ENTITY cmd.restartApp2.tooltip "Uruchom ponownie program &brandShortName;, by wprowadzić zmiany">
-<!ENTITY cmd.skip.label "Pomiń">
-<!ENTITY cmd.skip.accesskey "P">
-<!ENTITY cmd.skip.tooltip "Pomiń te aktualizacje">
-<!ENTITY cmd.continue.label "Kontynuuj">
-<!ENTITY cmd.continue.accesskey "K">
-<!ENTITY cmd.continue.tooltip "Kontynuuj uruchamianie programu &brandShortName;">
-<!ENTITY cmd.enableAll.label "Włącz wszystkie">
-<!ENTITY cmd.enableAll.accesskey "w">
-<!ENTITY cmd.enableAll.tooltip "Włącz wszystkie wyświetlone dodatki">
-<!ENTITY cmd.disableAll.label "Wyłącz wszystkie">
-<!ENTITY cmd.disableAll.accesskey "y">
-<!ENTITY cmd.disableAll.tooltip "Wyłącz wszystkie wyświetlone dodatki">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Zastosuj">
-<!ENTITY cmd.useTheme.accesskey "a">
-<!ENTITY cmd.useTheme.tooltip "Zmień motyw programu &brandShortName;.">
-<!ENTITY cmd.options.label "Opcje">
-<!ENTITY cmd.options.accesskey "p">
-<!ENTITY cmd.options.tooltip "Ustaw opcje wybranego rozszerzenia">
-<!ENTITY cmd.optionsUnix.label "Preferencje">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Edytuj preferencje wybranego rozszerzenia">
-<!ENTITY cmd.enable.label "Włącz">
-<!ENTITY cmd.enable.accesskey "W">
-<!ENTITY cmd.enable.tooltip "Włącz ten dodatek przy ponownym uruchomieniu programu &brandShortName;">
-<!ENTITY cmd.disable.label "Wyłącz">
-<!ENTITY cmd.disable.accesskey "W">
-<!ENTITY cmd.disable.tooltip "Wyłącz ten dodatek przy ponownym uruchomieniu programu &brandShortName;">
-<!ENTITY cmd.uninstall.label "Odinstaluj">
-<!ENTITY cmd.uninstall2.accesskey "O">
-<!ENTITY cmd.uninstall2.tooltip "Odinstaluj ten dodatek przy ponownym uruchomieniu programu &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Anuluj dezinstalację">
-<!ENTITY cmd.cancelUninstall.accesskey "A">
-<!ENTITY cmd.cancelUninstall.tooltip "Anuluj dezinstalację tego dodatku">
-<!ENTITY cmd.cancelInstall.label "Anuluj instalację">
-<!ENTITY cmd.cancelInstall.accesskey "A">
-<!ENTITY cmd.cancelInstall.tooltip "Anuluj instalację tego dodatku">
-<!ENTITY cmd.cancelUpgrade.label "Anuluj aktualizację">
-<!ENTITY cmd.cancelUpgrade.accesskey "A">
-<!ENTITY cmd.cancelUpgrade.tooltip "Anuluj aktualizację tego dodatku">
-<!ENTITY cmd.installUpdate.label "Zainstaluj aktualizację">
-<!ENTITY cmd.installUpdate.accesskey "i">
-<!ENTITY cmd.installUpdate.tooltip "Zainstaluj aktualizację tego dodatku">
-<!ENTITY cmd.showUpdateInfo.label "Wyświetl informacje">
-<!ENTITY cmd.showUpdateInfo.accesskey "W">
-<!ENTITY cmd.showUpdateInfo.tooltip "Wyświetl informacje na temat tych aktualizacji">
-<!ENTITY cmd.hideUpdateInfo.label "Ukryj informacje">
-<!ENTITY cmd.hideUpdateInfo.accesskey "U">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Ukryj informacje na temat tych aktualizacji">
-<!ENTITY cmd.installSearchResult.label "Dodaj do programu &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "D">
-<!ENTITY cmd.installSearchResult.tooltip "Pobierz i zainstaluj ten dodatek">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Anuluj">
-<!ENTITY cancel.accesskey "A">
-<!ENTITY cancelInstall.label "Anuluj">
-<!ENTITY cancelInstall.accesskey "A">
-<!ENTITY cancelUpgrade.label "Anuluj">
-<!ENTITY cancelUpgrade.accesskey "A">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Odwiedź stronę domową">
-<!ENTITY cmd.homepage.accesskey "s">
-<!ENTITY cmd.about2.label "O tym dodatku">
-<!ENTITY cmd.about.accesskey "m">
-<!ENTITY cmd.checkUpdate.label "Znajdź aktualizację">
-<!ENTITY cmd.checkUpdate.accesskey "Z">
-<!ENTITY cmd.includeUpdate.label "Dołącz aktualizację">
-<!ENTITY cmd.includeUpdate.accesskey "D">
-<!ENTITY includeUpdate.label "Dołącz tę aktualizację">
-<!ENTITY includeUpdate.accesskey "D">
-<!ENTITY includeUpdate.tooltip "Dołącz ten dodatek podczas instalowania aktualizacji">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Nie dostarcza bezpiecznych aktualizacji.">
-<!ENTITY needsDependencies.label "Wymaga dodatkowych elementów.">
-<!ENTITY blocklisted.label "Wyłączony z przyczyn bezpieczeństwa.">
-<!ENTITY softBlocklisted.label "Stwarza zagrożenie bezpieczeństwa lub utraty stabilności.">
-<!ENTITY outdated.label "Dostępna jest nowa, bezpieczniejsza wersja.">
-<!ENTITY toBeDisabled.label "Zostanie wyłączony przy ponownym uruchomieniu programu &brandShortName;.">
-<!ENTITY toBeEnabled.label "Zostanie włączony przy ponownym uruchomieniu programu &brandShortName;.">
-<!ENTITY toBeInstalled.label "Zostanie zainstalowany przy ponownym uruchomieniu programu &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Zostanie odinstalowany przy ponownym uruchomieniu programu &brandShortName;.">
-<!ENTITY toBeUpdated.label "Zostanie zaktualizowany przy ponownym uruchomieniu programu &brandShortName;.">
-<!ENTITY getExtensions.label "Pobierz rozszerzenia">
-<!ENTITY getThemes.label "Pobierz motywy">
-<!ENTITY getPlugins.label "Pobierz wtyczki">
-<!ENTITY searchAddons.label "Przeszukaj wszystkie">
-<!ENTITY browseAddons.label "Przeglądaj wszystkie dodatki">
-<!ENTITY searchFailed.label "Program &brandShortName; nie mógł pobrać listy dodatków">
-<!ENTITY recommendedHeader.label "Polecane">
-<!ENTITY recommendedThrobber.label "Pobieranie listy polecanych dodatków">
-<!ENTITY searchThrobber.label "Przeszukiwanie dodatków">
-<!ENTITY resetSearch.label "Wyczyść wyniki">
-<!ENTITY noSearchResults.label "Wszystkie rozszerzenia pasujące do zapytania są albo niekompatybilne, albo już zainstalowane.">
-<!ENTITY noRecommendedResults.label "Wszystkie polecane rozszerzenia są albo niekompatybilne, albo już zainstalowane.">
-<!ENTITY emptySearch.label "Brak dodatków pasujących do zapytania">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Anuluj">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Więcej informacji">
-<!ENTITY searchBox.label "Przeszukaj wszystkie">
-<!ENTITY recommendedResults.label "Wyświetl wszystkie polecane dodatki">
-<!ENTITY searchResultConnecting.label "Nawiązywanie połączenia…">
-<!ENTITY searchResultInstalling.label "Instalowanie…">
-<!ENTITY searchResultFailed.label "Instalacja nie powiodła się">
-<!ENTITY searchResultInstalled.label "Instalacja ukończona">
-<!ENTITY addonTypeExtension.label "Rozszerzenie">
-<!ENTITY addonTypeTheme.label "Motyw">
-<!ENTITY missingThumbnail.label "Brak podglądu">
-<!ENTITY previewNoThemeSelected.label "Nie wybrano motywu">
-<!ENTITY previewNoPreviewImage.label "Ten motyw nie posiada obrazka podglądu">
-<!ENTITY moreInfo.label "Więcej informacji">
-<!ENTITY infoNoAddonSelected.label "Nie wybrano aktualizacji">
-<!ENTITY infoNoUpdateInfo.label "Nie ma dodatkowych informacji na temat tej aktualizacji">
-<!ENTITY infoUpdateInfoError.label "Podczas pobierania informacji na temat tej aktualizacji wystąpił błąd.">
-<!ENTITY updateSuccess.label "Aktualizacja zakończona powodzeniem.">
-<!ENTITY installSuccess.label "Instalacja zakończona powodzeniem.">
-<!ENTITY installSuccessRestart.label "Uruchom program ponownie, by dokończyć instalację.">
-<!ENTITY updateSuccessRestart.label "Uruchom program ponownie, by dokończyć aktualizację.">
-<!ENTITY installWaiting.label "Oczekiwanie…">
-<!ENTITY installIncompatibleUpdate.label "Sprawdzanie kompatybilności…">
-<!ENTITY installFinishing.label "Instalowanie…">
-<!ENTITY installFailure.label "Instalacja nie powiodła się.">
-<!ENTITY progressStatus.label "Sprawdzanie dostępności aktualizacji">
-<!ENTITY eula.title "Umowa licencyjna użytkownika">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Akceptuję, zainstaluj…">
-<!ENTITY blocklist.blocked.label "Zablokowany">
-<!ENTITY blocklist.checkbox.label "Wyłącz">
diff --git a/locale/pl-PL/manage.properties b/locale/pl-PL/manage.properties
deleted file mode 100644
index 6daa244..0000000
--- a/locale/pl-PL/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Włączony
-groupEnabledFalse=Wyłączony
-groupTagNone=Brak znaczników
-groupTypeApp=Aplikacja
-groupTypeGlobal=Globalny
-groupTypeNone=Brak typu
-groupTypeSite=Witryna
-styleRegistrationOff=Wszystkie style są wyłączone.
-styleRegistrationTurnOn=Włącz style
-styleRegistrationTurnOn.ak=W
-updateAvailable=Aktualizacja jest dostępna.
-updateCheckError=Wystąpił błąd podczas sprawdzania aktualizacji.
-updateCompleted=Aktualizacja została zakończona.
-updateFailed=Aktualizacja się nie powiodła.
-updateNotFound=Nie znaleziono aktualizacji.
-updateNotPossible=Aktualizacja jest niemożliwa.
-appstyledescription=Wpływa na interfejs użytkownika.
-globalstyledescription=Może wpływać na wszystko.
-sitestyledescription=Wpływa %S.
-tagstyledescription=Znaczniki: %S.
-manageaddonstitle=Style
-installfromurlsprompttitle=Install from URLs
-installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/pl/common.dtd b/locale/pl/common.dtd
new file mode 100644
index 0000000..e5635f9
--- /dev/null
+++ b/locale/pl/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "Edytuj">
+<!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
+<!ENTITY stylish "Stylish">
diff --git a/locale/pl/common.properties b/locale/pl/common.properties
new file mode 100644
index 0000000..601cfae
--- /dev/null
+++ b/locale/pl/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=Czy na pewno chcesz odinstalować styl „%S”?
+deleteStyleTitle=Dezinstalacja stylu
+deleteStyleOK=Odinstaluj
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Stylizuj Internet za pomocą Stylish – menadżera stylów użytkownika.
diff --git a/locale/pl-PL/domi.dtd b/locale/pl/domi.dtd
similarity index 100%
rename from locale/pl-PL/domi.dtd
rename to locale/pl/domi.dtd
diff --git a/locale/pl-PL/edit.dtd b/locale/pl/edit.dtd
similarity index 83%
rename from locale/pl-PL/edit.dtd
rename to locale/pl/edit.dtd
index 7b72f63..6f13f6e 100644
--- a/locale/pl-PL/edit.dtd
+++ b/locale/pl/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Ścieżka dostępu do chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI danych…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "D">
 <!ENTITY save "Zapisz">
 <!ENTITY save.ak "Z">
-<!ENTITY switchtoinstall "Przełącz na instalację">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Znaczniki">
-<!ENTITY tags.ak "K">
 <!ENTITY wraplines "Zawijaj wiersze">
 <!ENTITY wraplines.ak "R">
 <!ENTITY xulnamespace "Przestrzenie nazw XUL jako domyślne">
diff --git a/locale/pl-PL/edit.properties b/locale/pl/edit.properties
similarity index 62%
rename from locale/pl-PL/edit.properties
rename to locale/pl/edit.properties
index 4666e5f..2dc006a 100644
--- a/locale/pl-PL/edit.properties
+++ b/locale/pl/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Edycja „%S”
 newstyletitle=Nowy styl
 missingcode=Wprowadź kod dla tego stylu.
 missingname=Nazwij styl.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/pl-PL/install.dtd b/locale/pl/install.dtd
similarity index 71%
rename from locale/pl-PL/install.dtd
rename to locale/pl/install.dtd
index abf7047..3064ece 100644
--- a/locale/pl-PL/install.dtd
+++ b/locale/pl/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Podgląd">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Przejdź do edycji">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Instaluj styl użytkownika">
diff --git a/locale/pl-PL/install.properties b/locale/pl/install.properties
similarity index 100%
rename from locale/pl-PL/install.properties
rename to locale/pl/install.properties
diff --git a/locale/pl-PL/manage.dtd b/locale/pl/manage.dtd
similarity index 59%
rename from locale/pl-PL/manage.dtd
rename to locale/pl/manage.dtd
index 4e3f5f7..dbbc2bc 100644
--- a/locale/pl-PL/manage.dtd
+++ b/locale/pl/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Zmień znaczniki">
-<!ENTITY changetags.ak "Z">
-<!ENTITY done "Gotowe">
-<!ENTITY done.ak "G">
 <!ENTITY filter "Szukaj">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Style">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Przejdź na witrynę">
 <!ENTITY nostylesend "gdzie uzyskasz informacje o tym, jak używać Stylish.">
 <!ENTITY sortenabled "włączenia">
 <!ENTITY sortname "nazwy">
-<!ENTITY sorttag "znacznika">
 <!ENTITY sorttype "typu">
-<!ENTITY sortgroup "Sortuj wg:">
-<!ENTITY update "Uaktualnij">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Napisz nowy styl">
 <!ENTITY writenew.ak "N">
diff --git a/locale/pl/manage.properties b/locale/pl/manage.properties
new file mode 100644
index 0000000..dcf92c1
--- /dev/null
+++ b/locale/pl/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=Wpływa na interfejs użytkownika.
+globalstyledescription=Może wpływać na wszystko.
+sitestyledescription=Wpływa %S.
+manageaddonstitle=Style
+installfromurlsprompttitle=Install from URLs
+installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
+installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/pl-PL/overlay.dtd b/locale/pl/overlay.dtd
similarity index 65%
rename from locale/pl-PL/overlay.dtd
rename to locale/pl/overlay.dtd
index 5aa09e6..7e0fc3e 100644
--- a/locale/pl-PL/overlay.dtd
+++ b/locale/pl/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Zainstaluj plik…">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Włącz">
+<!ENTITY cmd.enable.accesskey "W">
+<!ENTITY cmd.disable.label "Wyłącz">
+<!ENTITY cmd.disable.accesskey "W">
+<!ENTITY cmd.uninstall.label "Odinstaluj">
+<!ENTITY cmd.uninstall2.accesskey "O">
 <!ENTITY findstylebrowser "Znajdź style dla tej witryny…">
 <!ENTITY findstylebrowser.ak "Z">
 <!ENTITY managestyles "Zarządzaj stylami…">
diff --git a/locale/pl-PL/overlay.properties b/locale/pl/overlay.properties
similarity index 71%
rename from locale/pl-PL/overlay.properties
rename to locale/pl/overlay.properties
index b50ef1c..8d45a02 100644
--- a/locale/pl-PL/overlay.properties
+++ b/locale/pl/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish – style witryny: %S, style globalne: %S
 tooltipStylesOff=Stylish - style są wyłączone
 updatestyle=Czy na pewno chcesz uaktualnić styl „%S”?
diff --git a/locale/pt-BR/common.dtd b/locale/pt-BR/common.dtd
index ee92e3e..538340a 100644
--- a/locale/pt-BR/common.dtd
+++ b/locale/pt-BR/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Editar">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/pt-BR/common.properties b/locale/pt-BR/common.properties
index d4c20be..d97f8e7 100644
--- a/locale/pt-BR/common.properties
+++ b/locale/pt-BR/common.properties
@@ -1,10 +1,4 @@
-changeTags=Remover o marcador \'%S\' e adicionar os seguintes marcadores:
-changeTagsNoCurrent=Adicionar os seguintes marcadores:
-changeTagsTitle=Alterar marcadores
 deleteStyle=Tem certeza que quer desinstalar \'%S\'?
 deleteStyleTitle=Desinstalar estilo?
 deleteStyleOK=Desinstalar
-deleteStyles=Tem certeza de que deseja desinstalar esses %S estilos?
-deleteStylesTitle=Desinstalar estilos?
-deleteStylesOK=Desinstalar
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Mude o visual da sua navegação com o Stylish, um gerenciador de estilos do usuário.
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Mude o visual da web com o Stylish, um gerenciador de estilos do usuário.
diff --git a/locale/pt-BR/edit.dtd b/locale/pt-BR/edit.dtd
index 0b9eb9a..0758c33 100644
--- a/locale/pt-BR/edit.dtd
+++ b/locale/pt-BR/edit.dtd
@@ -1,6 +1,8 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Caminho da pasta do Chrome">
 <!ENTITY chromefolder.ak "C">
-<!ENTITY dataURI "URI de dados...">
+<!ENTITY dataURI "URI de dados…">
 <!ENTITY dataURI.ak "d">
 <!ENTITY htmlnamespace "Namespace HTML como padrão">
 <!ENTITY htmlnamespace.ak "H">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "V">
 <!ENTITY save "Salvar">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Mudar para Instalação">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Marcas">
-<!ENTITY tags.ak "M">
 <!ENTITY wraplines "Quebrar linhas">
 <!ENTITY wraplines.ak "Q">
 <!ENTITY xulnamespace "Namespace XUL como padrão">
diff --git a/locale/pt-BR/edit.properties b/locale/pt-BR/edit.properties
index 8b902e7..b347c1d 100644
--- a/locale/pt-BR/edit.properties
+++ b/locale/pt-BR/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Editando \'%S\'
 newstyletitle=Novo estilo
 missingcode=Insira algum código para este estilo.
 missingname=Dê um nome a este estilo.
-unsavedchanges=Quer salvar suas mudanças neste estilo?
-unsavedchangestitle=Salvar mudanças?
diff --git a/locale/pt-BR/extensions.dtd b/locale/pt-BR/extensions.dtd
deleted file mode 100644
index 37a1556..0000000
--- a/locale/pt-BR/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Complementos">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "600">
-<!ENTITY em.height "430">
-<!ENTITY cmd.info.commandKey "I">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "W">
-<!-- View labels -->
-<!ENTITY search.label "Adicionar">
-<!ENTITY extensions.label "Extensões">
-<!ENTITY themes.label "Temas">
-<!ENTITY locales.label "Idiomas">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Atualizações">
-<!ENTITY install.label "Instalações">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Localizar atualizações">
-<!ENTITY cmd.checkUpdatesAll.accesskey "L">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Localiza atualizações de suas extensões">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Localizar atualizações de seus temas">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Localiza atualizações de seus plugins">
-<!ENTITY cmd.installLocalFile.label "Instalar…">
-<!ENTITY cmd.installLocalFile.accesskey "I">
-<!ENTITY cmd.installFileAddon.tooltip "Instala um complemento">
-<!ENTITY cmd.installFileTheme.tooltip "Instala um tema">
-<!ENTITY cmd.installUpdatesAll2.label "Instalar atualizações">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Instala as atualizações selecionadas">
-<!ENTITY cmd.restartApp2.label "Reiniciar o &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Reinicia o &brandShortName; para aplicar as alterações">
-<!ENTITY cmd.skip.label "Depois">
-<!ENTITY cmd.skip.accesskey "D">
-<!ENTITY cmd.skip.tooltip "Ignora estas atualizações">
-<!ENTITY cmd.continue.label "Continuar">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continua carregando o &brandShortName;">
-<!ENTITY cmd.enableAll.label "Ativar tudo">
-<!ENTITY cmd.enableAll.accesskey "t">
-<!ENTITY cmd.enableAll.tooltip "Ativa todos os complementos exibidos">
-<!ENTITY cmd.disableAll.label "Desativar tudo">
-<!ENTITY cmd.disableAll.accesskey "D">
-<!ENTITY cmd.disableAll.tooltip "Desativa todos os complementos exibidos">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Usar o tema">
-<!ENTITY cmd.useTheme.accesskey "U">
-<!ENTITY cmd.useTheme.tooltip "Modifica o tema do &brandShortName;">
-<!ENTITY cmd.options.label "Opções">
-<!ENTITY cmd.options.accesskey "o">
-<!ENTITY cmd.options.tooltip "Define as opções da extensão selecionada">
-<!ENTITY cmd.optionsUnix.label "Preferências">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Define as preferências da extensão selecionada">
-<!ENTITY cmd.enable.label "Ativar">
-<!ENTITY cmd.enable.accesskey "A">
-<!ENTITY cmd.enable.tooltip "Ativa este complemento quando o &brandShortName; for reiniciado">
-<!ENTITY cmd.disable.label "Desativar">
-<!ENTITY cmd.disable.accesskey "e">
-<!ENTITY cmd.disable.tooltip "Desativa este complemento quando o &brandShortName; for reiniciado">
-<!ENTITY cmd.uninstall.label "Desinstalar">
-<!ENTITY cmd.uninstall2.accesskey "D">
-<!ENTITY cmd.uninstall2.tooltip "Desinstala este complemento quando o &brandShortName; for reiniciado">
-<!ENTITY cmd.cancelUninstall.label "Cancelar desinstalação">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancela a desinstalação deste complemento">
-<!ENTITY cmd.cancelInstall.label "Cancelar instalação">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancela a instalação deste complemento">
-<!ENTITY cmd.cancelUpgrade.label "Cancelar atualização">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancela a atualização deste complemento">
-<!ENTITY cmd.installUpdate.label "Instalar atualização">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Instala uma atualização deste complemento">
-<!ENTITY cmd.showUpdateInfo.label "Exibir informações">
-<!ENTITY cmd.showUpdateInfo.accesskey "x">
-<!ENTITY cmd.showUpdateInfo.tooltip "Exibe mais informações sobre estas atualizações">
-<!ENTITY cmd.hideUpdateInfo.label "Ocultar informações">
-<!ENTITY cmd.hideUpdateInfo.accesskey "O">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Oculta informações sobre estas atualizações">
-<!ENTITY cmd.installSearchResult.label "Adicionar ao &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Recebe e instala este complemento">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancelar">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancelar">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancelar">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visitar o site">
-<!ENTITY cmd.homepage.accesskey "V">
-<!ENTITY cmd.about2.label "Sobre este complemento">
-<!ENTITY cmd.about.accesskey "S">
-<!ENTITY cmd.checkUpdate.label "Procurar atualização">
-<!ENTITY cmd.checkUpdate.accesskey "P">
-<!ENTITY cmd.includeUpdate.label "Incluir atualização">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Incluir atualização">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Inclui este complemento ao instalar as atualizações">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Não fornece um método seguro de atualização.">
-<!ENTITY needsDependencies.label "Necessita de itens adicionais.">
-<!ENTITY blocklisted.label "Desativado para sua proteção.">
-<!ENTITY softBlocklisted.label "Conhecido por causar problemas de segurança ou estabilidade.">
-<!ENTITY outdated.label "Uma versão mais recente e segura está disponível.">
-<!ENTITY toBeDisabled.label "Este complemento será desativado quando o &brandShortName; for reiniciado.">
-<!ENTITY toBeEnabled.label "Este complemento será ativado quando o &brandShortName; for reiniciado.">
-<!ENTITY toBeInstalled.label "Este complemento será instalado quando o &brandShortName; for reiniciado.">
-<!ENTITY toBeUninstalled.label "Este complemento será desinstalado quando o &brandShortName; for reiniciado.">
-<!ENTITY toBeUpdated.label "Este complemento será atualizado quando o &brandShortName; for reiniciado.">
-<!ENTITY getExtensions.label "Adicionar extensões">
-<!ENTITY getThemes.label "Adicionar temas">
-<!ENTITY getPlugins.label "Adicionar plugins">
-<!ENTITY searchAddons.label "Pesquisar todos os complementos">
-<!ENTITY browseAddons.label "Navegar em todos os complementos">
-<!ENTITY searchFailed.label "O &brandShortName; não conseguiu carregar complementos">
-<!ENTITY recommendedHeader.label "Recomendados">
-<!ENTITY recommendedThrobber.label "Carregando complementos recomendados">
-<!ENTITY searchThrobber.label "Pesquisando complementos">
-<!ENTITY resetSearch.label "Limpar resultados">
-<!ENTITY noSearchResults.label "Todos os resultados já estão instalados ou são incompatíveis.">
-<!ENTITY noRecommendedResults.label "Todas as recomendações já estão instaladas ou são incompatíveis.">
-<!ENTITY emptySearch.label "Nenhum complemento encontrado">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Cancelar">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Saiba mais">
-<!ENTITY searchBox.label "Pesquisar todos os complementos">
-<!ENTITY recommendedResults.label "Ver todos os complementos recomendados">
-<!ENTITY searchResultConnecting.label "Conectando…">
-<!ENTITY searchResultInstalling.label "Instalando…">
-<!ENTITY searchResultFailed.label "Falha na instalação">
-<!ENTITY searchResultInstalled.label "Instalação concluída">
-<!ENTITY addonTypeExtension.label "Extensão">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Sem visualização">
-<!ENTITY previewNoThemeSelected.label "Nenhum tema selecionado.">
-<!ENTITY previewNoPreviewImage.label "Este tema não tem uma imagem para visualização">
-<!ENTITY moreInfo.label "Mais informações">
-<!ENTITY infoNoAddonSelected.label "Nenhuma atualização selecionada">
-<!ENTITY infoNoUpdateInfo.label "Esta atualização não tem nenhuma informação adicional">
-<!ENTITY infoUpdateInfoError.label "Houve um erro durante o carregamento de informações sobre esta atualização">
-<!ENTITY updateSuccess.label "Atualização concluída com êxito.">
-<!ENTITY installSuccess.label "Instalação concluída com êxito.">
-<!ENTITY installSuccessRestart.label "Reinicie para concluir a instalação.">
-<!ENTITY updateSuccessRestart.label "Reinicie para concluir a atualização.">
-<!ENTITY installWaiting.label "Aguardando…">
-<!ENTITY installIncompatibleUpdate.label "Verificando compatibilidade…">
-<!ENTITY installFinishing.label "Instalando…">
-<!ENTITY installFailure.label "Falha na instalação.">
-<!ENTITY progressStatus.label "Verificando atualizações">
-<!ENTITY eula.title "Acordo de licença para o usuário final">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Aceitar e instalar">
-<!ENTITY blocklist.blocked.label "Bloqueado">
-<!ENTITY blocklist.checkbox.label "Desativar">
diff --git a/locale/pt-BR/install.dtd b/locale/pt-BR/install.dtd
index 129569a..6d8a98a 100644
--- a/locale/pt-BR/install.dtd
+++ b/locale/pt-BR/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Visualizar">
 <!ENTITY preview.ak "V">
-<!ENTITY switchtoedit "Mudar para Edição">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Instalar estilo do usuário">
diff --git a/locale/pt-BR/install.properties b/locale/pt-BR/install.properties
index 0c626fb..ebba93a 100644
--- a/locale/pt-BR/install.properties
+++ b/locale/pt-BR/install.properties
@@ -1,8 +1,8 @@
 installintro=Você está prestes a instalar \'%S\' no Stylish.
 installintrononame=Você está prestes a instalar um estilo no Stylish.
-installapp=Este estilo pode afetar a interface do usuário do %S. Pode ser necessário reiniciar o %S para que este estilo seja ativado.
+installapp=Este estilo pode afetar a interface de usuário do %S. Pode ser necessário reiniciar o %S para que este estilo seja ativado.
 installglobal=Este estilo pode afetar todos os sites.
 installsite=Este estilo pode afetar os seguintes sites:
-installnotype=Este estilo pode afetar sites ou a interface do usuário do %S.
+installnotype=Este estilo pode afetar sites ou a interface de usuário do %S.
 missingname=Dê um nome a este estilo.
 preview.tooltip=Aplica este estilo temporariamente para que você possa ver se gosta.
diff --git a/locale/pt-BR/manage.dtd b/locale/pt-BR/manage.dtd
index 6384e56..90451d1 100644
--- a/locale/pt-BR/manage.dtd
+++ b/locale/pt-BR/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Alterar Marcadores">
-<!ENTITY changetags.ak "A">
-<!ENTITY done "Pronto">
-<!ENTITY done.ak "P">
 <!ENTITY filter "Buscar">
-<!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Estilos de Usuário">
+<!ENTITY installfromurls "Instalar a partir de URLs…">
 <!ENTITY managetitle "Stylish">
-<!ENTITY nostylesstart "Visitar">
+<!ENTITY nostylesstart "Visite">
 <!ENTITY nostylesend "para informações sobre como usar o Stylish.">
 <!ENTITY sortenabled "Habilitado">
 <!ENTITY sortname "Nome">
-<!ENTITY sorttag "Marca">
 <!ENTITY sorttype "Tipo">
-<!ENTITY sortgroup "Ordenar por:">
-<!ENTITY update "Atualizar">
-<!ENTITY update.ak "A">
-<!ENTITY writenew "Escrever Novo Estilo">
+<!ENTITY writenew "Escrever novo estilo">
 <!ENTITY writenew.ak "E">
diff --git a/locale/pt-BR/manage.properties b/locale/pt-BR/manage.properties
index 4af5cd3..c9c0850 100644
--- a/locale/pt-BR/manage.properties
+++ b/locale/pt-BR/manage.properties
@@ -1,24 +1,7 @@
-groupEnabledTrue=Habilitado
-groupEnabledFalse=Inibido
-groupTagNone=Nenhuma marca
-groupTypeApp=Aplicação
-groupTypeGlobal=Global
-groupTypeNone=Nenhum tipo
-groupTypeSite=Site
-styleRegistrationOff=Todos os estilos estão desativados.
-styleRegistrationTurnOn=Ativar estilos
-styleRegistrationTurnOn.ak=A
-updateAvailable=Uma atualização está disponível.
-updateCheckError=Ocorreu um erro ao verificar se há atualizações.
-updateCompleted=Atualização completada.
-updateFailed=Atualização falhou.
-updateNotFound=Nenhuma atualização encontrada.
-updateNotPossible=Não é possível aplicar atualizações.
-appstyledescription=Afeta a interface do usuário.
+appstyledescription=Afeta a interface de usuário.
 globalstyledescription=Pode afetar qualquer coisa.
 sitestyledescription=Afeta %S.
-tagstyledescription=Marcadores: %S.
-manageaddonstitle=Estilos de Usuário
-installfromurlsprompttitle=Install from URLs
-installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %S.
+manageaddonstitle=Estilos de usuário
+installfromurlsprompttitle=Instalar a partir de URLs
+installfromurlsprompt=Digite URLs de estilos de usuário a serem instalados. Podem ser páginas no userstyles.org ou arquivos CSS. Separe múltiplas URLs com espaços.
+installfromurlserror=Não foi possível instalar a partir destas URLs: %s.
diff --git a/locale/pt-BR/overlay.dtd b/locale/pt-BR/overlay.dtd
index 47180ea..f1b9685 100644
--- a/locale/pt-BR/overlay.dtd
+++ b/locale/pt-BR/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Instalar arquivo...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Ativar">
+<!ENTITY cmd.enable.accesskey "A">
+<!ENTITY cmd.disable.label "Desativar">
+<!ENTITY cmd.disable.accesskey "e">
+<!ENTITY cmd.uninstall.label "Desinstalar">
+<!ENTITY cmd.uninstall2.accesskey "D">
 <!ENTITY findstylebrowser "Procurar estilos para este site...">
 <!ENTITY findstylebrowser.ak "P">
 <!ENTITY managestyles "Gerenciar estilos...">
diff --git a/locale/pt-BR/overlay.properties b/locale/pt-BR/overlay.properties
index 036b324..714cbf1 100644
--- a/locale/pt-BR/overlay.properties
+++ b/locale/pt-BR/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S estilo(s) de site, %S estilo(s) global(is)
 tooltipStylesOff=Stylish - Os estilos estão desativados
 updatestyle=Tem certeza que quer atualizar \'%S\'?
diff --git a/locale/ro-RO/common.dtd b/locale/ro-RO/common.dtd
deleted file mode 100644
index e273c46..0000000
--- a/locale/ro-RO/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "Editare">
-<!ENTITY editstyle.ak "E">
-<!ENTITY stylish "Stylish">
diff --git a/locale/ro-RO/common.properties b/locale/ro-RO/common.properties
deleted file mode 100644
index 200e705..0000000
--- a/locale/ro-RO/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=Înlăturaţi eticheta \'%S\' şi adăugaţi următoarele etichete:
-changeTagsNoCurrent=Adăugaţi următoarele etichete:
-changeTagsTitle=Modificaţi etichetele
-deleteStyle=Sunteţi sigur că doriţi să dezinstalaţi \'%S\'?
-deleteStyleTitle=Dezinstalaţi stilul ?
-deleteStyleOK=Dezinstalare
-deleteStyles=Sunteţi sigur că doriţi să dezinstalaţi aceste stiluri %S?
-deleteStylesTitle=Dezinstalaţi stilurile?
-deleteStylesOK=Dezinstalare
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Restilizaţi Web-ul cu Stylish, un manager de stiluri de utilizator.
diff --git a/locale/ro-RO/extensions.dtd b/locale/ro-RO/extensions.dtd
deleted file mode 100644
index 54a725a..0000000
--- a/locale/ro-RO/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Add-ons">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Get Add-ons">
-<!ENTITY extensions.label "Extensions">
-<!ENTITY themes.label "Themes">
-<!ENTITY locales.label "Languages">
-<!ENTITY plugins.label "Plugins">
-<!ENTITY update.label "Updates">
-<!ENTITY install.label "Installation">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Find Updates">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Finds Updates to your Add-ons">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Finds Updates to your Themes">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Finds Updates to your Plugins">
-<!ENTITY cmd.installLocalFile.label "Install…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Install an Add-on">
-<!ENTITY cmd.installFileTheme.tooltip "Install a Theme">
-<!ENTITY cmd.installUpdatesAll2.label "Install Updates">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Install the selected updates">
-<!ENTITY cmd.restartApp2.label "Restart &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "Restart &brandShortName; to apply changes">
-<!ENTITY cmd.skip.label "Skip">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "Skip these updates">
-<!ENTITY cmd.continue.label "Continue">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "Continue loading &brandShortName;">
-<!ENTITY cmd.enableAll.label "Enable All">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "Enable all displayed Add-ons">
-<!ENTITY cmd.disableAll.label "Disable All">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "Disable all displayed Add-ons">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Use Theme">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "Changes &brandShortName;\'s Theme">
-<!ENTITY cmd.options.label "Options">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "Set Options for the selected Extension">
-<!ENTITY cmd.optionsUnix.label "Preferences">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "Edit Preferences for the selected Extension">
-<!ENTITY cmd.enable.label "Enable">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "Enable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.disable.label "Disable">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "Disable this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.uninstall.label "Uninstall">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "Uninstall this Add-on when &brandShortName; is restarted">
-<!ENTITY cmd.cancelUninstall.label "Cancel Uninstall">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "Cancel the uninstall of this Add-on">
-<!ENTITY cmd.cancelInstall.label "Cancel Install">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "Cancel the install of this Add-on">
-<!ENTITY cmd.cancelUpgrade.label "Cancel Upgrade">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "Cancel the upgrade of this Add-on">
-<!ENTITY cmd.installUpdate.label "Install Update">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "Install an update for this Add-on">
-<!ENTITY cmd.showUpdateInfo.label "Show Information">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "Show more information about these updates">
-<!ENTITY cmd.hideUpdateInfo.label "Hide Information">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Hide information about these updates">
-<!ENTITY cmd.installSearchResult.label "Add to &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "Download and install this add-on">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Cancel">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "Cancel">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "Cancel">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Visit Home Page">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "About this Add-on">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "Find Update">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "Include Update">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Include this update">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Include this Add-on when installing the updates">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Does not provide secure updates.">
-<!ENTITY needsDependencies.label "Requires additional items.">
-<!ENTITY blocklisted.label "Disabled for your protection.">
-<!ENTITY softBlocklisted.label "Known to cause security or stability issues.">
-<!ENTITY outdated.label "A newer, safer version is available.">
-<!ENTITY toBeDisabled.label "This add-on will be disabled when &brandShortName; is restarted.">
-<!ENTITY toBeEnabled.label "This add-on will be enabled when &brandShortName; is restarted.">
-<!ENTITY toBeInstalled.label "This add-on will be installed when &brandShortName; is restarted.">
-<!ENTITY toBeUninstalled.label "This add-on will be uninstalled when &brandShortName; is restarted.">
-<!ENTITY toBeUpdated.label "This add-on will be updated when &brandShortName; is restarted.">
-<!ENTITY getExtensions.label "Get Extensions">
-<!ENTITY getThemes.label "Get Themes">
-<!ENTITY getPlugins.label "Get Plugins">
-<!ENTITY searchAddons.label "Search All Add-ons">
-<!ENTITY browseAddons.label "Browse All Add-ons">
-<!ENTITY searchFailed.label "&brandShortName; couldn\'t retrieve add-ons">
-<!ENTITY recommendedHeader.label "Recommended">
-<!ENTITY recommendedThrobber.label "Retrieving recommended add-ons">
-<!ENTITY searchThrobber.label "Searching add-ons">
-<!ENTITY resetSearch.label "Clear Results">
-<!ENTITY noSearchResults.label "All results are already installed or incompatible.">
-<!ENTITY noRecommendedResults.label "All recommendations are already installed or incompatible.">
-<!ENTITY emptySearch.label "No matching add-ons">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Cancel">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Learn More">
-<!ENTITY searchBox.label "Search All Add-ons">
-<!ENTITY recommendedResults.label "See All Recommended Add-ons">
-<!ENTITY searchResultConnecting.label "Connecting…">
-<!ENTITY searchResultInstalling.label "Installing…">
-<!ENTITY searchResultFailed.label "Install Failed">
-<!ENTITY searchResultInstalled.label "Install Complete">
-<!ENTITY addonTypeExtension.label "Extension">
-<!ENTITY addonTypeTheme.label "Theme">
-<!ENTITY missingThumbnail.label "No Preview">
-<!ENTITY previewNoThemeSelected.label "No Theme Selected">
-<!ENTITY previewNoPreviewImage.label "This Theme does not have a Preview Image">
-<!ENTITY moreInfo.label "More Information">
-<!ENTITY infoNoAddonSelected.label "No Update Selected">
-<!ENTITY infoNoUpdateInfo.label "This update does not have any additional information">
-<!ENTITY infoUpdateInfoError.label "There was an error loading the information about this update">
-<!ENTITY updateSuccess.label "Update completed successfully.">
-<!ENTITY installSuccess.label "Install completed successfully.">
-<!ENTITY installSuccessRestart.label "Restart to complete the installation.">
-<!ENTITY updateSuccessRestart.label "Restart to complete the update.">
-<!ENTITY installWaiting.label "Waiting…">
-<!ENTITY installIncompatibleUpdate.label "Checking compatibility…">
-<!ENTITY installFinishing.label "Installing…">
-<!ENTITY installFailure.label "Install failed.">
-<!ENTITY progressStatus.label "Checking For Updates">
-<!ENTITY eula.title "End-User License Agreement">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Accept and Install…">
-<!ENTITY blocklist.blocked.label "Blocked">
-<!ENTITY blocklist.checkbox.label "Disable">
diff --git a/locale/ro-RO/install.properties b/locale/ro-RO/install.properties
deleted file mode 100644
index f59a99a..0000000
--- a/locale/ro-RO/install.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-installintro=You\'re about to install \'%S\' into Stylish.
-installintrononame=You\'re about to install a style into Stylish.
-installapp=This style may affect the %S user interface. You may need to restart %S for this style to take effect.
-installglobal=This style may affect all web sites.
-installsite=This style may affect the following sites:
-installnotype=This style may affect websites or the %S user interface.
-missingname=Give this style a name.
-preview.tooltip=Temporarily applies this style so you can see if you like it.
diff --git a/locale/ro-RO/manage.properties b/locale/ro-RO/manage.properties
deleted file mode 100644
index d402745..0000000
--- a/locale/ro-RO/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Activ
-groupEnabledFalse=Inactiv
-groupTagNone=Fara etichete
-groupTypeApp=Aplicatie
-groupTypeGlobal=Global
-groupTypeNone=No type
-groupTypeSite=Site
-styleRegistrationOff=All styles are turned off.
-styleRegistrationTurnOn=Activeaza silurile
-styleRegistrationTurnOn.ak=T
-updateAvailable=Este disponibila o actualizare.
-updateCheckError=A aparut o eroare la verificarea actualizarilor.
-updateCompleted=Actualizare finalizata.
-updateFailed=Actualizarea a esuat.
-updateNotFound=Nu au fost gasite actualizari.
-updateNotPossible=Nu se poate realiza actualizarea.
-appstyledescription=Afecteaza interfata de utilizator.
-globalstyledescription=Poate afecta totul.
-sitestyledescription=Afecteaza %S.
-tagstyledescription=Etichete: %S.
-manageaddonstitle=Stiluri de utilizator
-installfromurlsprompttitle=Install from URLs
-installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
-installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/ro/common.dtd b/locale/ro/common.dtd
new file mode 100644
index 0000000..8923811
--- /dev/null
+++ b/locale/ro/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "Editare">
+<!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
+<!ENTITY stylish "Stylish">
diff --git a/locale/ro/common.properties b/locale/ro/common.properties
new file mode 100644
index 0000000..fcce7a2
--- /dev/null
+++ b/locale/ro/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=Sunteţi sigur că doriţi să dezinstalaţi \'%S\'?
+deleteStyleTitle=Dezinstalaţi stilul ?
+deleteStyleOK=Dezinstalare
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Restilizaţi Web-ul cu Stylish, un manager de stiluri de utilizator.
diff --git a/locale/ro-RO/domi.dtd b/locale/ro/domi.dtd
similarity index 100%
rename from locale/ro-RO/domi.dtd
rename to locale/ro/domi.dtd
diff --git a/locale/ro-RO/edit.dtd b/locale/ro/edit.dtd
similarity index 83%
rename from locale/ro-RO/edit.dtd
rename to locale/ro/edit.dtd
index 39bea2a..fbc0b94 100644
--- a/locale/ro-RO/edit.dtd
+++ b/locale/ro/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Calea folderului Chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI date..">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "Salvare">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Schimbă pentru a instala">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Etichete">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Împachetează liniile">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "Spaţiu de nume XUL ca valoare implicită">
diff --git a/locale/ro-RO/edit.properties b/locale/ro/edit.properties
similarity index 64%
rename from locale/ro-RO/edit.properties
rename to locale/ro/edit.properties
index cf02864..2c2c32b 100644
--- a/locale/ro-RO/edit.properties
+++ b/locale/ro/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Editare \"%S\"
 newstyletitle=Stil nou
 missingcode=Introduceți un cod pentru acest stil.
 missingname=Dați un nume stilului.
-unsavedchanges=Doriti sa salvati modificarile acestui stil?
-unsavedchangestitle=Salvati modificarile?
diff --git a/locale/ro-RO/install.dtd b/locale/ro/install.dtd
similarity index 73%
rename from locale/ro-RO/install.dtd
rename to locale/ro/install.dtd
index 8033188..8645c14 100644
--- a/locale/ro-RO/install.dtd
+++ b/locale/ro/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Previzualizare">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "Schimbă la editare">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "Instalați stil utilizator">
diff --git a/locale/en-GB/install.properties b/locale/ro/install.properties
similarity index 100%
rename from locale/en-GB/install.properties
rename to locale/ro/install.properties
diff --git a/locale/ro-RO/manage.dtd b/locale/ro/manage.dtd
similarity index 57%
rename from locale/ro-RO/manage.dtd
rename to locale/ro/manage.dtd
index 609c68e..245f414 100644
--- a/locale/ro-RO/manage.dtd
+++ b/locale/ro/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Moficare etichete">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "Done">
-<!ENTITY done.ak "D">
 <!ENTITY filter "Search">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "User Styles">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Visit">
 <!ENTITY nostylesend "for information on how to use Stylish.">
 <!ENTITY sortenabled "Enabled">
 <!ENTITY sortname "Name">
-<!ENTITY sorttag "Tag">
 <!ENTITY sorttype "Type">
-<!ENTITY sortgroup "Sort by:">
-<!ENTITY update "Update">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Write New Style">
 <!ENTITY writenew.ak "W">
diff --git a/locale/ro/manage.properties b/locale/ro/manage.properties
new file mode 100644
index 0000000..d9f6ab0
--- /dev/null
+++ b/locale/ro/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=Afecteaza interfata de utilizator.
+globalstyledescription=Poate afecta totul.
+sitestyledescription=Afecteaza %S.
+manageaddonstitle=Stiluri de utilizator
+installfromurlsprompttitle=Install from URLs
+installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
+installfromurlserror=Could not install from the following URLs: %s.
diff --git a/locale/ro-RO/overlay.dtd b/locale/ro/overlay.dtd
similarity index 64%
rename from locale/ro-RO/overlay.dtd
rename to locale/ro/overlay.dtd
index e19650e..2e5129c 100644
--- a/locale/ro-RO/overlay.dtd
+++ b/locale/ro/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Install file...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Enable">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "Disable">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "Uninstall">
+<!ENTITY cmd.uninstall2.accesskey "U">
 <!ENTITY findstylebrowser "Find styles for this site...">
 <!ENTITY findstylebrowser.ak "F">
 <!ENTITY managestyles "Manage styles...">
diff --git a/locale/ro-RO/overlay.properties b/locale/ro/overlay.properties
similarity index 70%
rename from locale/ro-RO/overlay.properties
rename to locale/ro/overlay.properties
index 7b328e5..cbf17e5 100644
--- a/locale/ro-RO/overlay.properties
+++ b/locale/ro/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S site style(s), %S global style(s)
 tooltipStylesOff=Stylish - Styles are off
 updatestyle=Are you sure you want to update \'%S\'?
diff --git a/locale/ru-RU/common.dtd b/locale/ru-RU/common.dtd
deleted file mode 100644
index 1c4e741..0000000
--- a/locale/ru-RU/common.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY editstyle "Правка">
-<!ENTITY editstyle.ak "П">
-<!ENTITY stylish "Stylish">
diff --git a/locale/ru-RU/common.properties b/locale/ru-RU/common.properties
deleted file mode 100644
index e0e3193..0000000
--- a/locale/ru-RU/common.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-changeTags=Удалить тег \'%S\' и добавить следущие теги:
-changeTagsNoCurrent=Добавить следущие теги:
-changeTagsTitle=Изменить теги
-deleteStyle=Вы уверены, что хотите удалить \'%S\'?
-deleteStyleTitle=Удалить стиль?
-deleteStyleOK=Удалить
-deleteStyles=Вы уверены, что хотите удалить эти %S стили?
-deleteStylesTitle=Удалить стили?
-deleteStylesOK=Удалить
-extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Преобрази интернет вместе со Stylish - менеджером пользовательских стилей.
diff --git a/locale/ru-RU/extensions.dtd b/locale/ru-RU/extensions.dtd
deleted file mode 100644
index 59bbd66..0000000
--- a/locale/ru-RU/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Дополнения">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "630">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Поиск дополнений">
-<!ENTITY extensions.label "Расширения">
-<!ENTITY themes.label "Темы">
-<!ENTITY locales.label "Локализации">
-<!ENTITY plugins.label "Плагины">
-<!ENTITY update.label "Обновления">
-<!ENTITY install.label "Установка">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Найти обновления">
-<!ENTITY cmd.checkUpdatesAll.accesskey "а">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Производит поиск обновлений для ваших дополнений">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Производит поиск обновлений для ваших тем">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Производит поиск обновлений для ваших плагинов">
-<!ENTITY cmd.installLocalFile.label "Установить…">
-<!ENTITY cmd.installLocalFile.accesskey "с">
-<!ENTITY cmd.installFileAddon.tooltip "Установить дополнение">
-<!ENTITY cmd.installFileTheme.tooltip "Установить тему">
-<!ENTITY cmd.installUpdatesAll2.label "Установить обновления">
-<!ENTITY cmd.installUpdatesAll2.accesskey "т">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Установить выбранные обновления">
-<!ENTITY cmd.restartApp2.label "Перезапустить &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "е">
-<!ENTITY cmd.restartApp2.tooltip "Перезапустить &brandShortName; для применения изменений">
-<!ENTITY cmd.skip.label "Пропустить">
-<!ENTITY cmd.skip.accesskey "р">
-<!ENTITY cmd.skip.tooltip "Пропустить эти обновления">
-<!ENTITY cmd.continue.label "Продолжить">
-<!ENTITY cmd.continue.accesskey "о">
-<!ENTITY cmd.continue.tooltip "Продолжить загрузку &brandShortName;">
-<!ENTITY cmd.enableAll.label "Включить все">
-<!ENTITY cmd.enableAll.accesskey "к">
-<!ENTITY cmd.enableAll.tooltip "Включает все показанные дополнения">
-<!ENTITY cmd.disableAll.label "Отключить все">
-<!ENTITY cmd.disableAll.accesskey "ю">
-<!ENTITY cmd.disableAll.tooltip "Отключает все показанные дополнения">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Использовать">
-<!ENTITY cmd.useTheme.accesskey "с">
-<!ENTITY cmd.useTheme.tooltip "Изменяет тему &brandShortName; ">
-<!ENTITY cmd.options.label "Настройки">
-<!ENTITY cmd.options.accesskey "й">
-<!ENTITY cmd.options.tooltip "Изменить настройки выделенного расширения">
-<!ENTITY cmd.optionsUnix.label "Настройки">
-<!ENTITY cmd.optionsUnix.accesskey "й">
-<!ENTITY cmd.optionsUnix.tooltip "Изменить настройки выделенного расширения">
-<!ENTITY cmd.enable.label "Включить">
-<!ENTITY cmd.enable.accesskey "ч">
-<!ENTITY cmd.enable.tooltip "Включает это дополнение после перезапуска &brandShortName;">
-<!ENTITY cmd.disable.label "Отключить">
-<!ENTITY cmd.disable.accesskey "т">
-<!ENTITY cmd.disable.tooltip "Отключает это дополнение после перезапуска &brandShortName;">
-<!ENTITY cmd.uninstall.label "Удалить">
-<!ENTITY cmd.uninstall2.accesskey "д">
-<!ENTITY cmd.uninstall2.tooltip "Удаляет это дополнение после перезапуска &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Отменить удаление">
-<!ENTITY cmd.cancelUninstall.accesskey "м">
-<!ENTITY cmd.cancelUninstall.tooltip "Отменить удаление этого дополнения">
-<!ENTITY cmd.cancelInstall.label "Отменить установку">
-<!ENTITY cmd.cancelInstall.accesskey "н">
-<!ENTITY cmd.cancelInstall.tooltip "Отменить установку этого дополнения">
-<!ENTITY cmd.cancelUpgrade.label "Отменить обновление">
-<!ENTITY cmd.cancelUpgrade.accesskey "н">
-<!ENTITY cmd.cancelUpgrade.tooltip "Отменить обновление этого дополнения">
-<!ENTITY cmd.installUpdate.label "Установить обновление">
-<!ENTITY cmd.installUpdate.accesskey "е">
-<!ENTITY cmd.installUpdate.tooltip "Установить обновление для дополнения">
-<!ENTITY cmd.showUpdateInfo.label "Показать информацию">
-<!ENTITY cmd.showUpdateInfo.accesskey "к">
-<!ENTITY cmd.showUpdateInfo.tooltip "Показать подробную информацию об этих обновлениях">
-<!ENTITY cmd.hideUpdateInfo.label "Скрыть информацию">
-<!ENTITY cmd.hideUpdateInfo.accesskey "т">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Скрыть информацию об этих обновлениях">
-<!ENTITY cmd.installSearchResult.label "Добавить в &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "б">
-<!ENTITY cmd.installSearchResult.tooltip "Загрузить и установить это дополнение">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Отмена">
-<!ENTITY cancel.accesskey "н">
-<!ENTITY cancelInstall.label "Отмена">
-<!ENTITY cancelInstall.accesskey "н">
-<!ENTITY cancelUpgrade.label "Отмена">
-<!ENTITY cancelUpgrade.accesskey "н">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Открыть домашнюю страницу">
-<!ENTITY cmd.homepage.accesskey "д">
-<!ENTITY cmd.about2.label "Об этом дополнении">
-<!ENTITY cmd.about.accesskey "О">
-<!ENTITY cmd.checkUpdate.label "Найти обновление">
-<!ENTITY cmd.checkUpdate.accesskey "т">
-<!ENTITY cmd.includeUpdate.label "Устанавливать обновление">
-<!ENTITY cmd.includeUpdate.accesskey "о">
-<!ENTITY includeUpdate.label "Устанавливать это обновление">
-<!ENTITY includeUpdate.accesskey "о">
-<!ENTITY includeUpdate.tooltip "Обновлять это дополнение при установке обновлений">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Не обеспечивает безопасные обновления.">
-<!ENTITY needsDependencies.label "Требует дополнительных компонентов.">
-<!ENTITY blocklisted.label "Отключено в целях вашей безопасности.">
-<!ENTITY softBlocklisted.label "Вызывает проблемы со стабильностью или безопасностью.">
-<!ENTITY outdated.label "Имеется более новая и безопасная версия.">
-<!ENTITY toBeDisabled.label "Это дополнение будет отключено при перезапуске &brandShortName;.">
-<!ENTITY toBeEnabled.label "Это дополнение будет включено при перезапуске &brandShortName;.">
-<!ENTITY toBeInstalled.label "Это дополнение будет установлено при перезапуске &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Это дополнение будет удалено при перезапуске &brandShortName;.">
-<!ENTITY toBeUpdated.label "Это дополнение будет обновлено при перезапуске &brandShortName;.">
-<!ENTITY getExtensions.label "Загрузить расширения">
-<!ENTITY getThemes.label "Загрузить темы">
-<!ENTITY getPlugins.label "Загрузить плагины">
-<!ENTITY searchAddons.label "Поиск по всем дополнениям">
-<!ENTITY browseAddons.label "Обзор всех дополнений">
-<!ENTITY searchFailed.label "&brandShortName; не смог отыскать дополнения">
-<!ENTITY recommendedHeader.label "Рекомендуемые">
-<!ENTITY recommendedThrobber.label "Получение рекомендуемых дополнений">
-<!ENTITY searchThrobber.label "Идёт поиск дополнений">
-<!ENTITY resetSearch.label "Очистить результаты">
-<!ENTITY noSearchResults.label "Все найденные дополнения уже установлены или несовместимы.">
-<!ENTITY noRecommendedResults.label "Все рекомендуемые дополнения уже установлены или несовместимы.">
-<!ENTITY emptySearch.label "Нет подходящих дополнений">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Отмена">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Узнать больше">
-<!ENTITY searchBox.label "Поиск по всем дополнениям">
-<!ENTITY recommendedResults.label "Просмотреть все рекомендуемые дополнения">
-<!ENTITY searchResultConnecting.label "Идёт соединение…">
-<!ENTITY searchResultInstalling.label "Идёт установка…">
-<!ENTITY searchResultFailed.label "Установка не удалась">
-<!ENTITY searchResultInstalled.label "Установка завершена">
-<!ENTITY addonTypeExtension.label "Расширение">
-<!ENTITY addonTypeTheme.label "Тема">
-<!ENTITY missingThumbnail.label "Нет предпросмотра">
-<!ENTITY previewNoThemeSelected.label "Тема не выбрана">
-<!ENTITY previewNoPreviewImage.label "Для данной темы предварительный просмотр невозможен">
-<!ENTITY moreInfo.label "Подробная информация">
-<!ENTITY infoNoAddonSelected.label "Обновление не выбрано">
-<!ENTITY infoNoUpdateInfo.label "Дополнительная информация об этом обновлении отсутствует">
-<!ENTITY infoUpdateInfoError.label "При загрузке информации об этом обновлении произошла ошибка">
-<!ENTITY updateSuccess.label "Обновление успешно завершено.">
-<!ENTITY installSuccess.label "Установка успешно завершена.">
-<!ENTITY installSuccessRestart.label "Для завершения установки требуется перезапуск.">
-<!ENTITY updateSuccessRestart.label "Для завершения обновления требуется перезапуск.">
-<!ENTITY installWaiting.label "Ожидание…">
-<!ENTITY installIncompatibleUpdate.label "Идёт проверка совместимости…">
-<!ENTITY installFinishing.label "Идёт установка…">
-<!ENTITY installFailure.label "Установка не удалась.">
-<!ENTITY progressStatus.label "Проверяется наличие обновлений">
-<!ENTITY eula.title "Лицензионное соглашение конечного пользователя">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Принять и установить…">
-<!ENTITY blocklist.blocked.label "Заблокировано">
-<!ENTITY blocklist.checkbox.label "Отключить">
diff --git a/locale/ru-RU/manage.dtd b/locale/ru-RU/manage.dtd
deleted file mode 100644
index 541bb49..0000000
--- a/locale/ru-RU/manage.dtd
+++ /dev/null
@@ -1,19 +0,0 @@
-<!ENTITY changetags "Изменить теги">
-<!ENTITY changetags.ak "И">
-<!ENTITY done "Завершено">
-<!ENTITY done.ak "З">
-<!ENTITY filter "Поиск">
-<!ENTITY installfromurls "Установка стилей по URL адресам…">
-<!ENTITY manageaddonstitle "Стили">
-<!ENTITY managetitle "Stylish">
-<!ENTITY nostylesstart "Для информации о том, как использовать Stylish, посетите">
-<!ENTITY nostylesend ".">
-<!ENTITY sortenabled "Состоянию">
-<!ENTITY sortname "Названию">
-<!ENTITY sorttag "Тегу">
-<!ENTITY sorttype "Типу">
-<!ENTITY sortgroup "Упорядочить по:">
-<!ENTITY update "Обновить">
-<!ENTITY update.ak "О">
-<!ENTITY writenew "Создать новый стиль">
-<!ENTITY writenew.ak "С">
diff --git a/locale/ru-RU/manage.properties b/locale/ru-RU/manage.properties
deleted file mode 100644
index a5d0618..0000000
--- a/locale/ru-RU/manage.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-groupEnabledTrue=Активные стили
-groupEnabledFalse=Неактивные стили
-groupTagNone=Нет тегов
-groupTypeApp=Стили пользовательского интерфейса
-groupTypeGlobal=Глобальные стили
-groupTypeNone=Тип отсутствует
-groupTypeSite=Стили веб-сайтов
-styleRegistrationOff=Все стили выключены.
-styleRegistrationTurnOn=Включить стили
-styleRegistrationTurnOn.ak=Т
-updateAvailable=Доступно обновление.
-updateCheckError=При попытке найти обновление возникла ошибка.
-updateCompleted=Обновление завершено.
-updateFailed=Ошибка обновления.
-updateNotFound=Обновление не найдено.
-updateNotPossible=Обновление невозможно.
-appstyledescription=Влияет на пользовательский интерфейс.
-globalstyledescription=Может повлиять нa всё.
-sitestyledescription=Влияет на %S.
-tagstyledescription=Теги: %S.
-manageaddonstitle=Стили
-installfromurlsprompttitle=Установка стилей по URL адресам
-installfromurlsprompt=Введите URL адреса стилей, которые хотите установить. Это могут быть страницы на userstyles.org или CSS файлы. При указании нескольких URL адресов, разделяйте их пробелами.
-installfromurlserror=Не удалось установить стили по следующим URL адресам: %s.
diff --git a/locale/ru-RU/overlay.properties b/locale/ru-RU/overlay.properties
deleted file mode 100644
index 0e9bee1..0000000
--- a/locale/ru-RU/overlay.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-tooltip=Stylish: стилей для сайтa - %S , глобальных стилей - %S.
-tooltipStylesOff=Stylish - Стили отключены
-updatestyle=Вы уверены, что хотите обновить \'%S\'?
-updatestyleok=Обновить
-updatestyletitle=Обновление стиля
-writeblank=Пустой стиль
-writeblankaccesskey=П
-writefordomain=Для %S...
-writeforsite=Для текущего URL...
-writeforsiteaccesskey=U
diff --git a/locale/ru/common.dtd b/locale/ru/common.dtd
new file mode 100644
index 0000000..1337eff
--- /dev/null
+++ b/locale/ru/common.dtd
@@ -0,0 +1,5 @@
+<!ENTITY editstyle "Правка">
+<!ENTITY editstyle.ak "П">
+<!ENTITY reportstyle "Сообщить о неработающем стиле">
+<!ENTITY reportedstyle "Сообщение отправлено.">
+<!ENTITY stylish "Stylish">
diff --git a/locale/ru/common.properties b/locale/ru/common.properties
new file mode 100644
index 0000000..139f0b0
--- /dev/null
+++ b/locale/ru/common.properties
@@ -0,0 +1,4 @@
+deleteStyle=Вы уверены, что хотите удалить \'%S\'?
+deleteStyleTitle=Удалить стиль?
+deleteStyleOK=Удалить
+extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Преобрази интернет вместе со Stylish - менеджером пользовательских стилей.
diff --git a/locale/ru-RU/domi.dtd b/locale/ru/domi.dtd
similarity index 100%
rename from locale/ru-RU/domi.dtd
rename to locale/ru/domi.dtd
diff --git a/locale/ru-RU/edit.dtd b/locale/ru/edit.dtd
similarity index 83%
rename from locale/ru-RU/edit.dtd
rename to locale/ru/edit.dtd
index 5da84de..cf991f1 100644
--- a/locale/ru-RU/edit.dtd
+++ b/locale/ru/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Найти ошибки">
+<!ENTITY checkforerrors.ak "Н">
 <!ENTITY chromefolder "Путь к папке Chrome">
 <!ENTITY chromefolder.ak "П">
 <!ENTITY dataURI "Данные в формате URI...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "П">
 <!ENTITY save "Сохранить">
 <!ENTITY save.ak "С">
-<!ENTITY switchtoinstall "Переключиться к установке">
-<!ENTITY switchtoinstall.ak "у">
-<!ENTITY tags "Теги">
-<!ENTITY tags.ak "Т">
 <!ENTITY wraplines "Перенос строк">
 <!ENTITY wraplines.ak "П">
 <!ENTITY xulnamespace "Пространство имен XUL">
diff --git a/locale/ru-RU/edit.properties b/locale/ru/edit.properties
similarity index 57%
rename from locale/ru-RU/edit.properties
rename to locale/ru/edit.properties
index f1c1cf2..904019a 100644
--- a/locale/ru-RU/edit.properties
+++ b/locale/ru/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Редактирование '%S'
 newstyletitle=Новый стиль
 missingcode=Введите код стиля.
 missingname=Введите название стиля.
-unsavedchanges=Хотите ли Вы сохранить свои изменения для этого стиля?
-unsavedchangestitle=Сохранить изменения?
diff --git a/locale/ru-RU/install.dtd b/locale/ru/install.dtd
similarity index 77%
rename from locale/ru-RU/install.dtd
rename to locale/ru/install.dtd
index 6da48fb..11f52e7 100644
--- a/locale/ru-RU/install.dtd
+++ b/locale/ru/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "У">
 <!ENTITY preview "Предварительный просмотр">
 <!ENTITY preview.ak "П">
-<!ENTITY switchtoedit "Редактировать">
-<!ENTITY switchtoedit.ak "Р">
 <!ENTITY title "Установка нового стиля">
diff --git a/locale/ru-RU/install.properties b/locale/ru/install.properties
similarity index 85%
rename from locale/ru-RU/install.properties
rename to locale/ru/install.properties
index 34e9eb9..2f4f9d9 100644
--- a/locale/ru-RU/install.properties
+++ b/locale/ru/install.properties
@@ -1,8 +1,8 @@
 installintro=Вы собираетесь установить стиль \'%S\' в Stylish.
 installintrononame=Вы собираетесь установить стиль в Stylish.
-installapp=Этот стиль может повлиять на пользовательский интерфейс %S. Чтобы этот стиль вступил в силу, возможно Вам придётся перезапустить %S.
+installapp=Этот стиль может повлиять на пользовательский интерфейс %S. Чтобы этот стиль вступил в силу, возможно вам придётся перезапустить %S.
 installglobal=Этот стиль может повлиять на все веб-сайты.
 installsite=Этот стиль может повлиять на следующие веб-сайты:
 installnotype=Этот стиль может повлиять на веб-сайты и/или на пользовательский интерфейс %S.
 missingname=Назовите этот стиль.
-preview.tooltip=Временно применить этот стиль, чтобы Вы смогли оценить нравится ли он Вам.
+preview.tooltip=Временно применить этот стиль, чтобы вы смогли оценить нравится ли он вам.
diff --git a/locale/ru/manage.dtd b/locale/ru/manage.dtd
new file mode 100644
index 0000000..a0b553f
--- /dev/null
+++ b/locale/ru/manage.dtd
@@ -0,0 +1,10 @@
+<!ENTITY filter "Поиск">
+<!ENTITY installfromurls "Установка стилей по URL адресам…">
+<!ENTITY managetitle "Stylish">
+<!ENTITY nostylesstart "Для информации о том, как использовать Stylish, посетите">
+<!ENTITY nostylesend ".">
+<!ENTITY sortenabled "Состояние">
+<!ENTITY sortname "Название">
+<!ENTITY sorttype "Тип">
+<!ENTITY writenew "Создать новый стиль">
+<!ENTITY writenew.ak "С">
diff --git a/locale/ru/manage.properties b/locale/ru/manage.properties
new file mode 100644
index 0000000..f42375a
--- /dev/null
+++ b/locale/ru/manage.properties
@@ -0,0 +1,7 @@
+appstyledescription=Влияет на пользовательский интерфейс.
+globalstyledescription=Может повлиять нa всё.
+sitestyledescription=Влияет на %S.
+manageaddonstitle=Стили
+installfromurlsprompttitle=Установка стилей по URL адресам
+installfromurlsprompt=Введите URL адреса стилей, которые хотите установить. Это могут быть страницы на userstyles.org или CSS файлы. При указании нескольких URL адресов, разделяйте их пробелами.
+installfromurlserror=Не удалось установить стили по следующим URL адресам: %s.
diff --git a/locale/ru-RU/overlay.dtd b/locale/ru/overlay.dtd
similarity index 57%
rename from locale/ru-RU/overlay.dtd
rename to locale/ru/overlay.dtd
index dea9506..8c327ee 100644
--- a/locale/ru-RU/overlay.dtd
+++ b/locale/ru/overlay.dtd
@@ -1,8 +1,14 @@
 <!ENTITY addfile "Установить файл...">
 <!ENTITY addfile.ak "У">
-<!ENTITY findstylebrowser "Найти стили для текущего сайта...">
+<!ENTITY cmd.enable.label "Включить">
+<!ENTITY cmd.enable.accesskey "ч">
+<!ENTITY cmd.disable.label "Отключить">
+<!ENTITY cmd.disable.accesskey "т">
+<!ENTITY cmd.uninstall.label "Удалить">
+<!ENTITY cmd.uninstall2.accesskey "д">
+<!ENTITY findstylebrowser "Найти стили для текущего сайта">
 <!ENTITY findstylebrowser.ak "Н">
-<!ENTITY managestyles "Управление стилями...">
+<!ENTITY managestyles "Управление стилями">
 <!ENTITY managestyles.ak "с">
 <!ENTITY turnon "Включить все стили">
 <!ENTITY turnon.ak "В">
diff --git a/locale/ru/overlay.properties b/locale/ru/overlay.properties
new file mode 100644
index 0000000..4e2f962
--- /dev/null
+++ b/locale/ru/overlay.properties
@@ -0,0 +1,14 @@
+submenuformatchingsite=Стили для текущей страницы
+submenufornonmatchingsite=Стили для сайта
+submenuforglobal=Глобальные стили
+submenuforapp=Стили приложения
+tooltip=Stylish: стилей для сайтa - %S , глобальных стилей - %S.
+tooltipStylesOff=Stylish: стили отключены
+updatestyle=Вы уверены, что хотите обновить \'%S\'?
+updatestyleok=Обновить
+updatestyletitle=Обновление стиля
+writeblank=Пустой стиль
+writeblankaccesskey=П
+writefordomain=Для %S
+writeforsite=Для текущего URL
+writeforsiteaccesskey=U
diff --git a/locale/sr/common.dtd b/locale/sr/common.dtd
index 1c5c33a..5469e97 100644
--- a/locale/sr/common.dtd
+++ b/locale/sr/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Уреди">
 <!ENTITY editstyle.ak "У">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/sr/common.properties b/locale/sr/common.properties
index 670720d..7a0cdf4 100644
--- a/locale/sr/common.properties
+++ b/locale/sr/common.properties
@@ -1,10 +1,4 @@
-changeTags=Уклони ознаку „%S” и додај следеће:
-changeTagsNoCurrent=Додај следеће ознаке:
-changeTagsTitle=Промени ознаке:
 deleteStyle=Желите ли да деинсталирате „%S”?
 deleteStyleTitle=Деинсталирати стил?
 deleteStyleOK=Деинсталирање
-deleteStyles=Желите ли да деинсталирате ове %S стилове?
-deleteStylesTitle=Деинсталирати стилове?
-deleteStylesOK=Деинсталирање
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Измените Интернет користећи Stylish, кориснички управљач стиловима.
diff --git a/locale/sr/edit.dtd b/locale/sr/edit.dtd
index 41e28e1..5b687a6 100644
--- a/locale/sr/edit.dtd
+++ b/locale/sr/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Путања фасцикле Chrome">
 <!ENTITY chromefolder.ak "Ф">
 <!ENTITY dataURI "URI података...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "П">
 <!ENTITY save "Сачувај">
 <!ENTITY save.ak "С">
-<!ENTITY switchtoinstall "Пребаци на инсталирање">
-<!ENTITY switchtoinstall.ak "И">
-<!ENTITY tags "Ознаке">
-<!ENTITY tags.ak "З">
 <!ENTITY wraplines "Преламање текста">
 <!ENTITY wraplines.ak "Т">
 <!ENTITY xulnamespace "XUL именски простор као подразумевани">
diff --git a/locale/sr/edit.properties b/locale/sr/edit.properties
index d0fb73e..2b0f574 100644
--- a/locale/sr/edit.properties
+++ b/locale/sr/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Уређивање „%S”
 newstyletitle=Нови стил
 missingcode=Унесите кôд за овај стил.
 missingname=Доделите назив овом стилу.
-unsavedchanges=Желите ли да сачувате промене у овом стилу?
-unsavedchangestitle=Сачувати промене?
diff --git a/locale/sr/extensions.dtd b/locale/sr/extensions.dtd
deleted file mode 100644
index c4d135b..0000000
--- a/locale/sr/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Додаци">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "и">
-<!ENTITY cmd.options.commandKey "о">
-<!ENTITY cmd.close.commandKey "з">
-<!-- View labels -->
-<!ENTITY search.label "Набави додатке">
-<!ENTITY extensions.label "Проширења">
-<!ENTITY themes.label "Теме">
-<!ENTITY locales.label "Језици">
-<!ENTITY plugins.label "Прикључци">
-<!ENTITY update.label "Доградње">
-<!ENTITY install.label "Инсталација">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Пронађи доградње">
-<!ENTITY cmd.checkUpdatesAll.accesskey "Д">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Пронађите доградње за своје додатке">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Пронађите доградње за своје теме">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Пронађите доградње за своје прикључке">
-<!ENTITY cmd.installLocalFile.label "Инсталирај…">
-<!ENTITY cmd.installLocalFile.accesskey "н">
-<!ENTITY cmd.installFileAddon.tooltip "Инсталирај додатак">
-<!ENTITY cmd.installFileTheme.tooltip "Инсталирај тему">
-<!ENTITY cmd.installUpdatesAll2.label "Инсталирај доградњу">
-<!ENTITY cmd.installUpdatesAll2.accesskey "о">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Инсталирај изабрање доградње">
-<!ENTITY cmd.restartApp2.label "Поново покрени &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "П">
-<!ENTITY cmd.restartApp2.tooltip "Поново покрените &brandShortName; да би измене биле примењене">
-<!ENTITY cmd.skip.label "Прескочи">
-<!ENTITY cmd.skip.accesskey "п">
-<!ENTITY cmd.skip.tooltip "Прескочи ове доградње">
-<!ENTITY cmd.continue.label "Настави">
-<!ENTITY cmd.continue.accesskey "Н">
-<!ENTITY cmd.continue.tooltip "Настави са учитавањем програма &brandShortName;">
-<!ENTITY cmd.enableAll.label "Омогући ово">
-<!ENTITY cmd.enableAll.accesskey "м">
-<!ENTITY cmd.enableAll.tooltip "Омогући све приказане додатке">
-<!ENTITY cmd.disableAll.label "Онемогући све">
-<!ENTITY cmd.disableAll.accesskey "н">
-<!ENTITY cmd.disableAll.tooltip "Онемогући све приказане додатке">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Користи тему">
-<!ENTITY cmd.useTheme.accesskey "т">
-<!ENTITY cmd.useTheme.tooltip "Мењање теме &brandShortName;а">
-<!ENTITY cmd.options.label "Опције">
-<!ENTITY cmd.options.accesskey "О">
-<!ENTITY cmd.options.tooltip "Подесите опције изабраног додатка">
-<!ENTITY cmd.optionsUnix.label "Подешавања">
-<!ENTITY cmd.optionsUnix.accesskey "П">
-<!ENTITY cmd.optionsUnix.tooltip "Уређивање подешавања изабраног додатка">
-<!ENTITY cmd.enable.label "Омогући">
-<!ENTITY cmd.enable.accesskey "О">
-<!ENTITY cmd.enable.tooltip "Омогућава овај додатак након поновног покретања &brandShortName;а">
-<!ENTITY cmd.disable.label "Онемогући">
-<!ENTITY cmd.disable.accesskey "н">
-<!ENTITY cmd.disable.tooltip "Онемогућава овај додатак након поновног покретања &brandShortName;а">
-<!ENTITY cmd.uninstall.label "Уклони">
-<!ENTITY cmd.uninstall2.accesskey "У">
-<!ENTITY cmd.uninstall2.tooltip "Уклања овај додатак након поновног покретања &brandShortName;а">
-<!ENTITY cmd.cancelUninstall.label "Откажи уклањање">
-<!ENTITY cmd.cancelUninstall.accesskey "О">
-<!ENTITY cmd.cancelUninstall.tooltip "Отказивање уклањања овог додатка">
-<!ENTITY cmd.cancelInstall.label "Откажи инсталирање">
-<!ENTITY cmd.cancelInstall.accesskey "И">
-<!ENTITY cmd.cancelInstall.tooltip "Откажи инсталирање овог додатка">
-<!ENTITY cmd.cancelUpgrade.label "Откажи дограђивање">
-<!ENTITY cmd.cancelUpgrade.accesskey "А">
-<!ENTITY cmd.cancelUpgrade.tooltip "Откажи дограђивање овог додатка">
-<!ENTITY cmd.installUpdate.label "Инсталирај доградњу">
-<!ENTITY cmd.installUpdate.accesskey "Д">
-<!ENTITY cmd.installUpdate.tooltip "Инсталирај доградњу додатка">
-<!ENTITY cmd.showUpdateInfo.label "Прикажи информације">
-<!ENTITY cmd.showUpdateInfo.accesskey "и">
-<!ENTITY cmd.showUpdateInfo.tooltip "Више информација о овим доградњама">
-<!ENTITY cmd.hideUpdateInfo.label "Сакриј информације">
-<!ENTITY cmd.hideUpdateInfo.accesskey "С">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Више информације о овим доградњама">
-<!ENTITY cmd.installSearchResult.label "Додај у &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "И">
-<!ENTITY cmd.installSearchResult.tooltip "Преузми и инсталирај овај додатак">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Откажи">
-<!ENTITY cancel.accesskey "О">
-<!ENTITY cancelInstall.label "Откажи">
-<!ENTITY cancelInstall.accesskey "О">
-<!ENTITY cancelUpgrade.label "Откажи">
-<!ENTITY cancelUpgrade.accesskey "О">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Матична страница">
-<!ENTITY cmd.homepage.accesskey "М">
-<!ENTITY cmd.about2.label "О додатку">
-<!ENTITY cmd.about.accesskey "О">
-<!ENTITY cmd.checkUpdate.label "Пронађи доградње">
-<!ENTITY cmd.checkUpdate.accesskey "д">
-<!ENTITY cmd.includeUpdate.label "Укључи доградњу">
-<!ENTITY cmd.includeUpdate.accesskey "у">
-<!ENTITY includeUpdate.label "Укључи ову доградњу">
-<!ENTITY includeUpdate.accesskey "у">
-<!ENTITY includeUpdate.tooltip "Укључи овај додатак приликом инсталирања доградњи">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Не пружа безбедносне доградње.">
-<!ENTITY needsDependencies.label "Захтева додатке ставке.">
-<!ENTITY blocklisted.label "Онемогућено ради ваше заштите.">
-<!ENTITY softBlocklisted.label "Познато да проузрокује проблеме за безбедношћу или стабилношћу.">
-<!ENTITY outdated.label "Новија и безбеднија доградња је доступна.">
-<!ENTITY toBeDisabled.label "Овај додатак ће бити онемогућен након што се &brandShortName; поново покрене.">
-<!ENTITY toBeEnabled.label "Овај додатак ће бити омогућен након што се &brandShortName; поново покрене.">
-<!ENTITY toBeInstalled.label "Овај додатак ће бити постављен након што се &brandShortName; поново покрене.">
-<!ENTITY toBeUninstalled.label "Овај додатак ће бити уклоњен након што се &brandShortName; поново покрене.">
-<!ENTITY toBeUpdated.label "Овај додатак ће бити дограђен након што се &brandShortName; поново покрене.">
-<!ENTITY getExtensions.label "Набави додатке">
-<!ENTITY getThemes.label "Набави теме">
-<!ENTITY getPlugins.label "Набави прикључке">
-<!ENTITY searchAddons.label "Претражи све додатке">
-<!ENTITY browseAddons.label "Погледај све додатке">
-<!ENTITY searchFailed.label "&brandShortName; не може да открије додатке">
-<!ENTITY recommendedHeader.label "Препоручени">
-<!ENTITY recommendedThrobber.label "Откривање препоручених додатака">
-<!ENTITY searchThrobber.label "Претраживање додатака">
-<!ENTITY resetSearch.label "Очисти резултате">
-<!ENTITY noSearchResults.label "Сви резултати су већ постављени или неусклађени.">
-<!ENTITY noRecommendedResults.label "Сви препоручени су већ постављени или неусклађени.">
-<!ENTITY emptySearch.label "Нема додатака">
-<!ENTITY emptySearch.button "У реду">
-<!ENTITY cancelSearch.button "Откажи">
-<!ENTITY searchFailed.button "У реду">
-<!ENTITY searchResultHomepage.value "Сазнај више">
-<!ENTITY searchBox.label "Претражи све додатке">
-<!ENTITY recommendedResults.label "Погледај све препоручене додатке">
-<!ENTITY searchResultConnecting.label "Повезивање…">
-<!ENTITY searchResultInstalling.label "Постављање…">
-<!ENTITY searchResultFailed.label "Постављање није успело…">
-<!ENTITY searchResultInstalled.label "Постављање је завршено">
-<!ENTITY addonTypeExtension.label "Додатак">
-<!ENTITY addonTypeTheme.label "Тема">
-<!ENTITY missingThumbnail.label "Нема прегледа">
-<!ENTITY previewNoThemeSelected.label "Није изабрана тема">
-<!ENTITY previewNoPreviewImage.label "Ова тема нема слику за преглед">
-<!ENTITY moreInfo.label "Више информација">
-<!ENTITY infoNoAddonSelected.label "Није изабрана доградња">
-<!ENTITY infoNoUpdateInfo.label "Ова доградња не садржи додане информације">
-<!ENTITY infoUpdateInfoError.label "Дошло је до грешке приликом учитавања информација о овој доградњи">
-<!ENTITY updateSuccess.label "Дограђивање је успешно завршено.">
-<!ENTITY installSuccess.label "Постављање је успешно завршено.">
-<!ENTITY installSuccessRestart.label "Поново покрените да бисте довршили постављање.">
-<!ENTITY updateSuccessRestart.label "Поново покрените да бисте довршили дограђивање.">
-<!ENTITY installWaiting.label "Сачекајте…">
-<!ENTITY installIncompatibleUpdate.label "Проверавање усклађености…">
-<!ENTITY installFinishing.label "Инсталирање…">
-<!ENTITY installFailure.label "Инсталирање није успело.">
-<!ENTITY progressStatus.label "Проверавање доградњи">
-<!ENTITY eula.title "Уговор о лиценцирању са крајњим корисником">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Прихватам - инсталирај…">
-<!ENTITY blocklist.blocked.label "Блокирано">
-<!ENTITY blocklist.checkbox.label "Онемогућено">
diff --git a/locale/sr/install.dtd b/locale/sr/install.dtd
index 7929be8..eaeeb43 100644
--- a/locale/sr/install.dtd
+++ b/locale/sr/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "И">
 <!ENTITY preview "Преглед">
 <!ENTITY preview.ak "П">
-<!ENTITY switchtoedit "Пребаци на уређивање">
-<!ENTITY switchtoedit.ak "У">
 <!ENTITY title "Инсталирај кориснички стил">
diff --git a/locale/sr/manage.dtd b/locale/sr/manage.dtd
index 774c86e..3582681 100644
--- a/locale/sr/manage.dtd
+++ b/locale/sr/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Примени ознаке">
-<!ENTITY changetags.ak "О">
-<!ENTITY done "Готово">
-<!ENTITY done.ak "Г">
 <!ENTITY filter "Претражи">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Кориснички стилови">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Посетите">
 <!ENTITY nostylesend "да бисте добили више информација о коришћењу додатка Stylish.">
 <!ENTITY sortenabled "Омогућен">
 <!ENTITY sortname "Назив">
-<!ENTITY sorttag "Ознака">
 <!ENTITY sorttype "Тип">
-<!ENTITY sortgroup "Поређај по:">
-<!ENTITY update "Ажурирано">
-<!ENTITY update.ak "А">
 <!ENTITY writenew "Упиши нов стил">
 <!ENTITY writenew.ak "Н">
diff --git a/locale/sr/manage.properties b/locale/sr/manage.properties
index 442eaaf..76f075f 100644
--- a/locale/sr/manage.properties
+++ b/locale/sr/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Омогућено
-groupEnabledFalse=Онемогућено
-groupTagNone=Нема ознака
-groupTypeApp=Апликација
-groupTypeGlobal=Глобално
-groupTypeNone=Нема типа
-groupTypeSite=Страница
-styleRegistrationOff=Сви стилови су искључени.
-styleRegistrationTurnOn=Укључи стилове
-styleRegistrationTurnOn.ak=У
-updateAvailable=Доступна је доградња.
-updateCheckError=Дошло је до грешке приликом проверавања доступних доградњи.
-updateCompleted=Ажурирање је завршено.
-updateFailed=Ажурирање није успело.
-updateNotFound=Нема доступних доградњи.
-updateNotPossible=Ажурирање није могуће.
 appstyledescription=Утиче на корисничко сучеље.
 globalstyledescription=Може да утиче на било шта.
 sitestyledescription=Утиче на %S.
-tagstyledescription=Ознаке: %S.
 manageaddonstitle=Кориснички стилови
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/sr/overlay.dtd b/locale/sr/overlay.dtd
index 3dfde50..6b7192a 100644
--- a/locale/sr/overlay.dtd
+++ b/locale/sr/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Инсталирај датотеку...">
 <!ENTITY addfile.ak "Д">
+<!ENTITY cmd.enable.label "Омогући">
+<!ENTITY cmd.enable.accesskey "О">
+<!ENTITY cmd.disable.label "Онемогући">
+<!ENTITY cmd.disable.accesskey "н">
+<!ENTITY cmd.uninstall.label "Уклони">
+<!ENTITY cmd.uninstall2.accesskey "У">
 <!ENTITY findstylebrowser "Нађи стилове за ову страницу...">
 <!ENTITY findstylebrowser.ak "Н">
 <!ENTITY managestyles "Управљање стиловима...">
diff --git a/locale/sr/overlay.properties b/locale/sr/overlay.properties
index 5b40a20..287c900 100644
--- a/locale/sr/overlay.properties
+++ b/locale/sr/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S стилова страница, %S глобалних стилова
 tooltipStylesOff=Stylish - стилови су искључени
 updatestyle=Желите ли да ажурирате „%S”?
diff --git a/locale/sv-SE/common.dtd b/locale/sv-SE/common.dtd
index 4de1f7d..bdd171c 100644
--- a/locale/sv-SE/common.dtd
+++ b/locale/sv-SE/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Redigera">
 <!ENTITY editstyle.ak "R">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/sv-SE/common.properties b/locale/sv-SE/common.properties
index bd96271..3b951b8 100644
--- a/locale/sv-SE/common.properties
+++ b/locale/sv-SE/common.properties
@@ -1,10 +1,4 @@
-changeTags=Ta bort taggen '%S' och lägg till följande taggar:
-changeTagsNoCurrent=Lägg till följande taggar:
-changeTagsTitle=Byt taggar
 deleteStyle=Är du säker på att du vill avinstallera "%S"?
 deleteStyleTitle=Avinstallera denna style?
 deleteStyleOK=Avinstallera
-deleteStyles=Är du säker på att du vill avinstallera dessa %S styles?
-deleteStylesTitle=Avinstallera styles?
-deleteStylesOK=Avinstallera
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Styla om webben med Stylish, en userstyles-hanterare.
diff --git a/locale/sv-SE/edit.dtd b/locale/sv-SE/edit.dtd
index df28e11..64a9afa 100644
--- a/locale/sv-SE/edit.dtd
+++ b/locale/sv-SE/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome-mappens sökväg">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "Data URI…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "F">
 <!ENTITY save "Spara">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "Växla till Installation">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "Taggar">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Radbrytning">
 <!ENTITY wraplines.ak "R">
 <!ENTITY xulnamespace "XUL-namnrymd som standard">
diff --git a/locale/sv-SE/edit.properties b/locale/sv-SE/edit.properties
index afa51df..3d623ce 100644
--- a/locale/sv-SE/edit.properties
+++ b/locale/sv-SE/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Redigerar "%S"
 newstyletitle=Ny style
 missingcode=Skriv lite kod för denna style.
 missingname=Ge denna style ett namn.
-unsavedchanges=Vill du spara dina ändringar av denna style?
-unsavedchangestitle=Spara ändringar?
diff --git a/locale/sv-SE/extensions.dtd b/locale/sv-SE/extensions.dtd
deleted file mode 100644
index 1ca6f5c..0000000
--- a/locale/sv-SE/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Tillägg">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Hämta tillägg">
-<!ENTITY extensions.label "Tillägg">
-<!ENTITY themes.label "Teman">
-<!ENTITY locales.label "Språk">
-<!ENTITY plugins.label "Insticksmoduler">
-<!ENTITY update.label "Uppdateringar">
-<!ENTITY install.label "Installering">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Sök efter uppdateringar">
-<!ENTITY cmd.checkUpdatesAll.accesskey "S">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Söker efter uppdateringar till dina tillägg">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Söker efter uppdateringar till dina teman">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Söker efter uppdateringar till dina insticksmoduler">
-<!ENTITY cmd.installLocalFile.label "Installera…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "Installera ett tillägg">
-<!ENTITY cmd.installFileTheme.tooltip "Installera ett tema">
-<!ENTITY cmd.installUpdatesAll2.label "Installera uppdateringar">
-<!ENTITY cmd.installUpdatesAll2.accesskey "u">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Installera de valda uppdateringarna">
-<!ENTITY cmd.restartApp2.label "Starta om &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "o">
-<!ENTITY cmd.restartApp2.tooltip "Starta om &brandShortName; för att verkställa ändringarna">
-<!ENTITY cmd.skip.label "Hoppa över">
-<!ENTITY cmd.skip.accesskey "H">
-<!ENTITY cmd.skip.tooltip "Hoppa över dessa uppdateringar">
-<!ENTITY cmd.continue.label "Fortsätt">
-<!ENTITY cmd.continue.accesskey "F">
-<!ENTITY cmd.continue.tooltip "Fortsätt starten av &brandShortName;">
-<!ENTITY cmd.enableAll.label "Aktivera alla">
-<!ENTITY cmd.enableAll.accesskey "A">
-<!ENTITY cmd.enableAll.tooltip "Aktiverar alla visade tillägg">
-<!ENTITY cmd.disableAll.label "Inaktivera alla">
-<!ENTITY cmd.disableAll.accesskey "v">
-<!ENTITY cmd.disableAll.tooltip "Inaktiverar alla visade tillägg">
-<!-- Displayed in the selected Add-on's richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Använd tema">
-<!ENTITY cmd.useTheme.accesskey "t">
-<!ENTITY cmd.useTheme.tooltip "Ändrar temat för &brandShortName;">
-<!ENTITY cmd.options.label "Inställningar">
-<!ENTITY cmd.options.accesskey "ä">
-<!ENTITY cmd.options.tooltip "Redigera inställningarna för det markerade tillägget">
-<!ENTITY cmd.optionsUnix.label "Inställningar">
-<!ENTITY cmd.optionsUnix.accesskey "ä">
-<!ENTITY cmd.optionsUnix.tooltip "Redigera inställningarna för det markerade tillägget">
-<!ENTITY cmd.enable.label "Aktivera">
-<!ENTITY cmd.enable.accesskey "k">
-<!ENTITY cmd.enable.tooltip "Aktiverar det här tillägget när &brandShortName; startas om">
-<!ENTITY cmd.disable.label "Inaktivera">
-<!ENTITY cmd.disable.accesskey "k">
-<!ENTITY cmd.disable.tooltip "Inaktiverar det här tillägget när &brandShortName; startas om">
-<!ENTITY cmd.uninstall.label "Avinstallera">
-<!ENTITY cmd.uninstall2.accesskey "A">
-<!ENTITY cmd.uninstall2.tooltip "Avinstallerar det här tillägget när &brandShortName; startas om">
-<!ENTITY cmd.cancelUninstall.label "Avbryt avinstallationen">
-<!ENTITY cmd.cancelUninstall.accesskey "b">
-<!ENTITY cmd.cancelUninstall.tooltip "Avbryter avinstallationen av det här tillägget">
-<!ENTITY cmd.cancelInstall.label "Avbryt installationen">
-<!ENTITY cmd.cancelInstall.accesskey "b">
-<!ENTITY cmd.cancelInstall.tooltip "Avbryt installationen av det här tillägget">
-<!ENTITY cmd.cancelUpgrade.label "Avbryt uppdateringen">
-<!ENTITY cmd.cancelUpgrade.accesskey "b">
-<!ENTITY cmd.cancelUpgrade.tooltip "Avbryt uppdateringen av det här tillägget">
-<!ENTITY cmd.installUpdate.label "Installera uppdateringen">
-<!ENTITY cmd.installUpdate.accesskey "u">
-<!ENTITY cmd.installUpdate.tooltip "Installerar en uppdatering för det här tillägget">
-<!ENTITY cmd.showUpdateInfo.label "Visa information">
-<!ENTITY cmd.showUpdateInfo.accesskey "V">
-<!ENTITY cmd.showUpdateInfo.tooltip "Visa mer information om dessa uppdateringar">
-<!ENTITY cmd.hideUpdateInfo.label "Dölj information">
-<!ENTITY cmd.hideUpdateInfo.accesskey "D">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Dölj information om dessa uppdateringar">
-<!ENTITY cmd.installSearchResult.label "Lägg till i &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "L">
-<!ENTITY cmd.installSearchResult.tooltip "Hämta och installera detta tillägg">
-<!-- The selected add-on's cancel action button label -->
-<!ENTITY cancel.label "Avbryt">
-<!ENTITY cancel.accesskey "b">
-<!ENTITY cancelInstall.label "Avbryt">
-<!ENTITY cancelInstall.accesskey "b">
-<!ENTITY cancelUpgrade.label "Avbryt">
-<!ENTITY cancelUpgrade.accesskey "b">
-<!-- Only displayed in the selected Add-on's context menu -->
-<!ENTITY cmd.homepage.label "Besök webbplats">
-<!ENTITY cmd.homepage.accesskey "w">
-<!ENTITY cmd.about2.label "Om det här tillägget">
-<!ENTITY cmd.about.accesskey "O">
-<!ENTITY cmd.checkUpdate.label "Sök efter uppdatering">
-<!ENTITY cmd.checkUpdate.accesskey "S">
-<!ENTITY cmd.includeUpdate.label "Inkludera uppdateringen">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "Inkludera den här uppdateringen">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "Inkluderar det här tillägget vid installation av uppdateringar">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Tillhandahåller inga säkra uppdateringar.">
-<!ENTITY needsDependencies.label "Kräver ytterligare poster.">
-<!ENTITY blocklisted.label "Inaktiverad av säkerhetsskäl.">
-<!ENTITY softBlocklisted.label "Känd för att orsaka säkerhets- eller stabilitetsproblem.">
-<!ENTITY outdated.label "En ny och bättre version finns tillgänglig.">
-<!ENTITY toBeDisabled.label "Detta tillägg kommer att inaktiveras när &brandShortName; startas om.">
-<!ENTITY toBeEnabled.label "Detta tillägg kommer att aktiveras när &brandShortName; startas om.">
-<!ENTITY toBeInstalled.label "Detta tillägg kommer att installeras när &brandShortName; startas om.">
-<!ENTITY toBeUninstalled.label "Detta tillägg kommer att avinstalleras när &brandShortName; startas om.">
-<!ENTITY toBeUpdated.label "Detta tillägg kommer att uppdateras när &brandShortName; startas om.">
-<!ENTITY getExtensions.label "Hämta tillägg">
-<!ENTITY getThemes.label "Hämta teman">
-<!ENTITY getPlugins.label "Hämta insticksmoduler">
-<!ENTITY searchAddons.label "Sök bland alla tillägg">
-<!ENTITY browseAddons.label "Bläddra bland alla tillägg">
-<!ENTITY searchFailed.label "&brandShortName; kunde inte hämta tillägg">
-<!ENTITY recommendedHeader.label "Rekommenderade">
-<!ENTITY recommendedThrobber.label "Hämtar rekommenderade tillägg">
-<!ENTITY searchThrobber.label "Söker bland tillägg">
-<!ENTITY resetSearch.label "Rensa resultat">
-<!ENTITY noSearchResults.label "Alla resultat finns redan installerade eller är inkompatibla.">
-<!ENTITY noRecommendedResults.label "Alla rekommendationer finns redan installerade eller är inkompatibla.">
-<!ENTITY emptySearch.label "Inga matchande tillägg">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Avbryt">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Mer information">
-<!ENTITY searchBox.label "Sök bland alla tillägg">
-<!ENTITY recommendedResults.label "Se alla rekommenderade tillägg">
-<!ENTITY searchResultConnecting.label "Ansluter…">
-<!ENTITY searchResultInstalling.label "Installerar…">
-<!ENTITY searchResultFailed.label "Installation misslyckades">
-<!ENTITY searchResultInstalled.label "Installation slutförd">
-<!ENTITY addonTypeExtension.label "Tillägg">
-<!ENTITY addonTypeTheme.label "Tema">
-<!ENTITY missingThumbnail.label "Ingen förhandsgranskning">
-<!ENTITY previewNoThemeSelected.label "Inget tema är valt">
-<!ENTITY previewNoPreviewImage.label "Det här temat har ingen förhandsbild">
-<!ENTITY moreInfo.label "Mer information">
-<!ENTITY infoNoAddonSelected.label "Ingen uppdatering vald">
-<!ENTITY infoNoUpdateInfo.label "Det finns ingen ytterligare information om den här uppdateringen">
-<!ENTITY infoUpdateInfoError.label "Ett fel uppstod vid hämtning av information om den här uppdateringen">
-<!ENTITY updateSuccess.label "Uppdateringen är slutförd.">
-<!ENTITY installSuccess.label "Installationen är slutförd.">
-<!ENTITY installSuccessRestart.label "Starta om för att slutföra installationen.">
-<!ENTITY updateSuccessRestart.label "Starta om för att slutföra uppdateringen.">
-<!ENTITY installWaiting.label "Väntar…">
-<!ENTITY installIncompatibleUpdate.label "Kontrollerar kompatibilitet…">
-<!ENTITY installFinishing.label "Installerar…">
-<!ENTITY installFailure.label "Installationen misslyckades.">
-<!ENTITY progressStatus.label "Söker efter uppdateringar">
-<!ENTITY eula.title "Licensavtal för slutanvändare">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Acceptera och installera…">
-<!ENTITY blocklist.blocked.label "Blockerad">
-<!ENTITY blocklist.checkbox.label "Inaktiverad">
diff --git a/locale/sv-SE/install.dtd b/locale/sv-SE/install.dtd
index 0a3e4ba..99599c8 100644
--- a/locale/sv-SE/install.dtd
+++ b/locale/sv-SE/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "Förhandsgranska">
 <!ENTITY preview.ak "F">
-<!ENTITY switchtoedit "Växla till Redigering">
-<!ENTITY switchtoedit.ak "R">
 <!ENTITY title "Installera style">
diff --git a/locale/sv-SE/manage.dtd b/locale/sv-SE/manage.dtd
index feb0cd7..d11d465 100644
--- a/locale/sv-SE/manage.dtd
+++ b/locale/sv-SE/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Byt taggar">
-<!ENTITY changetags.ak "B">
-<!ENTITY done "Klar">
-<!ENTITY done.ak "K">
 <!ENTITY filter "Sök">
 <!ENTITY installfromurls "Installera från URL:er…">
-<!ENTITY manageaddonstitle "Userstyles">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Gå till">
 <!ENTITY nostylesend "för information om hur du använder Stylish.">
 <!ENTITY sortenabled "Aktiverad">
 <!ENTITY sortname "Namn">
-<!ENTITY sorttag "Tagg">
 <!ENTITY sorttype "Typ">
-<!ENTITY sortgroup "Sortera efter:">
-<!ENTITY update "Uppdatera">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "Skriv ny style">
 <!ENTITY writenew.ak "n">
diff --git a/locale/sv-SE/manage.properties b/locale/sv-SE/manage.properties
index a14af1d..d75b270 100644
--- a/locale/sv-SE/manage.properties
+++ b/locale/sv-SE/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Aktiverad
-groupEnabledFalse=Inaktiverad
-groupTagNone=Inga taggar
-groupTypeApp=Applikation
-groupTypeGlobal=Global
-groupTypeNone=Ingen typ
-groupTypeSite=Webbplats
-styleRegistrationOff=Alla styles är avstängda.
-styleRegistrationTurnOn=Sätt på alla styles
-styleRegistrationTurnOn.ak=S
-updateAvailable=En uppdatering är tillgänglig.
-updateCheckError=Ett fel uppstod vid sökandet efter uppdateringar.
-updateCompleted=Uppdatering fullbordad.
-updateFailed=Uppdatering misslyckad.
-updateNotFound=Inga uppdateringar hittades.
-updateNotPossible=Uppdateringar inte möjliga.
 appstyledescription=Påverkar användargränssnittet.
 globalstyledescription=Kan påverka vadsomhelst.
 sitestyledescription=Påverkar %S.
-tagstyledescription=Taggar: %S.
 manageaddonstitle=Userstyles
 installfromurlsprompttitle=Installera från URL:er
 installfromurlsprompt=Ange URL:er till userstyles att installera. Dessa kan vara sidor på userstyles.org eller CSS-filer. Separera URL:erna med mellanslag.
diff --git a/locale/sv-SE/overlay.dtd b/locale/sv-SE/overlay.dtd
index 4314246..0c340bb 100644
--- a/locale/sv-SE/overlay.dtd
+++ b/locale/sv-SE/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Installera fil…">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "Aktivera">
+<!ENTITY cmd.enable.accesskey "k">
+<!ENTITY cmd.disable.label "Inaktivera">
+<!ENTITY cmd.disable.accesskey "k">
+<!ENTITY cmd.uninstall.label "Avinstallera">
+<!ENTITY cmd.uninstall2.accesskey "A">
 <!ENTITY findstylebrowser "Hitta styles för denna webbplats…">
 <!ENTITY findstylebrowser.ak "W">
 <!ENTITY managestyles "Hantera styles…">
diff --git a/locale/sv-SE/overlay.properties b/locale/sv-SE/overlay.properties
index fb16b5a..ded86a3 100644
--- a/locale/sv-SE/overlay.properties
+++ b/locale/sv-SE/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S webbplats-style(s), %S global(a) style(s)
 tooltipStylesOff=Stylish - Alla styles avstängda
 updatestyle=Är du säker på att du vill uppdatera "%S"?
diff --git a/locale/uk/common.dtd b/locale/uk/common.dtd
index 1df96ae..f3d340c 100644
--- a/locale/uk/common.dtd
+++ b/locale/uk/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Редагувати">
 <!ENTITY editstyle.ak "Р">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/uk/common.properties b/locale/uk/common.properties
index 6489cb7..b0653be 100644
--- a/locale/uk/common.properties
+++ b/locale/uk/common.properties
@@ -1,10 +1,4 @@
-changeTags=Вилучити мітку „%S“ та додати наступні мітки:
-changeTagsNoCurrent=Додати наступні мітки:
-changeTagsTitle=Змінити мітки
 deleteStyle=Ви певні що хочете вилучити \'%S\'?
 deleteStyleTitle=Вилучити стиль?
 deleteStyleOK=Вилучити
-deleteStyles=Ви впевнені що хочете вилучити ці %S стилів?
-deleteStylesTitle=Вилучити стилі?
-deleteStylesOK=Вилучити
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Вдягніть мережу на свій смак з допомогою Stylish’а, керівника стилями.
diff --git a/locale/uk/edit.dtd b/locale/uk/edit.dtd
index 5ed0231..3762633 100644
--- a/locale/uk/edit.dtd
+++ b/locale/uk/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Шлях до теки Chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI…">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "П">
 <!ENTITY save "Зберегти">
 <!ENTITY save.ak "З">
-<!ENTITY switchtoinstall "Перемкніть щоб встановити">
-<!ENTITY switchtoinstall.ak "П">
-<!ENTITY tags "Мітки">
-<!ENTITY tags.ak "М">
 <!ENTITY wraplines "Переноси для довгих рядків">
 <!ENTITY wraplines.ak "П">
 <!ENTITY xulnamespace "Простір імен XUL">
diff --git a/locale/uk/edit.properties b/locale/uk/edit.properties
index 1bfecb6..f2b318b 100644
--- a/locale/uk/edit.properties
+++ b/locale/uk/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Редагування \'%S\'
 newstyletitle=Новий стиль
 missingcode=Введіть якийсь код для цього стиля.
 missingname=Дайте стилю назву.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/uk/extensions.dtd b/locale/uk/extensions.dtd
deleted file mode 100644
index 00d3209..0000000
--- a/locale/uk/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Додатки">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Додати ще">
-<!ENTITY extensions.label "Розширення">
-<!ENTITY themes.label "Теми">
-<!ENTITY locales.label "Локалізації">
-<!ENTITY plugins.label "Модулі">
-<!ENTITY update.label "Оновлення">
-<!ENTITY install.label "Встановлення">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Знайти оновлення">
-<!ENTITY cmd.checkUpdatesAll.accesskey "З">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Шукає оновлення для ваших додатків">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Шукає оновлення для ваших тем">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Шукає оновлення для ваших модулів">
-<!ENTITY cmd.installLocalFile.label "Встановити…">
-<!ENTITY cmd.installLocalFile.accesskey "о">
-<!ENTITY cmd.installFileAddon.tooltip "Встановити додаток">
-<!ENTITY cmd.installFileTheme.tooltip "Встановити тему">
-<!ENTITY cmd.installUpdatesAll2.label "Встановити оновлення">
-<!ENTITY cmd.installUpdatesAll2.accesskey "В">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Встановити вибрані оновлення">
-<!ENTITY cmd.restartApp2.label "Перезапустити &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "П">
-<!ENTITY cmd.restartApp2.tooltip "Перезапустити &brandShortName; щоб застосувати зміни">
-<!ENTITY cmd.skip.label "Пропустити">
-<!ENTITY cmd.skip.accesskey "о">
-<!ENTITY cmd.skip.tooltip "Пропустити ці оновлення">
-<!ENTITY cmd.continue.label "Продовжити">
-<!ENTITY cmd.continue.accesskey "р">
-<!ENTITY cmd.continue.tooltip "Продовжити завантаження &brandShortName;">
-<!ENTITY cmd.enableAll.label "Увімкнути всі">
-<!ENTITY cmd.enableAll.accesskey "в">
-<!ENTITY cmd.enableAll.tooltip "Вмикає всі показані додатки">
-<!ENTITY cmd.disableAll.label "Вимкнути всі">
-<!ENTITY cmd.disableAll.accesskey "с">
-<!ENTITY cmd.disableAll.tooltip "Вимикає всі показані додатки">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Використовувати тему">
-<!ENTITY cmd.useTheme.accesskey "е">
-<!ENTITY cmd.useTheme.tooltip "Змінює тему &brandShortName; ">
-<!ENTITY cmd.options.label "Налаштування">
-<!ENTITY cmd.options.accesskey "Н">
-<!ENTITY cmd.options.tooltip "Змінити Налаштування виділеного розширення">
-<!ENTITY cmd.optionsUnix.label "Налаштування">
-<!ENTITY cmd.optionsUnix.accesskey "Н">
-<!ENTITY cmd.optionsUnix.tooltip "Змінити налаштування виділеного розширення">
-<!ENTITY cmd.enable.label "Увімкнути">
-<!ENTITY cmd.enable.accesskey "м">
-<!ENTITY cmd.enable.tooltip "Вмикає цей додаток після перезапуску &brandShortName;">
-<!ENTITY cmd.disable.label "Вимкнути">
-<!ENTITY cmd.disable.accesskey "В">
-<!ENTITY cmd.disable.tooltip "Вимикає цей додаток після перезапуску &brandShortName;">
-<!ENTITY cmd.uninstall.label "Вилучити">
-<!ENTITY cmd.uninstall2.accesskey "и">
-<!ENTITY cmd.uninstall2.tooltip "Вилучає цей додаток після перезапуску &brandShortName;">
-<!ENTITY cmd.cancelUninstall.label "Скасувати вилучення">
-<!ENTITY cmd.cancelUninstall.accesskey "я">
-<!ENTITY cmd.cancelUninstall.tooltip "Скасувати вилучення цього додатку">
-<!ENTITY cmd.cancelInstall.label "Скасувати встановлення">
-<!ENTITY cmd.cancelInstall.accesskey "С">
-<!ENTITY cmd.cancelInstall.tooltip "Скасувати встановлення цього додатку">
-<!ENTITY cmd.cancelUpgrade.label "Скасувати оновлення">
-<!ENTITY cmd.cancelUpgrade.accesskey "к">
-<!ENTITY cmd.cancelUpgrade.tooltip "Скасувати оновлення цього додатку">
-<!ENTITY cmd.installUpdate.label "Встановити оновлення">
-<!ENTITY cmd.installUpdate.accesskey "В">
-<!ENTITY cmd.installUpdate.tooltip "Встановити оновлення для додатку">
-<!ENTITY cmd.showUpdateInfo.label "Показати інформацію">
-<!ENTITY cmd.showUpdateInfo.accesskey "і">
-<!ENTITY cmd.showUpdateInfo.tooltip "Показати більше інформації про ці оновлення">
-<!ENTITY cmd.hideUpdateInfo.label "Приховати інформацію">
-<!ENTITY cmd.hideUpdateInfo.accesskey "х">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Приховати інформацію про ці оновлення">
-<!ENTITY cmd.installSearchResult.label "Додати до &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "Д">
-<!ENTITY cmd.installSearchResult.tooltip "Завантажити та встановити цей додаток">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Скасувати">
-<!ENTITY cancel.accesskey "т">
-<!ENTITY cancelInstall.label "Скасувати">
-<!ENTITY cancelInstall.accesskey "С">
-<!ENTITY cancelUpgrade.label "Скасувати">
-<!ENTITY cancelUpgrade.accesskey "С">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Відвідати домашню сторінку">
-<!ENTITY cmd.homepage.accesskey "м">
-<!ENTITY cmd.about2.label "Про цей додаток">
-<!ENTITY cmd.about.accesskey "П">
-<!ENTITY cmd.checkUpdate.label "Знайти оновлення">
-<!ENTITY cmd.checkUpdate.accesskey "З">
-<!ENTITY cmd.includeUpdate.label "Встановлювати оновлення">
-<!ENTITY cmd.includeUpdate.accesskey "а">
-<!ENTITY includeUpdate.label "Встановлювати це оновлення">
-<!ENTITY includeUpdate.accesskey "ц">
-<!ENTITY includeUpdate.tooltip "Оновлювати цей додаток при установці оновлень">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Не надає безпечних оновлень.">
-<!ENTITY needsDependencies.label "Вимагає додаткових компонентів.">
-<!ENTITY blocklisted.label "Вимкнено в цілях безпеки.">
-<!ENTITY softBlocklisted.label "Відомий як такий, що спричиняє проблеми з безпекою чи стабільністтю.">
-<!ENTITY outdated.label "Наявна новіша та безпечніша версія.">
-<!ENTITY toBeDisabled.label "Цей додаток буде вимкнено при перезапуску &brandShortName;.">
-<!ENTITY toBeEnabled.label "Цей додаток буде ввімкнено при перезапуску &brandShortName;.">
-<!ENTITY toBeInstalled.label "Цей додаток буде встановлено при перезапуску &brandShortName;.">
-<!ENTITY toBeUninstalled.label "Цей додаток буде вилучено при перезапуску &brandShortName;.">
-<!ENTITY toBeUpdated.label "Цей додаток буде оновлено при перезапуску &brandShortName;.">
-<!ENTITY getExtensions.label "Завантажити розширення">
-<!ENTITY getThemes.label "Завантажити теми">
-<!ENTITY getPlugins.label "Завантажити модулі">
-<!ENTITY searchAddons.label "Шукати всі додатки">
-<!ENTITY browseAddons.label "Переглянути всі додатки">
-<!ENTITY searchFailed.label "&brandShortName; не зміг знайти додатки">
-<!ENTITY recommendedHeader.label "Рекомендовані">
-<!ENTITY recommendedThrobber.label "Завантажуються рекомендовані додатки">
-<!ENTITY searchThrobber.label "Шукаю додатки">
-<!ENTITY resetSearch.label "Очистити результати">
-<!ENTITY noSearchResults.label "Всі результати вже встановлені або несумісні.">
-<!ENTITY noRecommendedResults.label "Всі рекомендації вже встановлені або несумісні.">
-<!ENTITY emptySearch.label "Немає відповідних додатків.">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Скасувати">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Дізнатись більше">
-<!ENTITY searchBox.label "Шукати у всіх додатках">
-<!ENTITY recommendedResults.label "Побачити всі рекомендовані додатки">
-<!ENTITY searchResultConnecting.label "З’єднуюсь…">
-<!ENTITY searchResultInstalling.label "Встановлюю…">
-<!ENTITY searchResultFailed.label "Встановлення не вдалося">
-<!ENTITY searchResultInstalled.label "Встановлення завершено">
-<!ENTITY addonTypeExtension.label "Розширення">
-<!ENTITY addonTypeTheme.label "Тема">
-<!ENTITY missingThumbnail.label "Нема малюнків">
-<!ENTITY previewNoThemeSelected.label "Тему не вибрано">
-<!ENTITY previewNoPreviewImage.label "Для даної теми попередній перегляд неможливий">
-<!ENTITY moreInfo.label "Докладна інформація">
-<!ENTITY infoNoAddonSelected.label "Жодне оновлення не вибране">
-<!ENTITY infoNoUpdateInfo.label "Це оновлення не має ніякої додаткової інформації">
-<!ENTITY infoUpdateInfoError.label "Під час завантаження інформації про це оновлення сталася помилка">
-<!ENTITY updateSuccess.label "Оновлення успішно завершено.">
-<!ENTITY installSuccess.label "Встановлення успішно завершено.">
-<!ENTITY installSuccessRestart.label "Для завершення установки потрібний перезапуск.">
-<!ENTITY updateSuccessRestart.label "Перезапустити щоб завершити оновлення.">
-<!ENTITY installWaiting.label "Очікування…">
-<!ENTITY installIncompatibleUpdate.label "Триває перевірка сумісності…">
-<!ENTITY installFinishing.label "Триває встановлення…">
-<!ENTITY installFailure.label "Помилка встановлення.">
-<!ENTITY progressStatus.label "Перевіряється наявність оновлень">
-<!ENTITY eula.title "Ліцензійна угода з кінцевим користувачем">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Погодитись та встановити…">
-<!ENTITY blocklist.blocked.label "Блокований">
-<!ENTITY blocklist.checkbox.label "Вимкнути">
diff --git a/locale/uk/install.dtd b/locale/uk/install.dtd
index 91f11a6..be9ff1a 100644
--- a/locale/uk/install.dtd
+++ b/locale/uk/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "В">
 <!ENTITY preview "Переглянути">
 <!ENTITY preview.ak "П">
-<!ENTITY switchtoedit "Перемкнутись у редагування">
-<!ENTITY switchtoedit.ak "р">
 <!ENTITY title "Встановити користувацький стиль">
diff --git a/locale/uk/manage.dtd b/locale/uk/manage.dtd
index 1cf23c2..04e9a03 100644
--- a/locale/uk/manage.dtd
+++ b/locale/uk/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Змінити мітки">
-<!ENTITY changetags.ak "м">
-<!ENTITY done "Готово">
-<!ENTITY done.ak "Г">
 <!ENTITY filter "Шукати:">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Стилі">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Завітайте">
 <!ENTITY nostylesend "по інформацію як використовувати Stylish.">
 <!ENTITY sortenabled "Станом">
 <!ENTITY sortname "Назвою">
-<!ENTITY sorttag "Міткою">
 <!ENTITY sorttype "Типом">
-<!ENTITY sortgroup "Сортувати за:">
-<!ENTITY update "Оновити">
-<!ENTITY update.ak "О">
 <!ENTITY writenew "Написати новий стиль">
 <!ENTITY writenew.ak "Н">
diff --git a/locale/uk/manage.properties b/locale/uk/manage.properties
index 3ead3ac..e9032e9 100644
--- a/locale/uk/manage.properties
+++ b/locale/uk/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Увімкнено
-groupEnabledFalse=Вимкнено
-groupTagNone=Нема міток
-groupTypeApp=Програма
-groupTypeGlobal=Глобальний
-groupTypeNone=Без типу
-groupTypeSite=Сайт
-styleRegistrationOff=Всі стилі вимкнено.
-styleRegistrationTurnOn=Увімкнути стилі
-styleRegistrationTurnOn.ak=У
-updateAvailable=Доступне оновлення.
-updateCheckError=Під час запиту оновлень сталась помилка.
-updateCompleted=Оновлення завершене.
-updateFailed=Оновлення не вдалось.
-updateNotFound=Оновлень не знайдено.
-updateNotPossible=Оновлення неможливе.
 appstyledescription=Стосується інтерфейсу програми.
 globalstyledescription=Може стосуватись усього.
 sitestyledescription=Стосується %S.
-tagstyledescription=Мітки: %S.
 manageaddonstitle=Стилі
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/uk/overlay.dtd b/locale/uk/overlay.dtd
index 6650db0..3c2ab4e 100644
--- a/locale/uk/overlay.dtd
+++ b/locale/uk/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Встановити файл…">
 <!ENTITY addfile.ak "В">
+<!ENTITY cmd.enable.label "Увімкнути">
+<!ENTITY cmd.enable.accesskey "м">
+<!ENTITY cmd.disable.label "Вимкнути">
+<!ENTITY cmd.disable.accesskey "В">
+<!ENTITY cmd.uninstall.label "Вилучити">
+<!ENTITY cmd.uninstall2.accesskey "и">
 <!ENTITY findstylebrowser "Знайти стилі для цього сайта…">
 <!ENTITY findstylebrowser.ak "З">
 <!ENTITY managestyles "Керування стилями…">
diff --git a/locale/uk/overlay.properties b/locale/uk/overlay.properties
index d6141fd..66aaef6 100644
--- a/locale/uk/overlay.properties
+++ b/locale/uk/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S сайтових стилів, %S глобальних стилів
 tooltipStylesOff=Stylish - Стилі вимкнено
 updatestyle=Ви певні що хочете оновити \'%S\'?
diff --git a/locale/vi/common.dtd b/locale/vi/common.dtd
index 149603d..23db709 100644
--- a/locale/vi/common.dtd
+++ b/locale/vi/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "Chỉnh sửa">
 <!ENTITY editstyle.ak "C">
+<!ENTITY reportstyle "Report style as broken">
+<!ENTITY reportedstyle "Style reported.">
 <!ENTITY stylish "Stylish">
diff --git a/locale/vi/common.properties b/locale/vi/common.properties
index 0fc2720..f20d048 100644
--- a/locale/vi/common.properties
+++ b/locale/vi/common.properties
@@ -1,10 +1,4 @@
-changeTags=Xóa thẻ \'%S\' và thêm các thẻ sau:
-changeTagsNoCurrent=Thêm các thẻ sau:
-changeTagsTitle=Thay đổi thẻ
 deleteStyle=Bạn có chắc là mình muốn gỡ bỏ \'%S\' không?
 deleteStyleTitle=Gỡ bỏ style?
 deleteStyleOK=Gỡ bỏ
-deleteStyles=Bạn có thật sự muốn gỡ bỏ các kiểu dáng %S này không?
-deleteStylesTitle=Gỡ bỏ kiểu dáng?
-deleteStylesOK=Gỡ bỏ
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=Tạo lại sắc thái của web với Stylish, một trình quản lí style người dùng.
diff --git a/locale/vi/edit.dtd b/locale/vi/edit.dtd
index 3159ca6..a13734a 100644
--- a/locale/vi/edit.dtd
+++ b/locale/vi/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "Check for Errors">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Đường dẫn thư mục Chrome">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "URI dữ liệu...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "X">
 <!ENTITY save "Lưu">
 <!ENTITY save.ak "L">
-<!ENTITY switchtoinstall "Chuyển sang Cài đặt">
-<!ENTITY switchtoinstall.ak "y">
-<!ENTITY tags "Tag">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "Bẻ dòng">
 <!ENTITY wraplines.ak "B">
 <!ENTITY xulnamespace "Không gian tên XML làm mặc định">
diff --git a/locale/vi/edit.properties b/locale/vi/edit.properties
index eb0fb3a..aa9d1a2 100644
--- a/locale/vi/edit.properties
+++ b/locale/vi/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=Chỉnh sửa \'%S\'
 newstyletitle=Style mới
 missingcode=Nhập một mã nào đó cho style này.
 missingname=Đặt tên cho style này.
-unsavedchanges=Would you like to save your changes to this style?
-unsavedchangestitle=Save changes?
diff --git a/locale/vi/extensions.dtd b/locale/vi/extensions.dtd
deleted file mode 100644
index 5ce8c4c..0000000
--- a/locale/vi/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "Tiện ích">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "Lấy thêm Tiện ích">
-<!ENTITY extensions.label "Phần mở rộng">
-<!ENTITY themes.label "Giao diện">
-<!ENTITY locales.label "Ngôn ngữ">
-<!ENTITY plugins.label "Phần bổ trợ">
-<!ENTITY update.label "Cập nhật">
-<!ENTITY install.label "Cài đặt">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "Tìm bản Cập nhật">
-<!ENTITY cmd.checkUpdatesAll.accesskey "T">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "Tìm cập nhật cho Tiện ích của bạn">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "Tìm cập nhật cho Giao diện của bạn">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "Tìm cập nhật cho Phần bổ trợ của bạn">
-<!ENTITY cmd.installLocalFile.label "Cài đặt…">
-<!ENTITY cmd.installLocalFile.accesskey "C">
-<!ENTITY cmd.installFileAddon.tooltip "Cài đặt một Tiện ích">
-<!ENTITY cmd.installFileTheme.tooltip "Cài đặt một Giao diện">
-<!ENTITY cmd.installUpdatesAll2.label "Cài đặt Cập nhật">
-<!ENTITY cmd.installUpdatesAll2.accesskey "C">
-<!ENTITY cmd.installUpdatesAll2.tooltip "Cài đặt các bản cập nhật đã chọn">
-<!ENTITY cmd.restartApp2.label "Khởi động lại &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "K">
-<!ENTITY cmd.restartApp2.tooltip "Khởi động lại &brandShortName; để tiến hành thay đổi">
-<!ENTITY cmd.skip.label "Bỏ qua">
-<!ENTITY cmd.skip.accesskey "B">
-<!ENTITY cmd.skip.tooltip "Bỏ qua những cập nhật này">
-<!ENTITY cmd.continue.label "Tiếp tục">
-<!ENTITY cmd.continue.accesskey "T">
-<!ENTITY cmd.continue.tooltip "Tiếp tục chạy &brandShortName;">
-<!ENTITY cmd.enableAll.label "Kích hoạt Tất cả">
-<!ENTITY cmd.enableAll.accesskey "h">
-<!ENTITY cmd.enableAll.tooltip "Kích hoạt tất cả các Tiện ích được hiển thị">
-<!ENTITY cmd.disableAll.label "Vô hiệu hóa Tất cả">
-<!ENTITY cmd.disableAll.accesskey "u">
-<!ENTITY cmd.disableAll.tooltip "Vô hiệu hóa tất cả các Tiện ích được hiển thị">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "Dùng Giao diện">
-<!ENTITY cmd.useTheme.accesskey "D">
-<!ENTITY cmd.useTheme.tooltip "Đổi Giao diện của &brandShortName;">
-<!ENTITY cmd.options.label "Tùy chọn">
-<!ENTITY cmd.options.accesskey "y">
-<!ENTITY cmd.options.tooltip "Thiết lập Tùy chọn của Phần mở rộng được chọn">
-<!ENTITY cmd.optionsUnix.label "Tùy chỉnh">
-<!ENTITY cmd.optionsUnix.accesskey "y">
-<!ENTITY cmd.optionsUnix.tooltip "Thay đổi các Tùy chỉnh của Phần mở rộng được chọn">
-<!ENTITY cmd.enable.label "Bật">
-<!ENTITY cmd.enable.accesskey "B">
-<!ENTITY cmd.enable.tooltip "Kích hoạt Tiện ích này khi &brandShortName; được khởi động lại">
-<!ENTITY cmd.disable.label "Vô hiệu hóa">
-<!ENTITY cmd.disable.accesskey "V">
-<!ENTITY cmd.disable.tooltip "Vô hiệu hóa Tiện ích này khi &brandShortName; được khởi động lại">
-<!ENTITY cmd.uninstall.label "Gỡ bỏ">
-<!ENTITY cmd.uninstall2.accesskey "G">
-<!ENTITY cmd.uninstall2.tooltip "Gỡ bỏ Tiện ích này khi &brandShortName; được khởi động lại">
-<!ENTITY cmd.cancelUninstall.label "Hủy việc Gỡ bỏ">
-<!ENTITY cmd.cancelUninstall.accesskey "H">
-<!ENTITY cmd.cancelUninstall.tooltip "Hủy việc gỡ bỏ Tiện ích này">
-<!ENTITY cmd.cancelInstall.label "Hủy việc Cài đặt">
-<!ENTITY cmd.cancelInstall.accesskey "H">
-<!ENTITY cmd.cancelInstall.tooltip "Hủy việc cài đặt Tiện ích này">
-<!ENTITY cmd.cancelUpgrade.label "Hủy việc Nâng cấp">
-<!ENTITY cmd.cancelUpgrade.accesskey "H">
-<!ENTITY cmd.cancelUpgrade.tooltip "Hủy việc nâng cấp Tiện ích này">
-<!ENTITY cmd.installUpdate.label "Cài đặt bản Cập nhật">
-<!ENTITY cmd.installUpdate.accesskey "C">
-<!ENTITY cmd.installUpdate.tooltip "Cài đặt bản cập nhật cho Tiện ích này">
-<!ENTITY cmd.showUpdateInfo.label "Hiện Thông tin">
-<!ENTITY cmd.showUpdateInfo.accesskey "H">
-<!ENTITY cmd.showUpdateInfo.tooltip "Hiện thêm thông tin về các bản cập nhật này">
-<!ENTITY cmd.hideUpdateInfo.label "Ẩn Thông tin">
-<!ENTITY cmd.hideUpdateInfo.accesskey "n">
-<!ENTITY cmd.hideUpdateInfo.tooltip "Ẩn thông tin về các bản cập nhật này">
-<!ENTITY cmd.installSearchResult.label "Thêm vào &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "T">
-<!ENTITY cmd.installSearchResult.tooltip "Tải về và cài đặt tiện ích này">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "Hủy bỏ">
-<!ENTITY cancel.accesskey "H">
-<!ENTITY cancelInstall.label "Hủy bỏ">
-<!ENTITY cancelInstall.accesskey "H">
-<!ENTITY cancelUpgrade.label "Hủy bỏ">
-<!ENTITY cancelUpgrade.accesskey "H">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "Vào Trang Chủ">
-<!ENTITY cmd.homepage.accesskey "a">
-<!ENTITY cmd.about2.label "Thông tin về Tiện ích này">
-<!ENTITY cmd.about.accesskey "v">
-<!ENTITY cmd.checkUpdate.label "Tìm bản Cập nhật">
-<!ENTITY cmd.checkUpdate.accesskey "T">
-<!ENTITY cmd.includeUpdate.label "Bao gồm bản Cập nhật">
-<!ENTITY cmd.includeUpdate.accesskey "a">
-<!ENTITY includeUpdate.label "Bao gồm bản cập nhật này">
-<!ENTITY includeUpdate.accesskey "a">
-<!ENTITY includeUpdate.tooltip "Bao gồm Tiện ích này khi cài đặt các bản cập nhật">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "Không cung cấp bản cập nhật bảo mật.">
-<!ENTITY needsDependencies.label "Cần các mục phụ.">
-<!ENTITY blocklisted.label "Đã vô hiệu hóa để bảo vệ bạn.">
-<!ENTITY softBlocklisted.label "Được biết đến như là nguyên nhân gây ra các vấn đề bảo mật và ổn định.">
-<!ENTITY outdated.label "Hiện đang có một phiên bản mới hơn, an toàn hơn.">
-<!ENTITY toBeDisabled.label "Tiện ích này sẽ bị vô hiệu hóa khi &brandShortName; được khởi động lại.">
-<!ENTITY toBeEnabled.label "Tiện ích này sẽ được kích hoạt khi &brandShortName; được khởi động lại.">
-<!ENTITY toBeInstalled.label "Tiện ích này sẽ được cài đặt khi &brandShortName; được khởi động lại.">
-<!ENTITY toBeUninstalled.label "Tiện ích này sẽ được gỡ bỏ khi &brandShortName; được khởi động lại.">
-<!ENTITY toBeUpdated.label "Tiện ích này sẽ được cập nhật khi &brandShortName; khởi động lại.">
-<!ENTITY getExtensions.label "Lấy thêm Phần mở rộng">
-<!ENTITY getThemes.label "Lấy thêm Giao diện">
-<!ENTITY getPlugins.label "Lấy thêm Phần bổ trợ">
-<!ENTITY searchAddons.label "Tìm Tất cả các Tiện ích">
-<!ENTITY browseAddons.label "Duyệt xem Tất cả Tiện ích">
-<!ENTITY searchFailed.label "&brandShortName; không thể lấy Tiện ích về">
-<!ENTITY recommendedHeader.label "Khuyên dùng">
-<!ENTITY recommendedThrobber.label "Đang lấy về những tiện ích được khuyên dùng">
-<!ENTITY searchThrobber.label "Đang tìm các tiện ích">
-<!ENTITY resetSearch.label "Xóa kết quả">
-<!ENTITY noSearchResults.label "Tất cả đã được cài đặt rồi hoặc do không tương thích.">
-<!ENTITY noRecommendedResults.label "Tất cả đã được cài đặt rồi hoặc do không tương thích.">
-<!ENTITY emptySearch.label "Không tìm thấy tiện ích phù hợp">
-<!ENTITY emptySearch.button "OK">
-<!ENTITY cancelSearch.button "Hủy bỏ">
-<!ENTITY searchFailed.button "OK">
-<!ENTITY searchResultHomepage.value "Tìm hiểu thêm">
-<!ENTITY searchBox.label "Tìm Tất cả các Tiện ích">
-<!ENTITY recommendedResults.label "Xem Tất cả các Tiện ích được khuyên dùng">
-<!ENTITY searchResultConnecting.label "Đang kết nối…">
-<!ENTITY searchResultInstalling.label "Đang cài…">
-<!ENTITY searchResultFailed.label "Cài đặt Thất bại">
-<!ENTITY searchResultInstalled.label "Cài đặt Hoàn tất">
-<!ENTITY addonTypeExtension.label "Phần mở rộng">
-<!ENTITY addonTypeTheme.label "Giao diện">
-<!ENTITY missingThumbnail.label "Không thể Xem trước">
-<!ENTITY previewNoThemeSelected.label "Chưa chọn Giao diện">
-<!ENTITY previewNoPreviewImage.label "Giao diện này không có Ảnh Xem trước">
-<!ENTITY moreInfo.label "Thông tin Chi tiết">
-<!ENTITY infoNoAddonSelected.label "Không có Cập nhật nào được chọn">
-<!ENTITY infoNoUpdateInfo.label "Cập nhật này không có thông tin chi tiết">
-<!ENTITY infoUpdateInfoError.label "Gặp lỗi khi đang lấy thông tin về bản cập nhật này">
-<!ENTITY updateSuccess.label "Hoàn tất thành công việc Cập nhật.">
-<!ENTITY installSuccess.label "Hoàn tất thành công việc Cài đặt.">
-<!ENTITY installSuccessRestart.label "Khởi động lại để hoàn tất việc cài đặt.">
-<!ENTITY updateSuccessRestart.label "Khởi động lại để hoàn tất việc cập nhật.">
-<!ENTITY installWaiting.label "Đang chờ…">
-<!ENTITY installIncompatibleUpdate.label "Đang kiểm tra tính tương thích…">
-<!ENTITY installFinishing.label "Đang cài…">
-<!ENTITY installFailure.label "Cài đặt thất bại.">
-<!ENTITY progressStatus.label "Đang tìm kiếm Cập nhật mới">
-<!ENTITY eula.title "Thỏa thuận Giấy phép Người dùng cuối">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "Đồng ý và Cài đặt…">
-<!ENTITY blocklist.blocked.label "Đã bị chặn">
-<!ENTITY blocklist.checkbox.label "Vô hiệu hóa">
diff --git a/locale/vi/install.dtd b/locale/vi/install.dtd
index d5538df..b618f5b 100644
--- a/locale/vi/install.dtd
+++ b/locale/vi/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "C">
 <!ENTITY preview "Xem thử">
 <!ENTITY preview.ak "X">
-<!ENTITY switchtoedit "Chuyển sang Chỉnh sửa">
-<!ENTITY switchtoedit.ak "y">
 <!ENTITY title "Cài đặt style người dùng">
diff --git a/locale/vi/manage.dtd b/locale/vi/manage.dtd
index 034ef95..27e627d 100644
--- a/locale/vi/manage.dtd
+++ b/locale/vi/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "Thay đổi Thẻ">
-<!ENTITY changetags.ak "a">
-<!ENTITY done "Xong">
-<!ENTITY done.ak "X">
 <!ENTITY filter "Tìm kiếm">
 <!ENTITY installfromurls "Install from URLs...">
-<!ENTITY manageaddonstitle "Style Người dùng">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "Vào">
 <!ENTITY nostylesend "để biết thêm thông tin về cách sử dụng Stylish.">
 <!ENTITY sortenabled "Bật">
 <!ENTITY sortname "Tên">
-<!ENTITY sorttag "Tag">
 <!ENTITY sorttype "Kiểu">
-<!ENTITY sortgroup "Sắp theo:">
-<!ENTITY update "Cập nhật">
-<!ENTITY update.ak "p">
 <!ENTITY writenew "Viết Style mới">
 <!ENTITY writenew.ak "V">
diff --git a/locale/vi/manage.properties b/locale/vi/manage.properties
index df76b12..b4c2ae2 100644
--- a/locale/vi/manage.properties
+++ b/locale/vi/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=Bật
-groupEnabledFalse=Tắt
-groupTagNone=Không tag
-groupTypeApp=Chương trình
-groupTypeGlobal=Bao trùm
-groupTypeNone=Không có kiểu
-groupTypeSite=Trang
-styleRegistrationOff=Tất cả style đang tắt.
-styleRegistrationTurnOn=Bật style lên
-styleRegistrationTurnOn.ak=B
-updateAvailable=Đang có một bản cập nhật.
-updateCheckError=Một lỗi đã xảy ra khi đang kiểm tra cập nhật.
-updateCompleted=Cập nhật hoàn tất.
-updateFailed=Cập nhật thất bại.
-updateNotFound=No updates found.
-updateNotPossible=Không thể cập nhật.
 appstyledescription=Affects the user interface.
 globalstyledescription=Can affect anything.
 sitestyledescription=Affects %S.
-tagstyledescription=Tags: %S.
 manageaddonstitle=Style Người dùng
 installfromurlsprompttitle=Install from URLs
 installfromurlsprompt=Enter URLs of user styles to install. These can be pages on userstyles.org or CSS files. Separate multiple URLs by spaces.
diff --git a/locale/vi/overlay.dtd b/locale/vi/overlay.dtd
index cc5c0ed..638c22b 100644
--- a/locale/vi/overlay.dtd
+++ b/locale/vi/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "Cài đặt tập tin...">
 <!ENTITY addfile.ak "C">
+<!ENTITY cmd.enable.label "Bật">
+<!ENTITY cmd.enable.accesskey "B">
+<!ENTITY cmd.disable.label "Vô hiệu hóa">
+<!ENTITY cmd.disable.accesskey "V">
+<!ENTITY cmd.uninstall.label "Gỡ bỏ">
+<!ENTITY cmd.uninstall2.accesskey "G">
 <!ENTITY findstylebrowser "Tìm style cho trang này...">
 <!ENTITY findstylebrowser.ak "m">
 <!ENTITY managestyles "Quản lí style...">
diff --git a/locale/vi/overlay.properties b/locale/vi/overlay.properties
index 3eb5083..567ac82 100644
--- a/locale/vi/overlay.properties
+++ b/locale/vi/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=Styles for this page
+submenufornonmatchingsite=Site styles
+submenuforglobal=Global styles
+submenuforapp=App styles
 tooltip=Stylish - %S style của trang, %S style bao trùm
 tooltipStylesOff=Stylish - Style đang tắt
 updatestyle=Bạn có chắc là mình muốn cập nhật \'%S\' không?
diff --git a/locale/zh-CN/common.dtd b/locale/zh-CN/common.dtd
index 21948bb..f5ef13a 100644
--- a/locale/zh-CN/common.dtd
+++ b/locale/zh-CN/common.dtd
@@ -1,3 +1,5 @@
 <!ENTITY editstyle "编辑">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "报告样式已失效">
+<!ENTITY reportedstyle "已报告样式。">
 <!ENTITY stylish "Stylish">
diff --git a/locale/zh-CN/common.properties b/locale/zh-CN/common.properties
index bf91f97..7d0bd06 100644
--- a/locale/zh-CN/common.properties
+++ b/locale/zh-CN/common.properties
@@ -1,10 +1,4 @@
-changeTags=移除“%S”标签并添加以下标签:
-changeTagsNoCurrent=添加以下标签:
-changeTagsTitle=更改标签
 deleteStyle=你确定要卸载“%S”吗?
 deleteStyleTitle=卸载样式?
 deleteStyleOK=卸载
-deleteStyles=你确定要卸载这 %S 个样式吗?
-deleteStylesTitle=卸载样式?
-deleteStylesOK=卸载
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=让网页和用户界面有个新形象
diff --git a/locale/zh-CN/edit.dtd b/locale/zh-CN/edit.dtd
index 0dc7ffc..62815e9 100644
--- a/locale/zh-CN/edit.dtd
+++ b/locale/zh-CN/edit.dtd
@@ -1,3 +1,5 @@
+<!ENTITY checkforerrors "检查错误">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome 文件夹路径">
 <!ENTITY chromefolder.ak "C">
 <!ENTITY dataURI "数据 URL...">
@@ -14,10 +16,6 @@
 <!ENTITY preview.ak "P">
 <!ENTITY save "保存">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "切换到安装模式">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "标签">
-<!ENTITY tags.ak "T">
 <!ENTITY wraplines "自动换行">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "默认 XUL 命名空间">
diff --git a/locale/zh-CN/edit.properties b/locale/zh-CN/edit.properties
index 98604d2..c2b6b39 100644
--- a/locale/zh-CN/edit.properties
+++ b/locale/zh-CN/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=正在编辑“%S”
 newstyletitle=新样式
 missingcode=输入此样式的代码。
 missingname=给此样式起个名字。
-unsavedchanges=是否要保存对此样式的更改?
-unsavedchangestitle=保存更改?
diff --git a/locale/zh-CN/extensions.dtd b/locale/zh-CN/extensions.dtd
deleted file mode 100644
index 6277b88..0000000
--- a/locale/zh-CN/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "附加组件">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "获取附加组件">
-<!ENTITY extensions.label "扩展">
-<!ENTITY themes.label "主题">
-<!ENTITY locales.label "语言">
-<!ENTITY plugins.label "插件">
-<!ENTITY update.label "更新">
-<!ENTITY install.label "安装">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "查找更新">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "查找附加组件的更新">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "查找主题的更新">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "查找您的插件的更新">
-<!ENTITY cmd.installLocalFile.label "安装…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "安装附加组件">
-<!ENTITY cmd.installFileTheme.tooltip "安装主题">
-<!ENTITY cmd.installUpdatesAll2.label "安装更新">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "安装选定的更新">
-<!ENTITY cmd.restartApp2.label "重启 &brandShortName;">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "重启 &brandShortName; 以使更改生效">
-<!ENTITY cmd.skip.label "跳过">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "跳过这些更新">
-<!ENTITY cmd.continue.label "继续">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "继续载入 &brandShortName;">
-<!ENTITY cmd.enableAll.label "全部启用">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "启用显示的所有附加组件">
-<!ENTITY cmd.disableAll.label "全部禁用">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "禁用所有显示的附加组件">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "使用主题">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "更换 &brandShortName; 的主题。">
-<!ENTITY cmd.options.label "选项">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "设置所选扩展的选项">
-<!ENTITY cmd.optionsUnix.label "首选项">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "编辑所选扩展的首选项">
-<!ENTITY cmd.enable.label "启用">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "&brandShortName; 重启后将启用此附加组件">
-<!ENTITY cmd.disable.label "禁用">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "&brandShortName; 重启后将禁用此附加组件">
-<!ENTITY cmd.uninstall.label "卸载">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "&brandShortName; 重启后将卸载此附加组件">
-<!ENTITY cmd.cancelUninstall.label "取消卸载">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "取消卸载此附加组件">
-<!ENTITY cmd.cancelInstall.label "取消安装">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "取消安装此附加组件">
-<!ENTITY cmd.cancelUpgrade.label "取消更新">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "取消更新此附加组件">
-<!ENTITY cmd.installUpdate.label "安装更新">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "安装此附加组件的更新">
-<!ENTITY cmd.showUpdateInfo.label "显示信息">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "显示这些更新的更多信息">
-<!ENTITY cmd.hideUpdateInfo.label "隐藏信息">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "隐藏这些更新的信息">
-<!ENTITY cmd.installSearchResult.label "添加至 &brandShortName;…">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "下载并安装此附加组件">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "取消">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "取消">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "取消">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "访问主页">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "关于此附加组件">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "查找更新">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "包括更新">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "包括此更新">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "安装更新时包括此附加组件">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "没有提供安全地更新。">
-<!ENTITY needsDependencies.label "需要其他项。">
-<!ENTITY blocklisted.label "出于保护目的禁用。">
-<!ENTITY softBlocklisted.label "已知会导致安全或稳定性的问题。">
-<!ENTITY outdated.label "更新更安全的版本现已可用。">
-<!ENTITY toBeDisabled.label "此附加组件将在 &brandShortName; 重启后禁用。">
-<!ENTITY toBeEnabled.label "此附加组件将在 &brandShortName; 重启后启用。">
-<!ENTITY toBeInstalled.label "此附加组件将在 &brandShortName; 重启后安装。">
-<!ENTITY toBeUninstalled.label "此附加组件将在 &brandShortName; 重启后卸载。">
-<!ENTITY toBeUpdated.label "此附加组件将在重启 &brandShortName; 时更新。">
-<!ENTITY getExtensions.label "获取扩展">
-<!ENTITY getThemes.label "获取主题">
-<!ENTITY getPlugins.label "获取插件">
-<!ENTITY searchAddons.label "搜索全部附加组件">
-<!ENTITY browseAddons.label "浏览全部附加组件">
-<!ENTITY searchFailed.label "&brandShortName; 无法获取附加组件">
-<!ENTITY recommendedHeader.label "推荐">
-<!ENTITY recommendedThrobber.label "正在获取推荐的附加组件">
-<!ENTITY searchThrobber.label "正在搜索附加组件">
-<!ENTITY resetSearch.label "清空结果">
-<!ENTITY noSearchResults.label "所有结果均已安装或不兼容。">
-<!ENTITY noRecommendedResults.label "所有建议项均已安装或不兼容。">
-<!ENTITY emptySearch.label "无符合条件的附加组件">
-<!ENTITY emptySearch.button "确定">
-<!ENTITY cancelSearch.button "取消">
-<!ENTITY searchFailed.button "确定">
-<!ENTITY searchResultHomepage.value "更多信息">
-<!ENTITY searchBox.label "搜索全部附加组件">
-<!ENTITY recommendedResults.label "搜索全部推荐附加组件">
-<!ENTITY searchResultConnecting.label "正在连接…">
-<!ENTITY searchResultInstalling.label "安装中…">
-<!ENTITY searchResultFailed.label "安装失败">
-<!ENTITY searchResultInstalled.label "安装完成">
-<!ENTITY addonTypeExtension.label "扩展">
-<!ENTITY addonTypeTheme.label "主题">
-<!ENTITY missingThumbnail.label "无预览">
-<!ENTITY previewNoThemeSelected.label "未选择主题">
-<!ENTITY previewNoPreviewImage.label "此主题中未包含预览图片">
-<!ENTITY moreInfo.label "更多信息">
-<!ENTITY infoNoAddonSelected.label "未选中更新">
-<!ENTITY infoNoUpdateInfo.label "此更新不包含任何附加信息">
-<!ENTITY infoUpdateInfoError.label "载入此更新的信息时出错">
-<!ENTITY updateSuccess.label "更新已成功完成。">
-<!ENTITY installSuccess.label "安装已成功完成。">
-<!ENTITY installSuccessRestart.label "重启以完成安装。">
-<!ENTITY updateSuccessRestart.label "重启以完成更新。">
-<!ENTITY installWaiting.label "等待…">
-<!ENTITY installIncompatibleUpdate.label "正在检查兼容性…">
-<!ENTITY installFinishing.label "正在安装…">
-<!ENTITY installFailure.label "安装失败。">
-<!ENTITY progressStatus.label "检查更新">
-<!ENTITY eula.title "用户协议">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "接受并安装…">
-<!ENTITY blocklist.blocked.label "已阻止">
-<!ENTITY blocklist.checkbox.label "禁用">
diff --git a/locale/zh-CN/install.dtd b/locale/zh-CN/install.dtd
index bb6ceb5..f965aed 100644
--- a/locale/zh-CN/install.dtd
+++ b/locale/zh-CN/install.dtd
@@ -3,6 +3,4 @@
 <!ENTITY install.ak "I">
 <!ENTITY preview "预览">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "切换到编辑模式">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "安装用户样式">
diff --git a/locale/zh-CN/install.properties b/locale/zh-CN/install.properties
index ebee9bd..2beb89d 100644
--- a/locale/zh-CN/install.properties
+++ b/locale/zh-CN/install.properties
@@ -1,7 +1,7 @@
 installintro=你正准备安装“%S”到 Stylish。
 installintrononame=你正准备安装一个新样式到 Stylish。
 installapp=该样式可以对 %S 的用户界面产生影响。你可能需要重新启动 %S 以使该样式生效。
-installglobal=该样式可以对所有网站页面生效。
+installglobal=此样式可能对所有网站页面生效。
 installsite=该样式可以对以下网站生效:
 installnotype=该样式可以对网站或者 %S 的用户界面生效。
 missingname=给该样式起个名字。
diff --git a/locale/zh-CN/manage.dtd b/locale/zh-CN/manage.dtd
index 6a080f5..f4e8cb7 100644
--- a/locale/zh-CN/manage.dtd
+++ b/locale/zh-CN/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "更改标签">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "完成">
-<!ENTITY done.ak "D">
 <!ENTITY filter "搜索">
 <!ENTITY installfromurls "从 URL 安装...">
-<!ENTITY manageaddonstitle "用户样式">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "浏览">
 <!ENTITY nostylesend "查看关于如何使用 Stylish 的信息。">
 <!ENTITY sortenabled "启用">
 <!ENTITY sortname "名称">
-<!ENTITY sorttag "标签">
 <!ENTITY sorttype "类型">
-<!ENTITY sortgroup "排序按:">
-<!ENTITY update "更新">
-<!ENTITY update.ak "U">
 <!ENTITY writenew "编写新样式">
 <!ENTITY writenew.ak "W">
diff --git a/locale/zh-CN/manage.properties b/locale/zh-CN/manage.properties
index 391841d..22edff4 100644
--- a/locale/zh-CN/manage.properties
+++ b/locale/zh-CN/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=启用
-groupEnabledFalse=停用
-groupTagNone=无标签
-groupTypeApp=程序
-groupTypeGlobal=全局
-groupTypeNone=无分类
-groupTypeSite=网站
-styleRegistrationOff=所有样式已停用。
-styleRegistrationTurnOn=启用样式
-styleRegistrationTurnOn.ak=T
-updateAvailable=有可用的更新。
-updateCheckError=查找更新时遇到错误。
-updateCompleted=更新完成。
-updateFailed=更新失败。
-updateNotFound=没有找到更新。
-updateNotPossible=不能更新。
 appstyledescription=影响用户界面。
 globalstyledescription=影响所有地方。
 sitestyledescription=生效于 %S。
-tagstyledescription=标签:%S。
 manageaddonstitle=用户样式
 installfromurlsprompttitle=从 URL 安装
 installfromurlsprompt=请输入要安装的用户样式的 URL。可以是 userstyles.org 上的页面,或是 CSS 文件。可用空格分隔多个 URL。
diff --git a/locale/zh-CN/overlay.dtd b/locale/zh-CN/overlay.dtd
index e084743..2033f53 100644
--- a/locale/zh-CN/overlay.dtd
+++ b/locale/zh-CN/overlay.dtd
@@ -1,5 +1,11 @@
 <!ENTITY addfile "安装文件...">
 <!ENTITY addfile.ak "I">
+<!ENTITY cmd.enable.label "启用">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "禁用">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "卸载">
+<!ENTITY cmd.uninstall2.accesskey "U">
 <!ENTITY findstylebrowser "查找适合此网站的样式...">
 <!ENTITY findstylebrowser.ak "F">
 <!ENTITY managestyles "管理样式...">
diff --git a/locale/zh-CN/overlay.properties b/locale/zh-CN/overlay.properties
index 8fa2cc3..1089eff 100644
--- a/locale/zh-CN/overlay.properties
+++ b/locale/zh-CN/overlay.properties
@@ -1,3 +1,7 @@
+submenuformatchingsite=用于此页面的样式
+submenufornonmatchingsite=页面样式
+submenuforglobal=全局样式
+submenuforapp=界面样式
 tooltip=Stylish - %S 个页面样式,%S 个全局样式
 tooltipStylesOff=Stylish - 已停用样式
 updatestyle=你确定要更新“%S”吗?
diff --git a/locale/zh-TW/common.dtd b/locale/zh-TW/common.dtd
index 4e91d16..4babbc0 100644
--- a/locale/zh-TW/common.dtd
+++ b/locale/zh-TW/common.dtd
@@ -1,3 +1,5 @@
-<!ENTITY editstyle "編輯(E)">
+<!ENTITY editstyle "編輯">
 <!ENTITY editstyle.ak "E">
+<!ENTITY reportstyle "回報樣式已失效">
+<!ENTITY reportedstyle "已回報樣式。">
 <!ENTITY stylish "Stylish">
diff --git a/locale/zh-TW/common.properties b/locale/zh-TW/common.properties
index ef97bf2..54d68e4 100644
--- a/locale/zh-TW/common.properties
+++ b/locale/zh-TW/common.properties
@@ -1,10 +1,4 @@
-changeTags=移除「%S」標籤並增加以下標籤:
-changeTagsNoCurrent=增加以下標籤:
-changeTagsTitle=變更標籤
 deleteStyle=你確定要移除「%S」嗎?
 deleteStyleTitle=移除這個樣式?
 deleteStyleOK=移除
-deleteStyles=你確定要移除這 %S 個樣式嗎?
-deleteStylesTitle=移除這些樣式?
-deleteStylesOK=移除
 extensions.{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}.description=使用 Stylish 打造專屬你的網頁與使用者介面!
diff --git a/locale/zh-TW/domi.dtd b/locale/zh-TW/domi.dtd
index a56cb7c..19f1fc5 100644
--- a/locale/zh-TW/domi.dtd
+++ b/locale/zh-TW/domi.dtd
@@ -1 +1 @@
-<!ENTITY copyselector "複製選取的">
+<!ENTITY copyselector "複製選擇器">
diff --git a/locale/zh-TW/edit.dtd b/locale/zh-TW/edit.dtd
index 7e9f5d3..d6c8636 100644
--- a/locale/zh-TW/edit.dtd
+++ b/locale/zh-TW/edit.dtd
@@ -1,24 +1,22 @@
+<!ENTITY checkforerrors "檢查錯誤">
+<!ENTITY checkforerrors.ak "C">
 <!ENTITY chromefolder "Chrome 資料夾路徑">
 <!ENTITY chromefolder.ak "C">
-<!ENTITY dataURI "資料 URI…(D)">
+<!ENTITY dataURI "資料 URI…">
 <!ENTITY dataURI.ak "D">
 <!ENTITY htmlnamespace "預設的 HTML 命名空間">
 <!ENTITY htmlnamespace.ak "H">
-<!ENTITY insert "插入(I)">
+<!ENTITY insert "插入">
 <!ENTITY insert.ak "I">
-<!ENTITY name "名稱(N)">
+<!ENTITY name "名稱">
 <!ENTITY name.ak "n">
-<!ENTITY openintexternaleditor "以外部編輯器開啟(O)">
+<!ENTITY openintexternaleditor "以外部編輯器開啟">
 <!ENTITY openintexternaleditor.ak "O">
-<!ENTITY preview "預覽(P)">
+<!ENTITY preview "預覽">
 <!ENTITY preview.ak "P">
-<!ENTITY save "儲存(S)">
+<!ENTITY save "儲存">
 <!ENTITY save.ak "S">
-<!ENTITY switchtoinstall "切換到安裝模式(I)">
-<!ENTITY switchtoinstall.ak "I">
-<!ENTITY tags "標籤(T)">
-<!ENTITY tags.ak "T">
-<!ENTITY wraplines "換行(W)">
+<!ENTITY wraplines "換行">
 <!ENTITY wraplines.ak "W">
 <!ENTITY xulnamespace "預設的 XUL 命名空間">
 <!ENTITY xulnamespace.ak "X">
diff --git a/locale/zh-TW/edit.properties b/locale/zh-TW/edit.properties
index 58b6d1c..8bc1545 100644
--- a/locale/zh-TW/edit.properties
+++ b/locale/zh-TW/edit.properties
@@ -3,5 +3,3 @@ editstyletitle=正在編輯「%S」
 newstyletitle=新樣式
 missingcode=請輸入此樣式的代碼。
 missingname=請輸入此樣式的名稱。
-unsavedchanges=想要儲存您對於這個樣式的修改嗎?
-unsavedchangestitle=儲存修改?
diff --git a/locale/zh-TW/extensions.dtd b/locale/zh-TW/extensions.dtd
deleted file mode 100644
index 7279b29..0000000
--- a/locale/zh-TW/extensions.dtd
+++ /dev/null
@@ -1,160 +0,0 @@
-<!ENTITY addons.title "附加元件">
-<!-- Default window size for the addon manager in pixels -->
-<!ENTITY em.width "520">
-<!ENTITY em.height "380">
-<!ENTITY cmd.info.commandKey "i">
-<!ENTITY cmd.options.commandKey ",">
-<!ENTITY cmd.close.commandKey "w">
-<!-- View labels -->
-<!ENTITY search.label "取得更多附加元件">
-<!ENTITY extensions.label "擴充套件">
-<!ENTITY themes.label "佈景主題">
-<!ENTITY locales.label "語言">
-<!ENTITY plugins.label "外掛程式">
-<!ENTITY update.label "更新">
-<!ENTITY install.label "安裝">
-<!-- Command Bar items -->
-<!ENTITY cmd.checkUpdatesAll.label "搜尋更新(F)">
-<!ENTITY cmd.checkUpdatesAll.accesskey "F">
-<!ENTITY cmd.checkUpdatesAllAddon.tooltip "搜尋您附加元件的更新">
-<!ENTITY cmd.checkUpdatesAllTheme.tooltip "搜尋您佈景主題的更新">
-<!ENTITY cmd.checkUpdatesAllPlugin.tooltip "搜尋您擴充套件的更新">
-<!ENTITY cmd.installLocalFile.label "安裝(n)…">
-<!ENTITY cmd.installLocalFile.accesskey "n">
-<!ENTITY cmd.installFileAddon.tooltip "安裝附加元件">
-<!ENTITY cmd.installFileTheme.tooltip "安裝佈景主題">
-<!ENTITY cmd.installUpdatesAll2.label "安裝更新(I)">
-<!ENTITY cmd.installUpdatesAll2.accesskey "I">
-<!ENTITY cmd.installUpdatesAll2.tooltip "安裝已選擇的更新">
-<!ENTITY cmd.restartApp2.label "重新啟動 &brandShortName; (R)">
-<!ENTITY cmd.restartApp2.accesskey "R">
-<!ENTITY cmd.restartApp2.tooltip "重新啟動 &brandShortName; 以套用變更">
-<!ENTITY cmd.skip.label "略過(k)">
-<!ENTITY cmd.skip.accesskey "k">
-<!ENTITY cmd.skip.tooltip "忽略這些更新">
-<!ENTITY cmd.continue.label "繼續(C)">
-<!ENTITY cmd.continue.accesskey "C">
-<!ENTITY cmd.continue.tooltip "繼續載入 &brandShortName;">
-<!ENTITY cmd.enableAll.label "全部啟用(a)">
-<!ENTITY cmd.enableAll.accesskey "a">
-<!ENTITY cmd.enableAll.tooltip "啟用所有顯示的附加元件">
-<!ENTITY cmd.disableAll.label "全部停用(s)">
-<!ENTITY cmd.disableAll.accesskey "s">
-<!ENTITY cmd.disableAll.tooltip "停用所有顯示的附加元件">
-<!-- Displayed in the selected Add-on\'s richlistitem and context menu -->
-<!ENTITY cmd.useTheme.label "使用佈景主題(T)">
-<!ENTITY cmd.useTheme.accesskey "T">
-<!ENTITY cmd.useTheme.tooltip "修改 &brandShortName; 的佈景主題">
-<!ENTITY cmd.options.label "選項(O)">
-<!ENTITY cmd.options.accesskey "O">
-<!ENTITY cmd.options.tooltip "設定所選擇的外掛程式選項">
-<!ENTITY cmd.optionsUnix.label "偏好設定(P)">
-<!ENTITY cmd.optionsUnix.accesskey "P">
-<!ENTITY cmd.optionsUnix.tooltip "編輯所選擇的外掛程式選項">
-<!ENTITY cmd.enable.label "啟用(E)">
-<!ENTITY cmd.enable.accesskey "E">
-<!ENTITY cmd.enable.tooltip "重新啟動 &brandShortName; 時啟用此附加元件">
-<!ENTITY cmd.disable.label "停用(D)">
-<!ENTITY cmd.disable.accesskey "D">
-<!ENTITY cmd.disable.tooltip "重新啟動 &brandShortName; 時停用此附加元件">
-<!ENTITY cmd.uninstall.label "移除(U)">
-<!ENTITY cmd.uninstall2.accesskey "U">
-<!ENTITY cmd.uninstall2.tooltip "重新啟動 &brandShortName; 時移除此附加元件">
-<!ENTITY cmd.cancelUninstall.label "取消移除(C)">
-<!ENTITY cmd.cancelUninstall.accesskey "C">
-<!ENTITY cmd.cancelUninstall.tooltip "取消此附加元件的移除">
-<!ENTITY cmd.cancelInstall.label "取消安裝(C)">
-<!ENTITY cmd.cancelInstall.accesskey "C">
-<!ENTITY cmd.cancelInstall.tooltip "取消此附加元件的安裝">
-<!ENTITY cmd.cancelUpgrade.label "取消升級(C)">
-<!ENTITY cmd.cancelUpgrade.accesskey "C">
-<!ENTITY cmd.cancelUpgrade.tooltip "取消此附加元件的升級">
-<!ENTITY cmd.installUpdate.label "安裝更新(I)">
-<!ENTITY cmd.installUpdate.accesskey "I">
-<!ENTITY cmd.installUpdate.tooltip "安裝此附加元件的更新">
-<!ENTITY cmd.showUpdateInfo.label "顯示資訊(S)">
-<!ENTITY cmd.showUpdateInfo.accesskey "S">
-<!ENTITY cmd.showUpdateInfo.tooltip "顯示關於這些更新的更多資訊">
-<!ENTITY cmd.hideUpdateInfo.label "隱藏資訊(H)">
-<!ENTITY cmd.hideUpdateInfo.accesskey "H">
-<!ENTITY cmd.hideUpdateInfo.tooltip "隱藏關於這些更新的更多資訊">
-<!ENTITY cmd.installSearchResult.label "新增至 &brandShortName;…(A)">
-<!ENTITY cmd.installSearchResult.accesskey "A">
-<!ENTITY cmd.installSearchResult.tooltip "下載並安裝此附加元件">
-<!-- The selected add-on\'s cancel action button label -->
-<!ENTITY cancel.label "取消(C)">
-<!ENTITY cancel.accesskey "C">
-<!ENTITY cancelInstall.label "取消(C)">
-<!ENTITY cancelInstall.accesskey "C">
-<!ENTITY cancelUpgrade.label "取消(C)">
-<!ENTITY cancelUpgrade.accesskey "C">
-<!-- Only displayed in the selected Add-on\'s context menu -->
-<!ENTITY cmd.homepage.label "瀏覽主頁(H)">
-<!ENTITY cmd.homepage.accesskey "H">
-<!ENTITY cmd.about2.label "關於此附加元件(A)">
-<!ENTITY cmd.about.accesskey "A">
-<!ENTITY cmd.checkUpdate.label "檢查更新(F)">
-<!ENTITY cmd.checkUpdate.accesskey "F">
-<!ENTITY cmd.includeUpdate.label "包含更新(n)">
-<!ENTITY cmd.includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.label "包含此更新(n)">
-<!ENTITY includeUpdate.accesskey "n">
-<!ENTITY includeUpdate.tooltip "在安裝更新時包含此附加元件">
-<!-- Status Messsages -->
-<!ENTITY insecureUpdate.label "不提供安全性更新。">
-<!ENTITY needsDependencies.label "需要更多項目。">
-<!ENTITY blocklisted.label "已停用以保護您。">
-<!ENTITY softBlocklisted.label "已知會造成安全性或穩定性問題。">
-<!ENTITY outdated.label "已有更新、更安全的版本可用。">
-<!ENTITY toBeDisabled.label "此附加元件將會在 &brandShortName; 重新啟動後被停用。">
-<!ENTITY toBeEnabled.label "此附加元件將會在 &brandShortName; 重新啟動後被啟用。">
-<!ENTITY toBeInstalled.label "此附加元件將會在 &brandShortName; 重新啟動後被安裝。">
-<!ENTITY toBeUninstalled.label "此附加元件將會在 &brandShortName; 重新啟動後被移除。">
-<!ENTITY toBeUpdated.label "此附加元件將會在 &brandShortName; 重新啟動後被更新。">
-<!ENTITY getExtensions.label "取得擴充套件">
-<!ENTITY getThemes.label "取得佈景主題">
-<!ENTITY getPlugins.label "取得外掛程式">
-<!ENTITY searchAddons.label "搜尋所有附加元件">
-<!ENTITY browseAddons.label "瀏覽所有附加元件">
-<!ENTITY searchFailed.label "&brandShortName; 無法取得附加元件">
-<!ENTITY recommendedHeader.label "推薦">
-<!ENTITY recommendedThrobber.label "正在取得推薦的附加元件">
-<!ENTITY searchThrobber.label "正在搜尋附加元件">
-<!ENTITY resetSearch.label "清除結果">
-<!ENTITY noSearchResults.label "所有的搜尋結果都已被安裝,或不相容。">
-<!ENTITY noRecommendedResults.label "所有的推薦都已被安裝,或不相容。">
-<!ENTITY emptySearch.label "找不到附加元件">
-<!ENTITY emptySearch.button "確定">
-<!ENTITY cancelSearch.button "取消">
-<!ENTITY searchFailed.button "確定">
-<!ENTITY searchResultHomepage.value "取得更多資訊">
-<!ENTITY searchBox.label "搜尋所有附加元件">
-<!ENTITY recommendedResults.label "顯示所有推薦的附加元件">
-<!ENTITY searchResultConnecting.label "連線中…">
-<!ENTITY searchResultInstalling.label "安裝中…">
-<!ENTITY searchResultFailed.label "安裝失敗">
-<!ENTITY searchResultInstalled.label "安裝完成">
-<!ENTITY addonTypeExtension.label "擴充套件">
-<!ENTITY addonTypeTheme.label "佈景主題">
-<!ENTITY missingThumbnail.label "無預覽圖">
-<!ENTITY previewNoThemeSelected.label "沒有已選的佈景主題">
-<!ENTITY previewNoPreviewImage.label "此佈景主題沒有預覽圖">
-<!ENTITY moreInfo.label "更多資訊">
-<!ENTITY infoNoAddonSelected.label "未選擇更新">
-<!ENTITY infoNoUpdateInfo.label "此更新沒有更多資訊">
-<!ENTITY infoUpdateInfoError.label "載入此更新的資訊時發生錯誤">
-<!ENTITY updateSuccess.label "更新已完成。">
-<!ENTITY installSuccess.label "安裝已完成。">
-<!ENTITY installSuccessRestart.label "重新啟用以完成安裝。">
-<!ENTITY updateSuccessRestart.label "重新啟用以完成更新。">
-<!ENTITY installWaiting.label "等待中…">
-<!ENTITY installIncompatibleUpdate.label "正在檢查相容性…">
-<!ENTITY installFinishing.label "安裝中…">
-<!ENTITY installFailure.label "安裝失敗.">
-<!ENTITY progressStatus.label "正在檢查更新">
-<!ENTITY eula.title "終端使用者授權合約">
-<!ENTITY eula.width "560px">
-<!ENTITY eula.height "400px">
-<!ENTITY eula.accept "接受並安裝…">
-<!ENTITY blocklist.blocked.label "已阻擋">
-<!ENTITY blocklist.checkbox.label "停用">
diff --git a/locale/zh-TW/install.dtd b/locale/zh-TW/install.dtd
index 61992f2..183a239 100644
--- a/locale/zh-TW/install.dtd
+++ b/locale/zh-TW/install.dtd
@@ -1,8 +1,6 @@
 <!ENTITY entername "樣式名稱:">
-<!ENTITY install "安裝(I)">
+<!ENTITY install "安裝">
 <!ENTITY install.ak "I">
-<!ENTITY preview "預覽(P)">
+<!ENTITY preview "預覽">
 <!ENTITY preview.ak "P">
-<!ENTITY switchtoedit "切換到編輯模式(E)">
-<!ENTITY switchtoedit.ak "E">
 <!ENTITY title "安裝使用者樣式">
diff --git a/locale/zh-TW/manage.dtd b/locale/zh-TW/manage.dtd
index 21311ce..5dcce5e 100644
--- a/locale/zh-TW/manage.dtd
+++ b/locale/zh-TW/manage.dtd
@@ -1,19 +1,10 @@
-<!ENTITY changetags "修改標籤(C)">
-<!ENTITY changetags.ak "C">
-<!ENTITY done "完成(D)">
-<!ENTITY done.ak "D">
 <!ENTITY filter "搜尋">
 <!ENTITY installfromurls "從 URL 安裝...">
-<!ENTITY manageaddonstitle "使用者樣式">
 <!ENTITY managetitle "Stylish">
 <!ENTITY nostylesstart "瀏覽">
 <!ENTITY nostylesend "關於如何使用 Stylish。">
 <!ENTITY sortenabled "啟用">
 <!ENTITY sortname "名稱">
-<!ENTITY sorttag "標籤">
 <!ENTITY sorttype "類型">
-<!ENTITY sortgroup "排序:">
-<!ENTITY update "更新(U)">
-<!ENTITY update.ak "U">
-<!ENTITY writenew "編寫新樣式(W)">
+<!ENTITY writenew "編寫新樣式">
 <!ENTITY writenew.ak "W">
diff --git a/locale/zh-TW/manage.properties b/locale/zh-TW/manage.properties
index c19ac9d..7598c66 100644
--- a/locale/zh-TW/manage.properties
+++ b/locale/zh-TW/manage.properties
@@ -1,23 +1,6 @@
-groupEnabledTrue=啟用
-groupEnabledFalse=停用
-groupTagNone=無標籤
-groupTypeApp=應用程式
-groupTypeGlobal=全域
-groupTypeNone=無分類
-groupTypeSite=網站
-styleRegistrationOff=已停用所有樣式。
-styleRegistrationTurnOn=啟用樣式(T)
-styleRegistrationTurnOn.ak=T
-updateAvailable=有可用的更新。
-updateCheckError=檢查更新時遇到錯誤。
-updateCompleted=更新完成。
-updateFailed=更新失敗。
-updateNotFound=找不到更新。
-updateNotPossible=無法更新。
 appstyledescription=影響使用者介面。
 globalstyledescription=影響所有設定。
 sitestyledescription=影響 %S。
-tagstyledescription=標籤:%S。
 manageaddonstitle=使用者樣式
 installfromurlsprompttitle=從 URL 安裝
 installfromurlsprompt=輸入 URL 以進行安裝,可以是 userstyles.org 頁面或 CSS 檔案;多組 URL 請以空白區隔。
diff --git a/locale/zh-TW/overlay.dtd b/locale/zh-TW/overlay.dtd
index 178e473..3ed3522 100644
--- a/locale/zh-TW/overlay.dtd
+++ b/locale/zh-TW/overlay.dtd
@@ -1,12 +1,18 @@
-<!ENTITY addfile "安裝檔案…(I)">
+<!ENTITY addfile "安裝檔案…">
 <!ENTITY addfile.ak "I">
-<!ENTITY findstylebrowser "尋找此網站的樣式…(F)">
+<!ENTITY cmd.enable.label "啟用">
+<!ENTITY cmd.enable.accesskey "E">
+<!ENTITY cmd.disable.label "停用">
+<!ENTITY cmd.disable.accesskey "D">
+<!ENTITY cmd.uninstall.label "移除">
+<!ENTITY cmd.uninstall2.accesskey "U">
+<!ENTITY findstylebrowser "尋找此網站的樣式…">
 <!ENTITY findstylebrowser.ak "F">
-<!ENTITY managestyles "管理樣式…(M)">
+<!ENTITY managestyles "管理樣式…">
 <!ENTITY managestyles.ak "M">
-<!ENTITY turnon "啟用所有樣式(T)">
+<!ENTITY turnon "啟用所有樣式">
 <!ENTITY turnon.ak "T">
-<!ENTITY turnoff "停用所有樣式(T)">
+<!ENTITY turnoff "停用所有樣式">
 <!ENTITY turnoff.ak "T">
-<!ENTITY writestyle "編寫新樣式(W)">
+<!ENTITY writestyle "編寫新樣式">
 <!ENTITY writestyle.ak "W">
diff --git a/locale/zh-TW/overlay.properties b/locale/zh-TW/overlay.properties
index fec31ad..88ad118 100644
--- a/locale/zh-TW/overlay.properties
+++ b/locale/zh-TW/overlay.properties
@@ -1,10 +1,14 @@
+submenuformatchingsite=用於此網站的樣式
+submenufornonmatchingsite=網站樣式
+submenuforglobal=全域樣式
+submenuforapp=介面樣式
 tooltip=Stylish - %S 個網站樣式,%S 個全域樣式
 tooltipStylesOff=Stylish - 已停用樣式
 updatestyle=你確定要更新 '%S' 嗎?
 updatestyleok=更新
 updatestyletitle=更新樣式
-writeblank=空白樣式...(B)
+writeblank=空白樣式...
 writeblankaccesskey=B
 writefordomain=給 %S...
-writeforsite=給此網址...(U)
+writeforsite=給此網址...
 writeforsiteaccesskey=U
diff --git a/pull_locales.rb b/pull_locales.rb
new file mode 100644
index 0000000..eb61477
--- /dev/null
+++ b/pull_locales.rb
@@ -0,0 +1,29 @@
+# Create a file in the same directory called pull_locales_login.rb.
+# Contents should be:
+#
+# Transifex.configure do |config|
+#   config.username = 'transifex.username'
+#   config.password = 'transifex.password'
+# end
+
+require 'transifex'
+require_relative 'pull_locales_login'
+
+project_slug = 'stylish'
+
+transifex = Transifex::Client.new
+project = transifex.project(project_slug)
+
+project.languages.each do |language|
+	code = language.language_code
+	code_with_hyphens = code.sub('_', '-')
+	puts "Getting locale #{code_with_hyphens}"
+	project.resources.each do |resource|
+		c = resource.translation(code).content.gsub('\\\\', '\\').gsub('&', '&')
+		# transifex likes underscores in locale names, we like hyphens
+		c.sub!(code, code_with_hyphens) if code != code_with_hyphens
+		file_name = "locale/#{code_with_hyphens}/#{resource.name}"
+		puts "Writing resource #{file_name}"
+		File.open(file_name, 'w') { |file| file.write(c) }
+	end
+end
diff --git a/skin/edit.css b/skin/edit.css
index 9b5d7b0..5508595 100644
--- a/skin/edit.css
+++ b/skin/edit.css
@@ -1,6 +1,3 @@
-sourceeditor {
-  -moz-binding: url('chrome://diavolo/content/sourceeditor.xml#sourceeditor');
-}
 #errors {
 	min-height: 3em;
 	max-height: 8em;
@@ -20,9 +17,30 @@ sourceeditor {
 #findbar {
 	border-top: 0;
 }
+.devtools-horizontal-splitter {
+	/* Overriding global.css */
+	height: 3px !important;
+}
+.devtools-textinput {
+	padding: 0 2px;
+}
+.devtools-toolbarbutton {
+	border-radius: 2px !important;
+	border: 1px solid rgba(0,0,0,0.3) !important;
+	padding: 1px 5px !important;
+}
+.devtools-separator {
+	margin: 0 5px 0 4px !important;
+}
+.devtools-toolbarbutton[disabled="true"] {
+	opacity: 0.2;
+}
+.update-url-row {
+	display: none;
+}
+grid {
+	margin: 2px 0;
+}
 #editor-tools {
-	margin-top: 3px;
-	padding-top: 2px;
-	border-top: 2px solid -moz-use-text-color;
-	-moz-border-top-colors: threedshadow threedhighlight;
+	padding: 5px 0;
 }
diff --git a/skin/extensions-gnome.css b/skin/extensions-gnome.css
deleted file mode 100644
index e368d80..0000000
--- a/skin/extensions-gnome.css
+++ /dev/null
@@ -1,429 +0,0 @@
-/* http://mxr.mozilla.org/mozilla1.9.2/source/toolkit/themes/gnomestripe/mozapps/extensions/extensions.css */
-#extensionsBox {
-  margin: 10px 8px 0 8px;
-  min-width: 1px;
-}
-
-/* Addons notification */
-notification {
-  background-color: transparent;
-}
-.notification-inner {
-  background-color: infobackground;
-  border-color: ThreeDShadow;
-  margin: 9px 8px 0 8px;
-}
-
-#extensionsView {
-  border: 2px solid;
-  -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-  -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-  margin: 0;
-  min-width: 245px;
-}
-
-#resizerBox {
-  margin-top: -12px;
-  visibility: hidden;
-}
-
-#resizerBox > resizer {
-  height: 10px;
-  max-height: 10px;
-  visibility: visible;
-}
-
-#searchfield {
-  -moz-margin-start: 0;
-}
-
-/* Command Bar */
-#commandBarBottom {
-  margin: 10px 10px 5px 10px;
-  min-width: 1px;
-}
-
-#commandBarBottom button {
-  margin: 0;
-  -moz-margin-end: 5px;
-}
-
-/* List Items */
-richlistitem {
-  padding-top: 6px;
-  padding-bottom: 6px;
-  -moz-padding-start: 7px;
-  -moz-padding-end: 7px;
-  min-height: 25px;
-  border-bottom: 1px dotted #C0C0C0;
-}
-
-richlistitem[isDisabled="true"] .addonIcon {
-  opacity: 0.3;
-}
-
-richlistitem[isDisabled="true"] {
-  color: GrayText;
-}
-
-richlistitem[newAddon="true"] {
-  background-color: InfoBackground;
-  color: InfoText;
-}
-
-richlistitem[selected="true"] {
-  background-color: -moz-cellhighlight;
-  color: -moz-cellhighlighttext;
-}
-
-richlistitem[selected="true"] .text-link {
-  color: inherit;
-}
-
-#extensionsView:focus > richlistitem[selected="true"] {
-  background-image: url("chrome://mozapps/skin/extensions/itemEnabledFader.png");
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-#extensionsView:focus > richlistitem[selected="true"][isDisabled="true"] {
-  background-image: url("chrome://mozapps/skin/extensions/itemDisabledFader.png");
-}
-
-.descriptionWrap {
-  margin-bottom: 2px;
-}
-
-.addonName {
-  font-weight: bold;
-}
-
-.previewText {
-  font-size: larger;
-  font-weight: bold;
-  color: ThreeDShadow;
-  text-align: center;
-}
-
-#themePreviewArea {
-  -moz-appearance: listbox;
-  border: 2px solid;
-  -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-  -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-  min-width: 65px;
-  overflow: auto;
-}
-
-#previewImageDeck {
-  min-width: 220px;
-}
-
-#themeSplitter {
- border-width: 0;
-}
-
-.addonIcon {
-  -moz-margin-end: 2px;
-  width: 32px;
-  height: 32px;
-}
-
-.addonIcon > image {
-  max-width: 32px;
-  max-height: 32px;
-}
-
-richlistitem[lwtheme] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/extensions/themeGeneric.png");
-}
-
-richlistitem[plugin] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/plugins/pluginGeneric.png");
-}
-
-.updateBadge,
-.notifyBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px; 
-}
-
-.updateBadge {
-  -moz-margin-end: -2px;
-  list-style-image: url("chrome://mozapps/skin/extensions/notifyBadges.png");
-}
-
-.notifyBadge {
-  -moz-margin-start: -2px;
-  list-style-image: url("moz-icon://stock/gtk-dialog-error?size=menu");
-}
-
-/* Selected Add-on buttons
-   See content/extensions.css to hide / display buttons */
-.selectedButtons {
-  margin-top: 4px;
-  min-height: 2.1em;
-}
-
-.selectedButtons > button {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-
-.enableButton,
-.disableButton,
-.optionsButton,
-.useThemeButton {
-  -moz-margin-end: 0;
-}
-
-.enableButton, .disableButton,
-.uninstallButton, .cancelUninstallButton {
-  -moz-margin-start: 5px;
-}
-
-richlistitem[loading="true"] .updateBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px;
-  -moz-margin-end: -2px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  -moz-image-region: auto;
-}
-
-.addonThrobber {
-  -moz-margin-start: 5px;
-  width: 16px;
-  height: 16px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-}
-
-.selectedStatusMsgs > hbox {
-  margin-top: 2px;
-  margin-bottom: 2px;
-}
-
-.selectedStatusMsgs label {
-  font-weight: bold;
-}
-
-.selectedStatusMsgs label.text-link {
-  font-weight: normal;
-  border: none;
-}
-
-.addon-search-details {
-  margin-top: 5px;
-  margin-bottom: 5px;
-  -moz-margin-start: 6px;
-  -moz-margin-end: 0;
-}
-
-.addonThumbnailContainer {
-  background: window;
-  padding: 5px;
-  border: 2px solid ActiveBorder;
-  width: 135px;
-  min-height: 104px;
-  -moz-margin-end: 5px;
-}
-
-.addonMissingThumbnail {
-  color: GrayText;
-  font-size: larger;
-  font-weight: bold;
-}
-
-.addonFailure {
-  width: 16px;
-  height: 16px;
-  list-style-image: url("moz-icon://stock/gtk-dialog-error?size=menu");
-}
-
-.addonLearnMore {
-  margin-top: 4px;
-  margin-bottom: 4px;
-}
-
-.addonRating[rating] {
-  width: 70px;
-  height: 14px;
-  list-style-image: url("chrome://mozapps/skin/extensions/ratings.png");
-}
-
-.addonRating[rating="0"] {
-  -moz-image-region: rect(0px 70px 14px 0px);
-}
-
-.addonRating[rating="1"] {
-  -moz-image-region: rect(14px 70px 28px 0px);
-}
-
-.addonRating[rating="2"] {
-  -moz-image-region: rect(28px 70px 42px 0px);
-}
-
-.addonRating[rating="3"] {
-  -moz-image-region: rect(42px 70px 56px 0px);
-}
-
-.addonRating[rating="4"] {
-  -moz-image-region: rect(56px 70px 70px 0px);
-}
-
-.addonRating[rating="5"] {
-  -moz-image-region: rect(70px 70px 84px 0px);
-}
-
-.addonType image {
-  -moz-margin-start: 6px;
-  list-style-image: url("chrome://mozapps/skin/extensions/extensionIcons.png");
-  width: 16px;
-  height: 16px;
-}
-
-.addonTypeExtension image {
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.addonTypeTheme image {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-vbox[typeName="status"][type="search-failure"],
-vbox[typeName="status"][type="recommended-failure"],
-vbox[typeName="status"][type="message-norecommended"],
-vbox[typeName="status"][type="message-nosearchresults"],
-vbox[typeName="status"][type="retrieve-search"],
-vbox[typeName="status"][type="retrieve-recommended"] {
-  margin-top: 2em;
-}
-
-vbox[typeName="status"][type="footer-recommended"],
-vbox[typeName="status"][type="footer-search"] {
-  margin-top: 1em;
-}
-
-vbox[typeName="status"][type="header-recommended"] {
-  font-size: 150%;
-  background: -moz-dialog;
-}
-
-#progressBox {
-  padding: 5px 5px 5px 5px;
-}
-
-#progressBox > hbox {
-  -moz-box-align: center;
-}
-
-/* View buttons resp. Progress box */
-#topBar {
-  -moz-appearance: listbox;
-  margin: 8px 8px 0;
-}
-
-#viewGroup > radio {
-  -moz-appearance: none;
-  min-width: 4.5em;
-  margin: 0;
-  padding: 3px;
-  list-style-image: url("chrome://mozapps/skin/extensions/viewButtons.png");
-  color: -moz-FieldText;
-}
-
-#viewGroup > radio[selected="true"] {
-  background-color: Highlight;
-  color: HighlightText; 
-}
-
-.viewButtonIcon {
-  width: 32px;
-  height: 32px;
-}
-
-radio#extensions-view {
-  -moz-image-region: rect(0px, 32px,  32px, 0px)
-}
-
-radio#themes-view {
-  -moz-image-region: rect(0px, 64px,  32px, 32px)
-}
-
-radio#locales-view {
-  -moz-image-region: rect(0px, 96px,  32px, 64px)
-}
-
-radio#plugins-view {
-  -moz-image-region: rect(0px, 128px, 32px, 96px)
-}
-
-radio#updates-view {
-  -moz-image-region: rect(0px, 160px, 32px, 128px)
-}
-
-radio#installs-view {
-  -moz-image-region: rect(0px, 192px, 32px, 160px)
-}
-
-radio#search-view {
-  -moz-image-region: rect(0px, 224px, 32px, 192px)
-}
-
-/* Update view checkbox */
-.includeUpdate {
-  -moz-user-focus: none;
-}
-
-richlistitem[selected="true"] .includeUpdate {
-  -moz-user-focus: normal;
-}
-
-#infoDisplay {
-  overflow-y: auto;
-}
-
-#infoDisplay body {
-  padding: 5px;
-}
-
-#infoDisplay h1,
-#infoDisplay h2,
-#infoDisplay h3 {
-  text-align: left;
-  font-weight: bold;
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay h1 {
-  font-size: 150%;
-}
-
-#infoDisplay h2 {
-  font-size: 125%;
-}
-
-#infoDisplay h3 {
-  font-size: 100%;
-}
-
-#infoDisplay ol,
-#infoDisplay ul {
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay li {
-  text-align: left;
-}
-
-#infoDisplay p {
-  text-align: justify;
-  margin: 0 0 0.7em 0;
-}
-
diff --git a/skin/extensions-mac.css b/skin/extensions-mac.css
deleted file mode 100644
index 60a065a..0000000
--- a/skin/extensions-mac.css
+++ /dev/null
@@ -1,374 +0,0 @@
-/* http://mxr.mozilla.org/mozilla1.9.2/source/toolkit/themes/pinstripe/mozapps/extensions/extensions.css */
-/* View buttons */
- at import "chrome://global/skin/viewbuttons.css";
-
-#extensionsBox {
-  padding: 0;
-  min-width:1px;
-}
-
-#extensionsView {
-  min-width: 245px;
-}
-
-#resizerBox {
-  margin-top: -12px;
-  visibility: hidden;
-}
-
-#resizerBox > resizer {
-  height: 10px;
-  max-height: 10px;
-  visibility: visible;
-}
-
-/* Command Bar */
-#commandBarBottom {
-  margin: 10px 10px 10px 10px;
-  min-width: 1px;
-  -moz-appearance: dialog;
-}
-
-#commandBarBottom button {
-  margin: 0;
-  font: menu;
-}
-
-
-/* List Box and List Items */
-
-richlistbox {
-  margin: 0 !important;
-  -moz-appearance: none;
-  border-bottom: 1px solid #878787;
-}
-
-richlistitem {
-  padding-top: 6px;
-  padding-bottom: 6px;
-  -moz-padding-start: 7px;
-  -moz-padding-end: 7px;
-  min-height: 25px;
-  border-bottom: 1px solid #C0C0C0;
-}
-
-richlistitem[isDisabled="true"] .addonIcon {
-  opacity: 0.3;
-}
-
-richlistitem[isDisabled="true"] {
-  color: GrayText;
-}
-
-richlistitem[newAddon="true"] {
-  background-color: #fdf2ab;
-  color: #585620;
-}
-
-richlistitem[selected="true"] {
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-richlistitem[selected="true"] .text-link {
-  color: inherit;
-}
-
-richlistitem[selected="true"][isDisabled="true"] {
-  background-image: url("chrome://mozapps/skin/extensions/itemDisabledFader.png");
-}
-
-.descriptionWrap {
-  margin-bottom: 2px;
-}
-
-richlistitem:not([selected="true"]) .addon-description {
-  color: #707070;
-}
-
-.addon-name-version {
-  font-size: 110%;
-}
-
-.previewText {
-  font-size: larger;
-  font-weight: bold;
-  color: ThreeDShadow;
-  text-align: center;
-}
-
-#themeSplitter {
-  -moz-border-start: 2px solid;
-  -moz-border-right-colors: #383E48 #57606F;
-  -moz-border-left-colors: #383E48 #57606F;
-  width: 4px;
-  background-image: none;
-}
-
-#themePreviewArea {
-  min-width: 65px;
-  overflow: auto;
-}
-
-#previewImageDeck {
-  min-width: 220px;
-}
-
-#themePreviewArea,
-#themeSplitter {
-  background-color: #737E8E;
-}
-
-.addonIcon {
-  -moz-margin-end: 2px;
-  width: 32px;
-  height: 32px;
-}
-
-.addonIcon > image {
-  max-width: 32px;
-  max-height: 32px;
-}
-
-richlistitem[lwtheme] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/extensions/themeGeneric.png");
-}
-
-richlistitem[plugin] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/plugins/pluginGeneric.png");
-}
-
-.updateBadge,
-.notifyBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px;
-  list-style-image: url("chrome://mozapps/skin/extensions/notifyBadges.png");
-}
-
-.updateBadge {
-  -moz-margin-end: -2px;
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.notifyBadge {
-  -moz-margin-start: -2px;
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-/* Selected Add-on buttons
-   See content/extensions.css to hide / display buttons */
-.selectedButtons {
-  margin-top: 4px;
-}
-
-.selectedButtons > button {
-  margin-top: 0;
-  margin-bottom: 0;
-  padding: 0;
-  min-height: 20px;
-}
-
-.enableButton,
-.disableButton,
-.optionsButton,
-.useThemeButton {
-  -moz-margin-end: 0;
-}
-
-.enableButton, .disableButton,
-.uninstallButton, .cancelUninstallButton {
-  -moz-margin-start: 5px;
-}
-
-richlistitem[loading="true"] .updateBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px;
-  -moz-margin-end: -2px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  -moz-image-region: auto;
-}
-
-.addonThrobber {
-  -moz-margin-start: 5px;
-  width: 16px;
-  height: 16px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-}
-
-.selectedStatusMsgs > hbox {
-  margin-top: 2px;
-  margin-bottom: 2px;
-}
-
-.selectedStatusMsgs label {
-  font-weight: bold;
-}
-
-.selectedStatusMsgs label.text-link {
-  font-weight: normal;
-  border: none;
-}
-
-.attention {
-  -moz-box-pack: end;
-}
-
-.addon-search-details {
-  margin-top: 5px;
-  margin-bottom: 5px;
-  -moz-margin-start: 6px;
-  -moz-margin-end: 0;
-}
-
-.addonThumbnailContainer {
-  background: window;
-  padding: 5px;
-  border: 2px solid ActiveBorder;
-  width: 135px;
-  min-height: 104px;
-  -moz-margin-end: 5px;
-}
-
-.addonMissingThumbnail {
-  color: GrayText;
-  font-size: larger;
-  font-weight: bold;
-}
-
-.addonFailure {
-  width: 16px;
-  height: 16px;
-  list-style-image: url("chrome://mozapps/skin/extensions/notifyBadges.png");
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-.addonLearnMore {
-  margin-top: 4px;
-  margin-bottom: 4px;
-}
-
-.addonRating[rating] {
-  width: 78px;
-  height: 18px;
-  list-style-image: url("chrome://mozapps/skin/extensions/ratings.png");
-}
-
-.addonRating[rating="0"] {
-  -moz-image-region: rect(0px 78px 18px 0px);
-}
-
-.addonRating[rating="1"] {
-  -moz-image-region: rect(18px 78px 36px 0px);
-}
-
-.addonRating[rating="2"] {
-  -moz-image-region: rect(36px 78px 54px 0px);
-}
-
-.addonRating[rating="3"] {
-  -moz-image-region: rect(54px 78px 72px 0px);
-}
-
-.addonRating[rating="4"] {
-  -moz-image-region: rect(72px 78px 90px 0px);
-}
-
-.addonRating[rating="5"] {
-  -moz-image-region: rect(90px 78px 108px 0px);
-}
-
-.addonType image {
-  -moz-margin-start: 6px;
-  list-style-image: url("chrome://mozapps/skin/extensions/extensionIcons.png");
-  width: 16px;
-  height: 16px;
-}
-
-.addonTypeExtension image {
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.addonTypeTheme image {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-vbox[typeName="status"][type="search-failure"],
-vbox[typeName="status"][type="recommended-failure"],
-vbox[typeName="status"][type="message-norecommended"],
-vbox[typeName="status"][type="message-nosearchresults"],
-vbox[typeName="status"][type="retrieve-search"],
-vbox[typeName="status"][type="retrieve-recommended"] {
-  margin-top: 2em;
-}
-
-vbox[typeName="status"][type="footer-recommended"],
-vbox[typeName="status"][type="footer-search"] {
-  margin-top: 1em;
-}
-
-vbox[typeName="status"][type="header-recommended"] {
-  font-size: 150%;
-  background: -moz-dialog;
-}
-
-#searchPanel {
-  border-bottom: 1px solid #878787;
-}
-
-#progressBox > hbox {
-  -moz-box-align: center;
-}
-
-/* Update view checkbox */
-.includeUpdate {
-  -moz-user-focus: none;
-}
-
-richlistitem[selected="true"] .includeUpdate {
-  -moz-user-focus: normal;
-}
-
-#infoDisplay {
-  overflow-y: auto;
-}
-
-#infoDisplay body {
-  padding: 5px;
-}
-
-#infoDisplay h1,
-#infoDisplay h2,
-#infoDisplay h3 {
-  text-align: left;
-  font-weight: bold;
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay h1 {
-  font-size: 150%;
-}
-
-#infoDisplay h2 {
-  font-size: 125%;
-}
-
-#infoDisplay h3 {
-  font-size: 100%;
-}
-
-#infoDisplay ol,
-#infoDisplay ul {
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay li {
-  text-align: left;
-}
-
-#infoDisplay p {
-  text-align: justify;
-  margin: 0 0 0.7em 0;
-}
-
diff --git a/skin/extensions-windows.css b/skin/extensions-windows.css
deleted file mode 100644
index cf71477..0000000
--- a/skin/extensions-windows.css
+++ /dev/null
@@ -1,451 +0,0 @@
-/* http://mxr.mozilla.org/mozilla1.9.2/source/toolkit/themes/winstripe/mozapps/extensions/extensions.css */
-#extensionsBox {
-  margin: 10px 10px 0px 10px;
-  min-width: 1px;
-}
-
-#extensionsView {
-  border: 2px solid;
-  -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-  -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-  margin: 0;
-  min-width: 245px;
-}
-
-#resizerBox {
-  margin-top: -12px;
-  visibility: hidden;
-}
-
-#resizerBox > resizer {
-  height: 10px;
-  max-height: 10px;
-  visibility: visible;
-}
-
-#searchfield {
-  -moz-margin-start: 0;
-}
-
-/* Command Bar */
-#commandBarBottom {
-  margin: 10px 10px 5px 10px;
-  min-width: 1px;
-}
-
-#commandBarBottom button {
-  margin: 0;
-  -moz-margin-end: 5px;
-}
-
-/* List Items */
-richlistitem {
-  padding-top: 6px;
-  padding-bottom: 6px;
-  -moz-padding-start: 7px;
-  -moz-padding-end: 7px;
-  min-height: 25px;
-  border-bottom: 1px dotted #C0C0C0;
-}
-
-richlistitem[isDisabled="true"] .addonIcon {
-  opacity: 0.3;
-}
-
-richlistitem[isDisabled="true"] {
-  color: GrayText;
-}
-
-richlistitem[newAddon="true"] {
-  background-color: InfoBackground;
-  color: InfoText;
-}
-
-richlistitem[selected="true"] {
-  background-color: -moz-cellhighlight;
-  color: -moz-cellhighlighttext;
-}
-
-richlistitem[selected="true"] .text-link {
-  color: inherit;
-}
-
-#extensionsView:focus > richlistitem[selected="true"] {
-  background-image: url("chrome://mozapps/skin/extensions/itemEnabledFader.png");
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-#extensionsView:focus > richlistitem[selected="true"][isDisabled="true"] {
-  background-image: url("chrome://mozapps/skin/extensions/itemDisabledFader.png");
-}
-
-.descriptionWrap {
-  margin-bottom: 2px;
-}
-
-.addonName {
-  font-weight: bold;
-}
-
-.previewText {
-  font-size: larger;
-  font-weight: bold;
-  color: ThreeDShadow;
-  text-align: center;
-}
-
-#themePreviewArea {
-  -moz-appearance: listbox;
-  border: 2px solid;
-  -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-  -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-  min-width: 65px;
-  overflow: auto;
-}
-
-#previewImageDeck {
-  min-width: 220px;
-}
-
-#themeSplitter {
- border-width: 0;
-}
-
-.addonIcon {
-  -moz-margin-end: 2px;
-  width: 32px;
-  height: 32px;
-}
-
-.addonIcon > image {
-  max-width: 32px;
-  max-height: 32px;
-}
-
-richlistitem[lwtheme] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/extensions/themeGeneric.png");
-}
-
-richlistitem[plugin] .addonIcon > image {
-  list-style-image: url("chrome://mozapps/skin/plugins/pluginGeneric.png");
-}
-
-.updateBadge,
-.notifyBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px;
-  list-style-image: url("chrome://mozapps/skin/extensions/notifyBadges.png");
-}
-
-.updateBadge {
-  -moz-margin-end: -2px;
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.notifyBadge {
-  -moz-margin-start: -2px;
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-/* Selected Add-on buttons
-   See content/extensions.css to hide / display buttons */
-.selectedButtons {
-  margin-top: 4px;
-  min-height: 2.1em;
-}
-
-.selectedButtons > button {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-
-.enableButton,
-.disableButton,
-.optionsButton,
-.useThemeButton {
-  -moz-margin-end: 0;
-}
-
-.enableButton, .disableButton,
-.uninstallButton, .cancelUninstallButton {
-  -moz-margin-start: 5px;
-}
-
-richlistitem[loading="true"] .updateBadge {
-  width: 16px;
-  height: 16px;
-  margin-bottom: -3px;
-  -moz-margin-end: -2px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  -moz-image-region: auto;
-}
-
-.addonThrobber {
-  -moz-margin-start: 5px;
-  width: 16px;
-  height: 16px;
-  list-style-image: url("chrome://global/skin/icons/loading_16.png");
-}
-
-.selectedStatusMsgs > hbox {
-  margin-top: 2px;
-  margin-bottom: 2px;
-}
-
-.selectedStatusMsgs label {
-  font-weight: bold;
-}
-
-.selectedStatusMsgs label.text-link {
-  font-weight: normal;
-  border: none;
-}
-
-.addon-search-details {
-  margin-top: 5px;
-  margin-bottom: 5px;
-  -moz-margin-start: 6px;
-  -moz-margin-end: 0;
-}
-
-.addonThumbnailContainer {
-  background: window;
-  padding: 5px;
-  border: 2px solid ActiveBorder;
-  width: 135px;
-  min-height: 104px;
-  -moz-margin-end: 5px;
-}
-
-.addonMissingThumbnail {
-  color: GrayText;
-  font-size: larger;
-  font-weight: bold;
-}
-
-.addonFailure {
-  width: 16px;
-  height: 16px;
-  list-style-image: url("chrome://mozapps/skin/extensions/notifyBadges.png");
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-.addonLearnMore {
-  margin-top: 4px;
-  margin-bottom: 4px;
-}
-
-.addonRating[rating] {
-  width: 59px;
-  height: 11px;
-  list-style-image: url("chrome://mozapps/skin/extensions/ratings.png");
-}
-
-.addonRating[rating="0"] {
-  -moz-image-region: rect(0px 59px 11px 0px);
-}
-
-.addonRating[rating="1"] {
-  -moz-image-region: rect(12px 59px 23px 0px);
-}
-
-.addonRating[rating="2"] {
-  -moz-image-region: rect(24px 59px 35px 0px);
-}
-
-.addonRating[rating="3"] {
-  -moz-image-region: rect(36px 59px 47px 0px);
-}
-
-.addonRating[rating="4"] {
-  -moz-image-region: rect(48px 59px 59px 0px);
-}
-
-.addonRating[rating="5"] {
-  -moz-image-region: rect(60px 59px 71px 0px);
-}
-
-.addonType image {
-  -moz-margin-start: 6px;
-  list-style-image: url("chrome://mozapps/skin/extensions/extensionIcons.png");
-  width: 16px;
-  height: 16px;
-}
-
-.addonTypeExtension image {
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.addonTypeTheme image {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-vbox[typeName="status"][type="search-failure"],
-vbox[typeName="status"][type="recommended-failure"],
-vbox[typeName="status"][type="message-norecommended"],
-vbox[typeName="status"][type="message-nosearchresults"],
-vbox[typeName="status"][type="retrieve-search"],
-vbox[typeName="status"][type="retrieve-recommended"] {
-  margin-top: 2em;
-}
-
-vbox[typeName="status"][type="footer-recommended"],
-vbox[typeName="status"][type="footer-search"] {
-  margin-top: 1em;
-}
-
-vbox[typeName="status"][type="header-recommended"] {
-  font-size: 150%;
-  background: -moz-dialog;
-}
-
-#progressBox {
-  padding: 5px 5px 5px 5px;
-}
-
-#progressBox > hbox {
-  -moz-box-align: center;
-}
-
-/* View buttons resp. Progress box */
-#topBar {
-  border-bottom: 2px groove ThreeDFace;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-}
-
-#viewGroup {
-  -moz-padding-start: 10px;
-}
-
-#viewGroup > radio {
-  -moz-appearance: none;
-  margin: 0px 1px 0px 1px;
-  padding: 5px 3px 1px;
-  min-width: 4.5em;
-  list-style-image: url("chrome://mozapps/skin/extensions/viewButtons.png");
-}
-
-#viewGroup > radio:hover {
-  background-color: #E0E8F6;
-  color: black;
-}
-
-#viewGroup > radio[selected="true"] {
-  background-color: #C1D2EE;
-  color: black;
-}
-
-.viewButtonIcon {
-  width: 32px;
-  height: 32px;
-}
-
-radio#extensions-view {
-  -moz-image-region: rect(0px, 32px,  32px, 0px)
-}
-radio#extensions-view:hover, radio#extensions-view[selected="true"]  {
-  -moz-image-region: rect(32px, 32px,  64px, 0px)
-}
-
-radio#themes-view {
-  -moz-image-region: rect(0px, 64px,  32px, 32px)
-}
-radio#themes-view:hover, radio#themes-view[selected="true"]  {
-  -moz-image-region: rect(32px, 64px,  64px, 32px)
-}
-
-radio#locales-view {
-  -moz-image-region: rect(0px, 96px,  32px, 64px)
-}
-radio#locales-view:hover, radio#locales-view[selected="true"]  {
-  -moz-image-region: rect(32px, 96px,  64px, 64px)
-}
-
-radio#plugins-view {
-  -moz-image-region: rect(0px, 128px, 32px, 96px)
-}
-radio#plugins-view:hover, radio#plugins-view[selected="true"] {
-  -moz-image-region: rect(32px, 128px, 64px, 96px)
-}
-
-radio#updates-view {
-  -moz-image-region: rect(0px, 160px, 32px, 128px)
-}
-radio#updates-view:hover, radio#updates-view[selected="true"] {
-  -moz-image-region: rect(32px, 160px, 64px, 128px)
-}
-
-radio#installs-view {
-  -moz-image-region: rect(0px, 192px, 32px, 160px)
-}
-radio#installs-view:hover, radio#installs-view[selected="true"] {
-  -moz-image-region: rect(32px, 192px, 64px, 160px)
-}
-
-radio#search-view {
-  -moz-image-region: rect(0px, 224px, 32px, 192px)
-}
-radio#search-view:hover, radio#search-view[selected="true"] {
-  -moz-image-region: rect(32px, 224px, 64px, 192px)
-}
-
-/* Update view checkbox */
-.includeUpdate {
-  -moz-user-focus: none;
-}
-
-richlistitem[selected="true"] .includeUpdate {
-  -moz-user-focus: normal;
-}
-
-#infoDisplay {
-  overflow-y: auto;
-}
-
-#infoDisplay body {
-  padding: 5px;
-}
-
-#infoDisplay h1,
-#infoDisplay h2,
-#infoDisplay h3 {
-  text-align: left;
-  font-weight: bold;
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay h1 {
-  font-size: 150%;
-}
-
-#infoDisplay h2 {
-  font-size: 125%;
-}
-
-#infoDisplay h3 {
-  font-size: 100%;
-}
-
-#infoDisplay ol,
-#infoDisplay ul {
-  margin: 0 0 0.7em 0;
-}
-
-#infoDisplay li {
-  text-align: left;
-}
-
-#infoDisplay p {
-  text-align: justify;
-  margin: 0 0 0.7em 0;
-}
-
diff --git a/skin/manage-addons-fx11.css b/skin/manage-addons-fx11.css
deleted file mode 100644
index 7b24c4a..0000000
--- a/skin/manage-addons-fx11.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#install-from-url, #no-styles-install-from-url {
-	display: none;
-}
-/* Show buttons only when userstyle category is the active view */
-#list-view[type="userstyle"] :-moz-any(#install-from-url, #no-styles-install-from-url) {
-	display: -moz-box;
-}
diff --git a/skin/manage-addons-fx6.css b/skin/manage-addons-fx6.css
deleted file mode 100644
index 9e58dc6..0000000
--- a/skin/manage-addons-fx6.css
+++ /dev/null
@@ -1,3 +0,0 @@
-#category-userstyles {
-	display: none;
-}
diff --git a/skin/manage-addons-fx4.css b/skin/manage-addons.css
similarity index 70%
rename from skin/manage-addons-fx4.css
rename to skin/manage-addons.css
index 58cd0b0..ce6130e 100644
--- a/skin/manage-addons-fx4.css
+++ b/skin/manage-addons.css
@@ -1,4 +1,4 @@
-#category-userstyles > .category-icon, #category-userstyle > .category-icon {
+#category-userstyle > .category-icon {
 	list-style-image: url("chrome://stylish/skin/32.png");
 }
 richlistitem[type="userstyle"]:not([pending]) {
@@ -10,6 +10,13 @@ richlistitem[type="userstyle"] .control-container {
 richlistitem[type="userstyle"] [anonid="date-updated"] {
 	display: none;
 }
+richlistitem[type="userstyle"][pending="uninstall"][reportable="true"] .pending {
+	-moz-binding: url("chrome://stylish/content/addon.xbl#addon-uninstalled-buttons");
+}
+/* Remove existing spacer as we add our own */
+richlistitem[type="userstyle"][pending="uninstall"][reportable="true"] button[anonid="undo-btn"] + spacer {
+	display: none;
+}
 #menuitem_userstyle_edit {
 	display: none;
 }
@@ -53,3 +60,10 @@ richlistitem[type="userstyle"] [anonid="date-updated"] {
 #install-from-url:not([image=""]) .button-icon, #no-styles-install-from-url:not([image=""]) .button-icon {
 	display: -moz-box;
 }
+#install-from-url, #no-styles-install-from-url {
+	display: none;
+}
+/* Show buttons only when userstyle category is the active view */
+#list-view[type="userstyle"] :-moz-any(#install-from-url, #no-styles-install-from-url) {
+	display: -moz-box;
+}
diff --git a/skin/manage.css b/skin/manage.css
deleted file mode 100644
index 10dcc89..0000000
--- a/skin/manage.css
+++ /dev/null
@@ -1,54 +0,0 @@
-#styles {
-	overflow-x: auto;
-	background-color: -moz-field;
-	color: -moz-fieldtext;
-	border: 2px solid;
-	-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-	-moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-	-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-	-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-}
-#styles richlistitem {
-	-moz-binding: url('chrome://stylish/content/style.xbl#regular');
-}
-#styles richlistitem *[anonid="tags"], #styles richlistitem:not([update="true"]) *[anonid="actions"], #styles richlistitem *[anonid="type"], #styles richlistitem[is-disabled="true"] *[anonid="disable"], #styles richlistitem:not([is-disabled="true"]) *[anonid="enable"] {
-	display: none;
-}
-#styles richlistitem[selected="true"]:not([update="true"]):not([tags=""]) *[anonid="tags"] {
-	display: -moz-box;
-}
-#styles richlistitem[selected="true"] *[anonid="actions"] {
-	display: -moz-deck;
-}
-#styles richlistitem[filter-match="false"] {
-	display: none;
-}
-#styles:focus richlistitem[selected="true"] {
-	background-color: highlight;
-	color: highlighttext;
-	background-image: url(chrome://mozapps/skin/extensions/itemEnabledFader.png);
-}
-#new-style {
-	list-style-image: none !important;
-}
-#viewGroup #userstyles-view {
-	list-style-image: url('chrome://stylish/skin/32.png');
-}
-style-container {
-	-moz-binding: url('chrome://stylish/content/style.xbl#container');
-}
-#userstyles-heading {
-	-moz-box-align: center;
-}
-#no-styles-note {
-	margin-top: 3em;
-	margin-left: 5em;
-	margin-right: 5em;
-}
-
- at -moz-document url("chrome://stylish/content/manage-standalone.xul?sidebar") {
-	#styles {
-		margin-left: 0;
-		margin-right: 0;
-	}	
-}
diff --git a/skin/overlay.css b/skin/overlay.css
index 323c0f6..8f6fc9f 100644
--- a/skin/overlay.css
+++ b/skin/overlay.css
@@ -26,3 +26,7 @@ toolbar[iconsize="small"] #stylish-toolbar-button:not([styles-applied~="site"])
 #stylish-toolbar-button .toolbarbutton-menu-dropmarker {
 	display: none;
 }
+/* On Windows this is 17px, which makes it look weird when the dropmarker is gone */
+#nav-bar #stylish-toolbar-button > .toolbarbutton-icon {
+	-moz-padding-end: 7px !important;
+}
diff --git a/skin/style.css b/skin/style.css
deleted file mode 100644
index b4781d7..0000000
--- a/skin/style.css
+++ /dev/null
@@ -1,44 +0,0 @@
-*[anonid="name"] {
-	font-weight: bold;
-	margin-top: 0 !important;
-	margin-bottom: 0 !important;
-}
-*[anonid="tags"] {
-	font-size: smaller;
-	font-style: italic;
-}
-*[anonid="update-area"] hbox {
-	-moz-box-align: center;
-}
-*[closed="true"] *[anonid="children"] {
-	display: none;
-}
-*[anonid="heading"] {
-	background-color: -moz-dialog;
-	padding: 2px;
-	font-weight: bold;
-}
-*[anonid="twisty"] {
-	border: 0px !important;
-	margin: 0px !important;
-	padding: 0px !important;
-	min-width: 0px !important;
-	background-color: transparent;
-	-moz-appearance: none;
-	list-style-image: url("chrome://global/skin/tree/twisty-open.png");
-}
-*[anonid="twisty"] .button-icon {
-	margin-right: 5px;
-}
-*[closed="true"] *[anonid="twisty"] {
-	list-style-image: url("chrome://global/skin/tree/twisty-clsd.png");
-}
-image[anonid="status-icon"] {
-	list-style-image: url("chrome://stylish/skin/16.png");
-}
-*[is-disabled="true"] image[anonid="status-icon"] {
-	filter: url("chrome://mozapps/skin/extensions/extensions.svg#greyscale");
-}
-*[anonid="id"] {
-	display: none;
-}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/stylish.git



More information about the Pkg-mozext-commits mailing list