[Pkg-mozext-commits] [personasplus] 05/13: Restartless
David Prévot
taffit at moszumanska.debian.org
Sun Jun 12 01:06:19 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository personasplus.
commit c76df2863301d25f6140f67d86f3364ff78b7efc
Author: Baris Derin <baris at barisderin.com>
Date: Tue May 31 19:05:59 2016 +0300
Restartless
---
extension/bootstrap.js | 271 ++++++++++++
extension/chrome.manifest | 24 +-
extension/defaults/preferences/prefs.js | 3 +
extension/install.rdf | 2 +-
extension/locale/ar/personas.dtd | 5 -
extension/locale/ar/personas_bootstrap.properties | 5 +
extension/locale/ast-ES/personas.dtd | 5 -
.../locale/ast-ES/personas_bootstrap.properties | 5 +
extension/locale/bg-BG/personas.dtd | 5 -
.../locale/bg-BG/personas_bootstrap.properties | 5 +
extension/locale/cs-CZ/personas.dtd | 5 -
.../locale/cs-CZ/personas_bootstrap.properties | 5 +
extension/locale/da/personas.dtd | 5 -
extension/locale/da/personas_bootstrap.properties | 5 +
extension/locale/de-DE/personas.dtd | 5 -
.../locale/de-DE/personas_bootstrap.properties | 5 +
extension/locale/de/personas.dtd | 5 -
extension/locale/de/personas_bootstrap.properties | 5 +
extension/locale/el-GR/personas.dtd | 5 -
.../locale/el-GR/personas_bootstrap.properties | 5 +
extension/locale/el/personas.dtd | 5 -
extension/locale/el/personas_bootstrap.properties | 5 +
extension/locale/en-US/personas.dtd | 5 -
.../locale/en-US/personas_bootstrap.properties | 5 +
extension/locale/es-AR/personas.dtd | 5 -
.../locale/es-AR/personas_bootstrap.properties | 5 +
extension/locale/es-CL/personas.dtd | 5 -
.../locale/es-CL/personas_bootstrap.properties | 5 +
extension/locale/es-ES/personas.dtd | 5 -
.../locale/es-ES/personas_bootstrap.properties | 5 +
extension/locale/es-MX/personas.dtd | 5 -
.../locale/es-MX/personas_bootstrap.properties | 5 +
extension/locale/eu-ES/personas.dtd | 5 -
.../locale/eu-ES/personas_bootstrap.properties | 5 +
extension/locale/eu/personas.dtd | 5 -
extension/locale/eu/personas_bootstrap.properties | 5 +
extension/locale/fi-FI/personas.dtd | 5 -
.../locale/fi-FI/personas_bootstrap.properties | 5 +
extension/locale/fi/personas.dtd | 5 -
extension/locale/fi/personas_bootstrap.properties | 5 +
extension/locale/fr/personas.dtd | 5 -
extension/locale/fr/personas_bootstrap.properties | 5 +
extension/locale/fy-NL/personas.dtd | 5 -
.../locale/fy-NL/personas_bootstrap.properties | 5 +
extension/locale/ga-IE/personas.dtd | 5 -
.../locale/ga-IE/personas_bootstrap.properties | 5 +
extension/locale/gl-ES/personas.dtd | 5 -
.../locale/gl-ES/personas_bootstrap.properties | 5 +
extension/locale/he-IL/personas.dtd | 5 -
.../locale/he-IL/personas_bootstrap.properties | 5 +
extension/locale/hu-HU/personas.dtd | 5 -
.../locale/hu-HU/personas_bootstrap.properties | 5 +
extension/locale/it/personas.dtd | 5 -
extension/locale/it/personas_bootstrap.properties | 5 +
extension/locale/ja-JP-mac/personas.dtd | 5 -
.../locale/ja-JP-mac/personas_bootstrap.properties | 5 +
extension/locale/ja-JP/personas.dtd | 5 -
.../locale/ja-JP/personas_bootstrap.properties | 5 +
extension/locale/ja/personas.dtd | 5 -
extension/locale/ja/personas_bootstrap.properties | 5 +
extension/locale/ko-KR/personas.dtd | 5 -
.../locale/ko-KR/personas_bootstrap.properties | 5 +
extension/locale/lt-LT/personas.dtd | 5 -
.../locale/lt-LT/personas_bootstrap.properties | 5 +
extension/locale/lt/personas.dtd | 5 -
extension/locale/lt/personas_bootstrap.properties | 5 +
extension/locale/mk-MK/personas.dtd | 5 -
.../locale/mk-MK/personas_bootstrap.properties | 5 +
extension/locale/nl/personas.dtd | 5 -
extension/locale/nl/personas_bootstrap.properties | 5 +
extension/locale/pl-PL/personas.dtd | 5 -
.../locale/pl-PL/personas_bootstrap.properties | 5 +
extension/locale/pl/personas.dtd | 5 -
extension/locale/pl/personas_bootstrap.properties | 5 +
extension/locale/pt-BR/personas.dtd | 5 -
.../locale/pt-BR/personas_bootstrap.properties | 5 +
extension/locale/pt-PT/personas.dtd | 5 -
.../locale/pt-PT/personas_bootstrap.properties | 5 +
extension/locale/ro/personas.dtd | 5 -
extension/locale/ro/personas_bootstrap.properties | 5 +
extension/locale/ru-RU/personas.dtd | 5 -
.../locale/ru-RU/personas_bootstrap.properties | 5 +
extension/locale/si-LK/personas.dtd | 5 -
.../locale/si-LK/personas_bootstrap.properties | 5 +
extension/locale/sk-SK/personas.dtd | 5 -
.../locale/sk-SK/personas_bootstrap.properties | 5 +
extension/locale/sl-SI/personas.dtd | 5 -
.../locale/sl-SI/personas_bootstrap.properties | 5 +
extension/locale/sr-RS/personas.dtd | 5 -
.../locale/sr-RS/personas_bootstrap.properties | 5 +
extension/locale/sr/personas.dtd | 5 -
extension/locale/sr/personas_bootstrap.properties | 5 +
extension/locale/sv-SE/personas.dtd | 5 -
.../locale/sv-SE/personas_bootstrap.properties | 5 +
extension/locale/tr/personas.dtd | 5 -
extension/locale/tr/personas_bootstrap.properties | 5 +
extension/locale/uk-UA/personas.dtd | 5 -
.../locale/uk-UA/personas_bootstrap.properties | 5 +
extension/locale/vi-VN/personas.dtd | 5 -
.../locale/vi-VN/personas_bootstrap.properties | 5 +
extension/locale/vi/personas.dtd | 5 -
extension/locale/vi/personas_bootstrap.properties | 5 +
extension/locale/zh-CN/personas.dtd | 5 -
.../locale/zh-CN/personas_bootstrap.properties | 5 +
extension/locale/zh-TW/personas.dtd | 5 -
.../locale/zh-TW/personas_bootstrap.properties | 5 +
extension/{content => modules}/personas.js | 480 ++++++++++++++++-----
107 files changed, 920 insertions(+), 370 deletions(-)
diff --git a/extension/bootstrap.js b/extension/bootstrap.js
new file mode 100644
index 0000000..f39ff9d
--- /dev/null
+++ b/extension/bootstrap.js
@@ -0,0 +1,271 @@
+if (typeof Cc == "undefined")
+ var Cc = Components.classes;
+if (typeof Ci == "undefined")
+ var Ci = Components.interfaces;
+if (typeof Cr == "undefined")
+ var Cr = Components.results;
+if (typeof Cu == "undefined")
+ var Cu = Components.utils;
+
+Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
+var PersonaController = {}
+
+var WindowListener = {
+ setupBrowserUI: function(window, closebar) {
+ // Take any steps to add UI or anything to the browser window
+ // document.getElementById() etc. will work here
+ PersonaController.startUp(window);
+ },
+ tearDownBrowserUI: function(window) {
+ // Take any steps to remove UI or anything from the browser window
+ // document.getElementById() etc. will work here
+ PersonaController.shutDown(window);
+ },
+ // nsIWindowMediatorListener functions
+ onOpenWindow: function(xulWindow) {
+ // A new window has opened
+ var domWindow = xulWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIDOMWindow);
+ // Wait for it to finish loading
+ domWindow.addEventListener("load", function listener() {
+ domWindow.removeEventListener("load", listener, false);
+ // If this is a browser window then setup its UI
+ var windowtype = domWindow.document.documentElement.getAttribute("windowtype");
+ if (windowtype == "navigator:browser" || windowtype == "mail:3pane") WindowListener.setupBrowserUI(domWindow);
+ }, false);
+ },
+ onCloseWindow: function(xulWindow) {},
+ onWindowTitleChange: function(xulWindow, newTitle) {}
+};
+
+var PersonasPlusBootstrapAddon = {
+ prefsinstance: Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch),
+ STRINGS: [],
+ startup: function(data, reason) {
+ this.requestAddPrerequisites(data);
+ this.setDefaultPrefs();
+ this.setDefaultLocalizations();
+ Cu.import("resource://personas/modules/personas.js");
+ this.setupBrowserUI();
+ this.addWindowListener();
+ this.addAddonSkinCSS();
+ if (reason == ADDON_ENABLE) {
+ // modules that come with Firefox
+ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+ // LightweightThemeManager may not be not available (Firefox < 3.6 or Thunderbird)
+ try {
+ Cu.import("resource://gre/modules/LightweightThemeManager.jsm");
+ } catch (e) {
+ LightweightThemeManager = null;
+ }
+ try {
+ var lastselected0 = PersonasPlusBootstrapAddon.prefsinstance.getCharPref("extensions.personas.lastselected0");
+ LightweightThemeManager.currentTheme = JSON.parse(lastselected0);
+ } catch (e) {}
+ }
+ },
+ shutdown: function(data, reason) {
+ // When the application is shutting down we normally don't have to clean
+ // up any UI changes made
+ if (reason == APP_SHUTDOWN) return;
+ this.removeDefaultLocalizations();
+ this.tearBrowserUI();
+ this.removeWindowListener();
+ this.removeAddonSkinCSS();
+ Cu.unload("resource://personas/modules/personas.js");
+ this.requestRemovePrerequisites(data);
+ if (reason == ADDON_DISABLE) {
+ // modules that come with Firefox
+ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+ // LightweightThemeManager may not be not available (Firefox < 3.6 or Thunderbird)
+ try {
+ Cu.import("resource://gre/modules/LightweightThemeManager.jsm");
+ } catch (e) {
+ LightweightThemeManager = null;
+ }
+ try {
+ LightweightThemeManager.forgetUsedTheme(LightweightThemeManager.currentTheme.id);
+ } catch (e) {
+ try {
+ LightweightThemeManager.currentTheme = null;
+ } catch (e) {}
+ }
+ }
+ },
+ requestAddPrerequisites: function(data) {
+ this.addResourceProtocol(data);
+ this.addChromeProtocol(data);
+ },
+ requestRemovePrerequisites: function(data) {
+ this.removeResourceProtocol(data);
+ this.removeChromeProtocol(data);
+ },
+ addResourceProtocol: function(data) {
+ var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+ var rh = ios.getProtocolHandler("resource").QueryInterface(Components.interfaces.nsIResProtocolHandler);
+ var nfu = ios.newFileURI(data.installPath);
+ var isDir = data.installPath.isDirectory();
+ if (isDir) {
+ nfu = ios.newURI(nfu.spec + "/", null, null);
+ } else {
+ nfu = ios.newURI("jar:" + nfu.spec + "!/", null, null);
+ }
+ //Note for Validator: This is safe and used to register resource protocol for our add-on, i.e. resource://personas/
+ rh.setSubstitution("personas", nfu);
+ },
+ removeResourceProtocol: function(data) {
+ var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+ var r = ios.getProtocolHandler("resource").QueryInterface(Components.interfaces.nsIResProtocolHandler);
+ r.setSubstitution("personas", null);
+ },
+ addChromeProtocol: function(data) {
+ if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0 && Services.vc.compare(Services.appinfo.platformVersion, "8.0") >= 0)
+ Components.manager.addBootstrappedManifestLocation(data.installPath);
+ },
+ removeChromeProtocol: function(data) {
+ if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0 && Services.vc.compare(Services.appinfo.platformVersion, "8.0") >= 0)
+ Components.manager.removeBootstrappedManifestLocation(data.installPath);
+ },
+ setDefaultPrefs: function() {
+ function setDefaultPrefs(name, value) {
+ function setPrefs(branch, name, value) {
+ if (typeof value == "string") {
+ var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
+ str.data = value;
+ branch = branch ? branch : Services.prefs;
+ branch.setComplexValue(name, Components.interfaces.nsISupportsString, str);
+ } else if (typeof value == "number") {
+ branch.setIntPref(name, value);
+ } else if (typeof value == "boolean") {
+ branch.setBoolPref(name, value);
+ }
+ }
+ var defaultBranch = Services.prefs.getDefaultBranch(null);
+ setPrefs(defaultBranch, name, value);
+ }
+ Services.scriptloader.loadSubScript(this.getPrefsJS(), { pref: setDefaultPrefs });
+ },
+ getPrefsJS: function() {
+ return "resource://personas/defaults/preferences/prefs.js";
+ },
+ setDefaultLocalizations: function() {
+ Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService).flushBundles();
+ this.STRINGS["personas.properties"] = Components.classes["@mozilla.org/intl/stringbundle;1"]
+ .getService(Components.interfaces.nsIStringBundleService).createBundle("chrome://personas/locale/personas.properties");
+ this.STRINGS["personas_bootstrap.properties"] = Components.classes["@mozilla.org/intl/stringbundle;1"]
+ .getService(Components.interfaces.nsIStringBundleService).createBundle("chrome://personas/locale/personas_bootstrap.properties");
+ },
+ removeDefaultLocalizations: function() {
+ this.STRINGS = [];
+ Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService).flushBundles();
+ },
+ setupBrowserUI: function() {
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
+ getService(Ci.nsIWindowMediator);
+ // Get the list of browser windows already open
+ var windows = wm.getEnumerator("navigator:browser");
+ while (windows.hasMoreElements()) {
+ var domWindow = windows.getNext().QueryInterface(Ci.nsIDOMWindow);
+ WindowListener.setupBrowserUI(domWindow, false);
+ }
+ },
+ tearBrowserUI: function() {
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
+ getService(Ci.nsIWindowMediator);
+ // Get the list of browser windows already open
+ var windows = wm.getEnumerator("navigator:browser");
+ while (windows.hasMoreElements()) {
+ var domWindow = windows.getNext().QueryInterface(Ci.nsIDOMWindow);
+ WindowListener.tearDownBrowserUI(domWindow);
+ }
+ },
+ addWindowListener: function() {
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
+ getService(Ci.nsIWindowMediator);
+ // Wait for any new browser windows to open
+ wm.addListener(WindowListener);
+ },
+ removeWindowListener: function() {
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
+ getService(Ci.nsIWindowMediator);
+ // Stop listening for any new browser windows to open
+ wm.removeListener(WindowListener);
+ },
+ registerStyle: function(url) {
+ var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
+ .getService(Components.interfaces.nsIStyleSheetService);
+ var ios = Components.classes["@mozilla.org/network/io-service;1"]
+ .getService(Components.interfaces.nsIIOService);
+ var uri = ios.newURI(url, null, null);
+ if (!sss.sheetRegistered(uri, sss.AUTHOR_SHEET))
+ sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
+ },
+ unregisterStyle: function(url) {
+ var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
+ .getService(Components.interfaces.nsIStyleSheetService);
+ var ios = Components.classes["@mozilla.org/network/io-service;1"]
+ .getService(Components.interfaces.nsIIOService);
+ var u = ios.newURI(url, null, null);
+ if (sss.sheetRegistered(u, sss.AUTHOR_SHEET))
+ //Note for Validator: This is safe and used to register our add-on skin, i.e. chrome://personas/skin/personas.css
+ sss.unregisterSheet(u, sss.AUTHOR_SHEET);
+ },
+ addAddonSkinCSS: function() {
+ this.registerStyle(this.getContentPersonasCSS());
+ this.registerStyle(this.getSkinPersonasCSS());
+ this.registerStyle(this.getSkinPersonasCSS());
+ },
+ removeAddonSkinCSS: function() {
+ this.unregisterStyle(this.getContentPersonasCSS());
+ this.unregisterStyle(this.getSkinPersonasCSS());
+ this.unregisterStyle(this.getSkinPersonasCSS());
+ },
+ getContentPersonasCSS: function() {
+ return "chrome://personas/content/personas.css";
+ },
+ getSkinPersonasCSS: function() {
+ return "chrome://personas/skin/personas.css";
+ },
+ getContentOverlayCSS: function() {
+ return "chrome://personas/content/overlay.css";
+ }
+}
+
+function install(data) {}
+
+function uninstall(data, reason) {
+ if (reason != ADDON_UNINSTALL) return;
+ Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService).getBranch("extensions.personas.").deleteBranch("");
+ Components.classes["@mozilla.org/intl/stringbundle;1"]
+ .getService(Components.interfaces.nsIStringBundleService).flushBundles();
+ const Cc = Components.classes;
+ const Ci = Components.interfaces;
+ const Cr = Components.results;
+ const Cu = Components.utils;
+ // modules that come with Firefox
+ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+ // LightweightThemeManager may not be not available (Firefox < 3.6 or Thunderbird)
+ try {
+ Cu.import("resource://gre/modules/LightweightThemeManager.jsm");
+ } catch (e) {
+ LightweightThemeManager = null;
+ }
+ try {
+ LightweightThemeManager.forgetUsedTheme(LightweightThemeManager.currentTheme.id);
+ } catch (e) {
+ try {
+ LightweightThemeManager.currentTheme = null;
+ } catch (e) {}
+ }
+}
+
+function startup(data, reason) {
+ PersonasPlusBootstrapAddon.startup(data, reason);
+}
+
+function shutdown(data, reason) {
+ PersonasPlusBootstrapAddon.shutdown(data, reason);
+}
diff --git a/extension/chrome.manifest b/extension/chrome.manifest
index 2c6aa34..fcec656 100644
--- a/extension/chrome.manifest
+++ b/extension/chrome.manifest
@@ -1,11 +1,3 @@
-overlay chrome://browser/content/browser.xul chrome://personas/content/personas.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-overlay chrome://messenger/content/messenger.xul chrome://personas/content/messenger.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
-
-# Register a resource: protocol alias so we can refer to files in this package
-# with URLs of the form resource://personas/path/to/file,
-# f.e. resource://personas/modules/service.js.
-resource personas ./
-
content personas content/
# Register skins for various combinations of application (Firefox, Thunderbird),
@@ -27,12 +19,6 @@ skin personas classic/1.0 skin/winxp/thunderbird/ application={3550f703-e582-
skin personas classic/1.0 skin/vista/thunderbird/ application={3550f703-e582-4d05-9a08-453d09bdfdc6} os=WINNT osversion>=6
skin personas classic/1.0 skin/mac/thunderbird/ application={3550f703-e582-4d05-9a08-453d09bdfdc6} os=Darwin
-# Choose default stylesheet for customPersonaEditor.xul according to application (Firefox, Thunderbird).
-style chrome://personas/content/customPersonaEditor.xul chrome://browser/skin/ application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-style chrome://personas/content/customPersonaEditor.xul chrome://messenger/skin/ application={3550f703-e582-4d05-9a08-453d09bdfdc6}
-
-style chrome://global/content/customizeToolbar.xul chrome://personas/content/personas.css application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-
# localizations in alphabetical order
#
# Note: localizations sometimes become out of date, and we haven't quite
@@ -96,3 +82,13 @@ locale personas uk-UA locale/uk-UA/
locale personas vi locale/vi/
locale personas zh-CN locale/zh-CN/
locale personas zh-TW locale/zh-TW/
+locale personas ar locale/ar/
+locale personas ast-ES locale/ast-ES/
+locale personas de-DE locale/de-DE/
+locale personas el-GR locale/el-GR/
+locale personas eu-ES locale/eu-ES/
+locale personas fi-FI locale/fi-FI/
+locale personas pt-PT locale/pt-PT/
+locale personas sl-SI locale/sl-SI/
+locale personas sr-RS locale/sr-RS/
+locale personas vi-VN locale/vi-VN/
diff --git a/extension/defaults/preferences/prefs.js b/extension/defaults/preferences/prefs.js
index e8cc105..c3c71df 100644
--- a/extension/defaults/preferences/prefs.js
+++ b/extension/defaults/preferences/prefs.js
@@ -121,3 +121,6 @@ pref("PersonaService.logging.dump", "None");
// Whether or not the toolbar button has been installed once (Firefox 4 support)
pref("extensions.personas.toolbarButtonInstalled", false);
+
+pref("extensions.personas.tbinsert",true);
+pref("extensions.personas.tbplaced",false);
diff --git a/extension/install.rdf b/extension/install.rdf
index fdd4b2f..135cee7 100644
--- a/extension/install.rdf
+++ b/extension/install.rdf
@@ -6,7 +6,7 @@
<em:name>Personas Plus</em:name>
<em:version>1.7.7</em:version>
<em:description>Your Firefox, your style. Easy-to-change themes.</em:description>
-
+ <em:bootstrap>true</em:bootstrap>
<em:creator>Chris Beard</em:creator>
<em:contributor>Myk Melez</em:contributor>
<em:contributor>Huang Yaoquan</em:contributor>
diff --git a/extension/locale/ar/personas.dtd b/extension/locale/ar/personas.dtd
index 0464b0d..1f0f018 100644
--- a/extension/locale/ar/personas.dtd
+++ b/extension/locale/ar/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "افتراضي">
-<!ENTITY preferences.label "التفضيلات">
<!ENTITY viewDirectory.label "View Gallery">
<!ENTITY customPersona.label "Custom Persona">
<!ENTITY customName.label "الاسم:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "موافق">
<!ENTITY contextHomePage.label "الصفحة الرئيسية">
<!ENTITY contextPreferences.label "الإعدادات">
-<!ENTITY contextEdit.label "عدّل">
-<!ENTITY contextApply.label "طبّق">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/ar/personas_bootstrap.properties b/extension/locale/ar/personas_bootstrap.properties
new file mode 100644
index 0000000..06ded03
--- /dev/null
+++ b/extension/locale/ar/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= افتراضي
+preferences.label= التفضيلات
+contextEdit.label= عدّل
+contextApply.label= طبّق
diff --git a/extension/locale/ast-ES/personas.dtd b/extension/locale/ast-ES/personas.dtd
index aa56caf..e64d8af 100644
--- a/extension/locale/ast-ES/personas.dtd
+++ b/extension/locale/ast-ES/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predetermináu">
-<!ENTITY preferences.label "Preferencies">
<!ENTITY viewDirectory.label "Ver Gallería">
<!ENTITY customPersona.label "Personalizar Persona">
<!ENTITY customName.label "Nome:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Páxina d'aniciu">
<!ENTITY contextPreferences.label "Axustes">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Usar Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Usar esta Persona">
diff --git a/extension/locale/ast-ES/personas_bootstrap.properties b/extension/locale/ast-ES/personas_bootstrap.properties
new file mode 100644
index 0000000..7b0677d
--- /dev/null
+++ b/extension/locale/ast-ES/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Predetermináu
+preferences.label= Preferencies
+contextEdit.label= Editar
+contextApply.label= Aplicar
diff --git a/extension/locale/bg-BG/personas.dtd b/extension/locale/bg-BG/personas.dtd
index 5882d24..8143549 100644
--- a/extension/locale/bg-BG/personas.dtd
+++ b/extension/locale/bg-BG/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Персони">
-<!ENTITY useDefaultPersona.label "Стандартна">
-<!ENTITY preferences.label "Настройки">
<!ENTITY viewDirectory.label "Преглед на списъка">
<!ENTITY customPersona.label "Лична персона">
<!ENTITY customName.label "Наименование:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "ОК">
<!ENTITY contextHomePage.label "Домашна страница">
<!ENTITY contextPreferences.label "Настройки">
-<!ENTITY contextEdit.label "Редакция">
-<!ENTITY contextApply.label "Прилагане">
<!ENTITY usePersona.label "Използване на Персона">
<!ENTITY usePersona.accesskey "П">
<!ENTITY usePersona.tooltip "Използване на тази Персона">
diff --git a/extension/locale/bg-BG/personas_bootstrap.properties b/extension/locale/bg-BG/personas_bootstrap.properties
new file mode 100755
index 0000000..e19b9a0
--- /dev/null
+++ b/extension/locale/bg-BG/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Персони
+useDefaultPersona.label = Стандартна
+preferences.label = Настройки
+contextEdit.label = Редакция
+contextApply.label = Прилагане
diff --git a/extension/locale/cs-CZ/personas.dtd b/extension/locale/cs-CZ/personas.dtd
index 8deb468..cb04260 100644
--- a/extension/locale/cs-CZ/personas.dtd
+++ b/extension/locale/cs-CZ/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Výchozí">
-<!ENTITY preferences.label "Nastavení...">
<!ENTITY viewDirectory.label "Zobrazit galerii...">
<!ENTITY customPersona.label "Vlastní">
<!ENTITY customName.label "Název:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Domovská stránka">
<!ENTITY contextPreferences.label "Nastavení">
-<!ENTITY contextEdit.label "Upravit">
-<!ENTITY contextApply.label "Použít">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/cs-CZ/personas_bootstrap.properties b/extension/locale/cs-CZ/personas_bootstrap.properties
new file mode 100755
index 0000000..cb79557
--- /dev/null
+++ b/extension/locale/cs-CZ/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Výchozí
+preferences.label = Nastavení...
+contextEdit.label = Upravit
+contextApply.label = Použít
diff --git a/extension/locale/da/personas.dtd b/extension/locale/da/personas.dtd
index fff3650..7e6f958 100644
--- a/extension/locale/da/personas.dtd
+++ b/extension/locale/da/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standard">
-<!ENTITY preferences.label "Indstillinger">
<!ENTITY viewDirectory.label "Vis galleri">
<!ENTITY customPersona.label "Tilpas Persona">
<!ENTITY customName.label "Navn:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Hjemmeside">
<!ENTITY contextPreferences.label "Indstillinger">
-<!ENTITY contextEdit.label "Rediger">
-<!ENTITY contextApply.label "Anvend">
<!ENTITY usePersona.label "Brug Persona">
<!ENTITY usePersona.accesskey "u">
<!ENTITY usePersona.tooltip "Brug denne Persona">
diff --git a/extension/locale/da/personas_bootstrap.properties b/extension/locale/da/personas_bootstrap.properties
new file mode 100755
index 0000000..e8a5ce1
--- /dev/null
+++ b/extension/locale/da/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Standard
+preferences.label = Indstillinger
+contextEdit.label = Rediger
+contextApply.label = Anvend
diff --git a/extension/locale/de-DE/personas.dtd b/extension/locale/de-DE/personas.dtd
index ccdc8c0..0623494 100644
--- a/extension/locale/de-DE/personas.dtd
+++ b/extension/locale/de-DE/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standard">
-<!ENTITY preferences.label "Einstellungen...">
<!ENTITY viewDirectory.label "Personas im Internet...">
<!ENTITY customPersona.label "Persona anpassen">
<!ENTITY customName.label "Name:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Internetseite">
<!ENTITY contextPreferences.label "Einstellungen">
-<!ENTITY contextEdit.label "Bearbeiten">
-<!ENTITY contextApply.label "Anwenden">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/de-DE/personas_bootstrap.properties b/extension/locale/de-DE/personas_bootstrap.properties
new file mode 100644
index 0000000..f48be8d
--- /dev/null
+++ b/extension/locale/de-DE/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Standard
+preferences.label= Einstellungen...
+contextEdit.label= Bearbeiten
+contextApply.label= Anwenden
diff --git a/extension/locale/de/personas.dtd b/extension/locale/de/personas.dtd
index f13ecbb..6781d42 100644
--- a/extension/locale/de/personas.dtd
+++ b/extension/locale/de/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standard">
-<!ENTITY preferences.label "Einstellungen...">
<!ENTITY viewDirectory.label "Personas-Galerie aufrufen...">
<!ENTITY customPersona.label "Benutzerdefiniertes Persona">
<!ENTITY customName.label "Name:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Internetseite">
<!ENTITY contextPreferences.label "Einstellungen">
-<!ENTITY contextEdit.label "Bearbeiten">
-<!ENTITY contextApply.label "Anwenden">
<!ENTITY usePersona.label "Persona verwenden">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Dieses Persona verwenden">
diff --git a/extension/locale/de/personas_bootstrap.properties b/extension/locale/de/personas_bootstrap.properties
new file mode 100755
index 0000000..992919b
--- /dev/null
+++ b/extension/locale/de/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Standard
+preferences.label = Einstellungen...
+contextEdit.label = Bearbeiten
+contextApply.label = Anwenden
diff --git a/extension/locale/el-GR/personas.dtd b/extension/locale/el-GR/personas.dtd
index b276f0e..5e9e77b 100644
--- a/extension/locale/el-GR/personas.dtd
+++ b/extension/locale/el-GR/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Αρχική">
-<!ENTITY preferences.label "Προτιμήσεις">
<!ENTITY viewDirectory.label "Εμφάνιση συλλογής">
<!ENTITY customPersona.label "Προσαρμοσμένο Persona">
<!ENTITY customName.label "Όνομα:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Εντάξει">
<!ENTITY contextHomePage.label "Αρχική σελίδα">
<!ENTITY contextPreferences.label "Ρυθμίσεις">
-<!ENTITY contextEdit.label "Επεξεργασία">
-<!ENTITY contextApply.label "Εφαρμογή">
<!ENTITY usePersona.label "Χρήση Persona">
<!ENTITY usePersona.accesskey "χ">
<!ENTITY usePersona.tooltip "Χρήση αυτού του Persona">
diff --git a/extension/locale/el-GR/personas_bootstrap.properties b/extension/locale/el-GR/personas_bootstrap.properties
new file mode 100644
index 0000000..a678b89
--- /dev/null
+++ b/extension/locale/el-GR/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Αρχική
+preferences.label= Προτιμήσεις
+contextEdit.label= Επεξεργασία
+contextApply.label= Εφαρμογή
diff --git a/extension/locale/el/personas.dtd b/extension/locale/el/personas.dtd
index b276f0e..5e9e77b 100644
--- a/extension/locale/el/personas.dtd
+++ b/extension/locale/el/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Αρχική">
-<!ENTITY preferences.label "Προτιμήσεις">
<!ENTITY viewDirectory.label "Εμφάνιση συλλογής">
<!ENTITY customPersona.label "Προσαρμοσμένο Persona">
<!ENTITY customName.label "Όνομα:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Εντάξει">
<!ENTITY contextHomePage.label "Αρχική σελίδα">
<!ENTITY contextPreferences.label "Ρυθμίσεις">
-<!ENTITY contextEdit.label "Επεξεργασία">
-<!ENTITY contextApply.label "Εφαρμογή">
<!ENTITY usePersona.label "Χρήση Persona">
<!ENTITY usePersona.accesskey "χ">
<!ENTITY usePersona.tooltip "Χρήση αυτού του Persona">
diff --git a/extension/locale/el/personas_bootstrap.properties b/extension/locale/el/personas_bootstrap.properties
new file mode 100755
index 0000000..7f51571
--- /dev/null
+++ b/extension/locale/el/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Αρχική
+preferences.label = Προτιμήσεις
+contextEdit.label = Επεξεργασία
+contextApply.label = Εφαρμογή
diff --git a/extension/locale/en-US/personas.dtd b/extension/locale/en-US/personas.dtd
index 6273944..e8541d8 100644
--- a/extension/locale/en-US/personas.dtd
+++ b/extension/locale/en-US/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Default">
-<!ENTITY preferences.label "Preferences">
<!ENTITY viewDirectory.label "View Gallery">
<!ENTITY customPersona.label "Custom Persona">
<!ENTITY customName.label "Name:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Home Page">
<!ENTITY contextPreferences.label "Settings">
-<!ENTITY contextEdit.label "Edit">
-<!ENTITY contextApply.label "Apply">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/en-US/personas_bootstrap.properties b/extension/locale/en-US/personas_bootstrap.properties
new file mode 100755
index 0000000..6f4d989
--- /dev/null
+++ b/extension/locale/en-US/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Default
+preferences.label= Preferences
+contextEdit.label= Edit
+contextApply.label= Apply
diff --git a/extension/locale/es-AR/personas.dtd b/extension/locale/es-AR/personas.dtd
index a80c122..c52c95c 100644
--- a/extension/locale/es-AR/personas.dtd
+++ b/extension/locale/es-AR/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predeterminada">
-<!ENTITY preferences.label "Preferencias">
<!ENTITY viewDirectory.label "Ver galería">
<!ENTITY customPersona.label "Mi persona">
<!ENTITY customName.label "Nombre:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Aceptar">
<!ENTITY contextHomePage.label "Página principal">
<!ENTITY contextPreferences.label "Configuración">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Usar persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Usar esta persona">
diff --git a/extension/locale/es-AR/personas_bootstrap.properties b/extension/locale/es-AR/personas_bootstrap.properties
new file mode 100755
index 0000000..fc1e453
--- /dev/null
+++ b/extension/locale/es-AR/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predeterminada
+preferences.label = Preferencias
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/es-CL/personas.dtd b/extension/locale/es-CL/personas.dtd
index 0964bcc..0a63ca1 100644
--- a/extension/locale/es-CL/personas.dtd
+++ b/extension/locale/es-CL/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Por defecto">
-<!ENTITY preferences.label "Preferencias...">
<!ENTITY viewDirectory.label "Ver directorio...">
<!ENTITY customPersona.label "Persona personalizado">
<!ENTITY customName.label "Nombre:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Aceptar">
<!ENTITY contextHomePage.label "Página de inicio">
<!ENTITY contextPreferences.label "Configuraciones">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Usar Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Usar esta Persona">
diff --git a/extension/locale/es-CL/personas_bootstrap.properties b/extension/locale/es-CL/personas_bootstrap.properties
new file mode 100755
index 0000000..4383d9d
--- /dev/null
+++ b/extension/locale/es-CL/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Por defecto
+preferences.label = Preferencias...
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/es-ES/personas.dtd b/extension/locale/es-ES/personas.dtd
index 2e28d28..2163435 100644
--- a/extension/locale/es-ES/personas.dtd
+++ b/extension/locale/es-ES/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predeterminado">
-<!ENTITY preferences.label "Preferencias">
<!ENTITY viewDirectory.label "Ver Galería">
<!ENTITY customPersona.label "Persona personalizada">
<!ENTITY customName.label "Nombre:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Página de inicio">
<!ENTITY contextPreferences.label "Conguraciones">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Utilizar Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Utilice esta Persona">
diff --git a/extension/locale/es-ES/personas_bootstrap.properties b/extension/locale/es-ES/personas_bootstrap.properties
new file mode 100755
index 0000000..0c888b9
--- /dev/null
+++ b/extension/locale/es-ES/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predeterminado
+preferences.label = Preferencias
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/es-MX/personas.dtd b/extension/locale/es-MX/personas.dtd
index 9f034eb..c1ae64a 100644
--- a/extension/locale/es-MX/personas.dtd
+++ b/extension/locale/es-MX/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predeterminado">
-<!ENTITY preferences.label "Preferencias">
<!ENTITY viewDirectory.label "Ver Galería">
<!ENTITY customPersona.label "Persona Personalizado">
<!ENTITY customName.label "Nombre:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Página de Inicio">
<!ENTITY contextPreferences.label "Configuraciones">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Usar Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Usar esta Persona">
diff --git a/extension/locale/es-MX/personas_bootstrap.properties b/extension/locale/es-MX/personas_bootstrap.properties
new file mode 100755
index 0000000..0c888b9
--- /dev/null
+++ b/extension/locale/es-MX/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predeterminado
+preferences.label = Preferencias
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/eu-ES/personas.dtd b/extension/locale/eu-ES/personas.dtd
index 0d8b9af..611d4cc 100644
--- a/extension/locale/eu-ES/personas.dtd
+++ b/extension/locale/eu-ES/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Lehentsia">
-<!ENTITY preferences.label "Hobespenak…">
<!ENTITY viewDirectory.label "Ikusi galeria…">
<!ENTITY customPersona.label "Pertsonalizatutako Persona">
<!ENTITY customName.label "Izena:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Ados">
<!ENTITY contextHomePage.label "Etxe orrialdea">
<!ENTITY contextPreferences.label "Ezarpenak">
-<!ENTITY contextEdit.label "Editatu">
-<!ENTITY contextApply.label "Ezarri">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/eu-ES/personas_bootstrap.properties b/extension/locale/eu-ES/personas_bootstrap.properties
new file mode 100644
index 0000000..4c7ff31
--- /dev/null
+++ b/extension/locale/eu-ES/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Lehentsia
+preferences.label= Hobespenak…
+contextEdit.label= Editatu
+contextApply.label= Ezarri
diff --git a/extension/locale/eu/personas.dtd b/extension/locale/eu/personas.dtd
index 0d8b9af..611d4cc 100644
--- a/extension/locale/eu/personas.dtd
+++ b/extension/locale/eu/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Lehentsia">
-<!ENTITY preferences.label "Hobespenak…">
<!ENTITY viewDirectory.label "Ikusi galeria…">
<!ENTITY customPersona.label "Pertsonalizatutako Persona">
<!ENTITY customName.label "Izena:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Ados">
<!ENTITY contextHomePage.label "Etxe orrialdea">
<!ENTITY contextPreferences.label "Ezarpenak">
-<!ENTITY contextEdit.label "Editatu">
-<!ENTITY contextApply.label "Ezarri">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/eu/personas_bootstrap.properties b/extension/locale/eu/personas_bootstrap.properties
new file mode 100755
index 0000000..851e4ce
--- /dev/null
+++ b/extension/locale/eu/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Lehentsia
+preferences.label = Hobespenak…
+contextEdit.label = Editatu
+contextApply.label = Ezarri
diff --git a/extension/locale/fi-FI/personas.dtd b/extension/locale/fi-FI/personas.dtd
index c36ffa0..7b1be11 100644
--- a/extension/locale/fi-FI/personas.dtd
+++ b/extension/locale/fi-FI/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Oletus">
-<!ENTITY preferences.label "Asetukset…">
<!ENTITY viewDirectory.label "Siirry galleriaan">
<!ENTITY customPersona.label "Mukautettu Persona">
<!ENTITY customName.label "Nimi:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Kotisivu">
<!ENTITY contextPreferences.label "Asetukset">
-<!ENTITY contextEdit.label "Muokkaa">
-<!ENTITY contextApply.label "Käytä">
<!ENTITY usePersona.label "Käytä Personaa">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Käytä tätä Personaa">
diff --git a/extension/locale/fi-FI/personas_bootstrap.properties b/extension/locale/fi-FI/personas_bootstrap.properties
new file mode 100644
index 0000000..16f5b67
--- /dev/null
+++ b/extension/locale/fi-FI/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Oletus
+preferences.label= Asetukset…
+contextEdit.label= Muokkaa
+contextApply.label= Käytä
diff --git a/extension/locale/fi/personas.dtd b/extension/locale/fi/personas.dtd
index c36ffa0..7b1be11 100644
--- a/extension/locale/fi/personas.dtd
+++ b/extension/locale/fi/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Oletus">
-<!ENTITY preferences.label "Asetukset…">
<!ENTITY viewDirectory.label "Siirry galleriaan">
<!ENTITY customPersona.label "Mukautettu Persona">
<!ENTITY customName.label "Nimi:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Kotisivu">
<!ENTITY contextPreferences.label "Asetukset">
-<!ENTITY contextEdit.label "Muokkaa">
-<!ENTITY contextApply.label "Käytä">
<!ENTITY usePersona.label "Käytä Personaa">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Käytä tätä Personaa">
diff --git a/extension/locale/fi/personas_bootstrap.properties b/extension/locale/fi/personas_bootstrap.properties
new file mode 100755
index 0000000..06ad8f3
--- /dev/null
+++ b/extension/locale/fi/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Oletus
+preferences.label = Asetukset…
+contextEdit.label = Muokkaa
+contextApply.label = Käytä
diff --git a/extension/locale/fr/personas.dtd b/extension/locale/fr/personas.dtd
index 207dfce..d9b6e09 100644
--- a/extension/locale/fr/personas.dtd
+++ b/extension/locale/fr/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Thème par défaut">
-<!ENTITY preferences.label "Préférences…">
<!ENTITY viewDirectory.label "Afficher la galerie…">
<!ENTITY customPersona.label "Persona personnalisé">
<!ENTITY customName.label "Nom :">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Page Web">
<!ENTITY contextPreferences.label "Paramètres">
-<!ENTITY contextEdit.label "Éditer">
-<!ENTITY contextApply.label "Appliquer">
<!ENTITY usePersona.label "Porter le Persona">
<!ENTITY usePersona.accesskey "p">
<!ENTITY usePersona.tooltip "Utiliser ce Persona">
diff --git a/extension/locale/fr/personas_bootstrap.properties b/extension/locale/fr/personas_bootstrap.properties
new file mode 100755
index 0000000..92bd08d
--- /dev/null
+++ b/extension/locale/fr/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Thème par défaut
+preferences.label = Préférences…
+contextEdit.label = Éditer
+contextApply.label = Appliquer
diff --git a/extension/locale/fy-NL/personas.dtd b/extension/locale/fy-NL/personas.dtd
index c056ea4..d8c9fbc 100644
--- a/extension/locale/fy-NL/personas.dtd
+++ b/extension/locale/fy-NL/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standert">
-<!ENTITY preferences.label "Foarkarren...">
<!ENTITY viewDirectory.label "Toan map...">
<!ENTITY customPersona.label "Eigen Persona">
<!ENTITY customName.label "Namme:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Thússide">
<!ENTITY contextPreferences.label "Ynstellings">
-<!ENTITY contextEdit.label "Bewurkje">
-<!ENTITY contextApply.label "Tapasse">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/fy-NL/personas_bootstrap.properties b/extension/locale/fy-NL/personas_bootstrap.properties
new file mode 100755
index 0000000..83740ba
--- /dev/null
+++ b/extension/locale/fy-NL/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Standert
+preferences.label = Foarkarren...
+contextEdit.label = Bewurkje
+contextApply.label = Tapasse
diff --git a/extension/locale/ga-IE/personas.dtd b/extension/locale/ga-IE/personas.dtd
index 15b9a92..1854f61 100644
--- a/extension/locale/ga-IE/personas.dtd
+++ b/extension/locale/ga-IE/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Pearsantachtaí">
-<!ENTITY useDefaultPersona.label "Réamhshocrú">
-<!ENTITY preferences.label "Sainroghanna">
<!ENTITY viewDirectory.label "Féach ar an nGailearaí">
<!ENTITY customPersona.label "Pearsantacht Shaincheaptha">
<!ENTITY customName.label "Ainm:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Leathanach Baile">
<!ENTITY contextPreferences.label "Socruithe">
-<!ENTITY contextEdit.label "Eagar">
-<!ENTITY contextApply.label "Cuir i bhFeidhm">
<!ENTITY usePersona.label "Úsáid Pearsantacht">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Úsáid an Phearsantacht seo">
diff --git a/extension/locale/ga-IE/personas_bootstrap.properties b/extension/locale/ga-IE/personas_bootstrap.properties
new file mode 100755
index 0000000..2fbe6b5
--- /dev/null
+++ b/extension/locale/ga-IE/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Pearsantachtaí
+useDefaultPersona.label = Réamhshocrú
+preferences.label = Sainroghanna
+contextEdit.label = Eagar
+contextApply.label = Cuir i bhFeidhm
diff --git a/extension/locale/gl-ES/personas.dtd b/extension/locale/gl-ES/personas.dtd
index 4b7f5bd..51a9775 100644
--- a/extension/locale/gl-ES/personas.dtd
+++ b/extension/locale/gl-ES/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predeterminado">
-<!ENTITY preferences.label "Preferencias...">
<!ENTITY viewDirectory.label "Ver a galería...">
<!ENTITY customPersona.label "Personalizar Persona">
<!ENTITY customName.label "Nome:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Aceptar">
<!ENTITY contextHomePage.label "Páxina inicial">
<!ENTITY contextPreferences.label "Axustes">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Usar Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Usar este Persona">
diff --git a/extension/locale/gl-ES/personas_bootstrap.properties b/extension/locale/gl-ES/personas_bootstrap.properties
new file mode 100755
index 0000000..86552ff
--- /dev/null
+++ b/extension/locale/gl-ES/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predeterminado
+preferences.label = Preferencias...
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/he-IL/personas.dtd b/extension/locale/he-IL/personas.dtd
index dc34a1c..858bf9a 100644
--- a/extension/locale/he-IL/personas.dtd
+++ b/extension/locale/he-IL/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "ברירת מחדל">
-<!ENTITY preferences.label "העדפות...">
<!ENTITY viewDirectory.label "הצגת הגלריה...">
<!ENTITY customPersona.label "Persona מותאמת אישית">
<!ENTITY customName.label "שם:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "אישור">
<!ENTITY contextHomePage.label "עמוד הבית">
<!ENTITY contextPreferences.label "הגדרות">
-<!ENTITY contextEdit.label "עריכה">
-<!ENTITY contextApply.label "החל">
<!ENTITY usePersona.label "שימוש בפרסונה (Persona)">
<!ENTITY usePersona.accesskey "פ">
<!ENTITY usePersona.tooltip "שימוש בפרסונה הזאת (Persona)">
diff --git a/extension/locale/he-IL/personas_bootstrap.properties b/extension/locale/he-IL/personas_bootstrap.properties
new file mode 100755
index 0000000..9185bde
--- /dev/null
+++ b/extension/locale/he-IL/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = ברירת מחדל
+preferences.label = העדפות...
+contextEdit.label = עריכה
+contextApply.label = החל
diff --git a/extension/locale/hu-HU/personas.dtd b/extension/locale/hu-HU/personas.dtd
index 4ecb754..6e706eb 100644
--- a/extension/locale/hu-HU/personas.dtd
+++ b/extension/locale/hu-HU/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Alapértelmezett">
-<!ENTITY preferences.label "Beállítások…">
<!ENTITY viewDirectory.label "Könyvtár megtekintése…">
<!ENTITY customPersona.label "Egyéni Persona">
<!ENTITY customName.label "Név:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Kezdőlap">
<!ENTITY contextPreferences.label "Beállítások">
-<!ENTITY contextEdit.label "Szerkesztés">
-<!ENTITY contextApply.label "Alkalmaz">
<!ENTITY usePersona.label "Persona használata">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Persona használata">
diff --git a/extension/locale/hu-HU/personas_bootstrap.properties b/extension/locale/hu-HU/personas_bootstrap.properties
new file mode 100755
index 0000000..9c34577
--- /dev/null
+++ b/extension/locale/hu-HU/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Alapértelmezett
+preferences.label = Beállítások…
+contextEdit.label = Szerkesztés
+contextApply.label = Alkalmaz
diff --git a/extension/locale/it/personas.dtd b/extension/locale/it/personas.dtd
index 189faa4..259580a 100644
--- a/extension/locale/it/personas.dtd
+++ b/extension/locale/it/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predefinito">
-<!ENTITY preferences.label "Opzioni...">
<!ENTITY viewDirectory.label "Visualizza galleria...">
<!ENTITY customPersona.label "Personalizzazioni">
<!ENTITY customName.label "Nome:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Pagina iniziale">
<!ENTITY contextPreferences.label "Impostazioni">
-<!ENTITY contextEdit.label "Modifica">
-<!ENTITY contextApply.label "Applica">
<!ENTITY usePersona.label "Utilizza tema">
<!ENTITY usePersona.accesskey "z">
<!ENTITY usePersona.tooltip "Utilizza questo tema">
diff --git a/extension/locale/it/personas_bootstrap.properties b/extension/locale/it/personas_bootstrap.properties
new file mode 100755
index 0000000..e2a11ae
--- /dev/null
+++ b/extension/locale/it/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predefinito
+preferences.label = Opzioni...
+contextEdit.label = Modifica
+contextApply.label = Applica
diff --git a/extension/locale/ja-JP-mac/personas.dtd b/extension/locale/ja-JP-mac/personas.dtd
index 497deac..46ac9d8 100644
--- a/extension/locale/ja-JP-mac/personas.dtd
+++ b/extension/locale/ja-JP-mac/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "デフォルトを利用する">
-<!ENTITY preferences.label "設定">
<!ENTITY viewDirectory.label "ギャラリーを見る">
<!ENTITY customPersona.label "カスタムペルソナ">
<!ENTITY customName.label "名前:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "ホームページ">
<!ENTITY contextPreferences.label "設定">
-<!ENTITY contextEdit.label "編集">
-<!ENTITY contextApply.label "適用">
<!ENTITY usePersona.label "Persona を使用する">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "この Persona を使用します">
diff --git a/extension/locale/ja-JP-mac/personas_bootstrap.properties b/extension/locale/ja-JP-mac/personas_bootstrap.properties
new file mode 100755
index 0000000..d3eff17
--- /dev/null
+++ b/extension/locale/ja-JP-mac/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = デフォルトを利用する
+preferences.label = 設定
+contextEdit.label = 編集
+contextApply.label = 適用
diff --git a/extension/locale/ja-JP/personas.dtd b/extension/locale/ja-JP/personas.dtd
index 208d553..1e7834c 100644
--- a/extension/locale/ja-JP/personas.dtd
+++ b/extension/locale/ja-JP/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "既定">
-<!ENTITY preferences.label "設定...">
<!ENTITY viewDirectory.label "直接表示...">
<!ENTITY customPersona.label "カスタムペルソナ">
<!ENTITY customName.label "名前:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "ホームページ">
<!ENTITY contextPreferences.label "設定">
-<!ENTITY contextEdit.label "編集">
-<!ENTITY contextApply.label "適用">
<!ENTITY usePersona.label "ペルソナを使用">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "このペルソナを使用する">
diff --git a/extension/locale/ja-JP/personas_bootstrap.properties b/extension/locale/ja-JP/personas_bootstrap.properties
new file mode 100755
index 0000000..d406913
--- /dev/null
+++ b/extension/locale/ja-JP/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = 既定
+preferences.label = 設定...
+contextEdit.label = 編集
+contextApply.label = 適用
diff --git a/extension/locale/ja/personas.dtd b/extension/locale/ja/personas.dtd
index 6990e68..41f2a3d 100644
--- a/extension/locale/ja/personas.dtd
+++ b/extension/locale/ja/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "既定を利用する">
-<!ENTITY preferences.label "設定">
<!ENTITY viewDirectory.label "ギャラリーを見る">
<!ENTITY customPersona.label "カスタムペルソナ">
<!ENTITY customName.label "名前:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "ホームページ">
<!ENTITY contextPreferences.label "設定">
-<!ENTITY contextEdit.label "編集">
-<!ENTITY contextApply.label "適用">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/ja/personas_bootstrap.properties b/extension/locale/ja/personas_bootstrap.properties
new file mode 100755
index 0000000..e86be52
--- /dev/null
+++ b/extension/locale/ja/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = 既定を利用する
+preferences.label = 設定
+contextEdit.label = 編集
+contextApply.label = 適用
diff --git a/extension/locale/ko-KR/personas.dtd b/extension/locale/ko-KR/personas.dtd
index e7f6b0d..82d783f 100644
--- a/extension/locale/ko-KR/personas.dtd
+++ b/extension/locale/ko-KR/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "기본">
-<!ENTITY preferences.label "환경설정...">
<!ENTITY viewDirectory.label "목록 보기…">
<!ENTITY customPersona.label "사용자 Persona">
<!ENTITY customName.label "이름:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "확인">
<!ENTITY contextHomePage.label "홈 페이지">
<!ENTITY contextPreferences.label "설정">
-<!ENTITY contextEdit.label "편집">
-<!ENTITY contextApply.label "적용">
<!ENTITY usePersona.label "Persona 사용">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "이 Persona 사용">
diff --git a/extension/locale/ko-KR/personas_bootstrap.properties b/extension/locale/ko-KR/personas_bootstrap.properties
new file mode 100755
index 0000000..1ed68c3
--- /dev/null
+++ b/extension/locale/ko-KR/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = 기본
+preferences.label = 환경설정...
+contextEdit.label = 편집
+contextApply.label = 적용
diff --git a/extension/locale/lt-LT/personas.dtd b/extension/locale/lt-LT/personas.dtd
index 405c1c0..0cdfc2c 100644
--- a/extension/locale/lt-LT/personas.dtd
+++ b/extension/locale/lt-LT/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Kaukės">
-<!ENTITY useDefaultPersona.label "Įprastasis">
-<!ENTITY preferences.label "Nuostatymai">
<!ENTITY viewDirectory.label "Žiurėti galeriją">
<!ENTITY customPersona.label "Kita kaukė">
<!ENTITY customName.label "Pavadinimas:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Namų puslapis">
<!ENTITY contextPreferences.label "Nustatymai">
-<!ENTITY contextEdit.label "Redaguoti">
-<!ENTITY contextApply.label "Taikyti">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/lt-LT/personas_bootstrap.properties b/extension/locale/lt-LT/personas_bootstrap.properties
new file mode 100755
index 0000000..12d5acb
--- /dev/null
+++ b/extension/locale/lt-LT/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Kaukės
+useDefaultPersona.label = Įprastasis
+preferences.label = Nuostatymai
+contextEdit.label = Redaguoti
+contextApply.label = Taikyti
diff --git a/extension/locale/lt/personas.dtd b/extension/locale/lt/personas.dtd
index 2b6dd37..14c36a7 100644
--- a/extension/locale/lt/personas.dtd
+++ b/extension/locale/lt/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Kaukės">
-<!ENTITY useDefaultPersona.label "Numatytoji">
-<!ENTITY preferences.label "Nustatymai">
<!ENTITY viewDirectory.label "Žiūrėti galeriją">
<!ENTITY customPersona.label "Pasirinktinė kaukė">
<!ENTITY customName.label "Pavadinimas:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Gerai">
<!ENTITY contextHomePage.label "Namų puslapis">
<!ENTITY contextPreferences.label "Nustatymai">
-<!ENTITY contextEdit.label "Redaguoti">
-<!ENTITY contextApply.label "Taikyti">
<!ENTITY usePersona.label "Naudoti kaukę">
<!ENTITY usePersona.accesskey "N">
<!ENTITY usePersona.tooltip "Naudoti šią kaukę">
diff --git a/extension/locale/lt/personas_bootstrap.properties b/extension/locale/lt/personas_bootstrap.properties
new file mode 100755
index 0000000..8a47afd
--- /dev/null
+++ b/extension/locale/lt/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Kaukės
+useDefaultPersona.label = Numatytoji
+preferences.label = Nustatymai
+contextEdit.label = Redaguoti
+contextApply.label = Taikyti
diff --git a/extension/locale/mk-MK/personas.dtd b/extension/locale/mk-MK/personas.dtd
index 8233093..4e3ede2 100644
--- a/extension/locale/mk-MK/personas.dtd
+++ b/extension/locale/mk-MK/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Основно">
-<!ENTITY preferences.label "Подесувања…">
<!ENTITY viewDirectory.label "Погледни ја галеријата…">
<!ENTITY customPersona.label "Споствена персона">
<!ENTITY customName.label "Име:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Домашна страна">
<!ENTITY contextPreferences.label "Сетинзи">
-<!ENTITY contextEdit.label "Измени">
-<!ENTITY contextApply.label "Користи">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/mk-MK/personas_bootstrap.properties b/extension/locale/mk-MK/personas_bootstrap.properties
new file mode 100755
index 0000000..7bf1168
--- /dev/null
+++ b/extension/locale/mk-MK/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Основно
+preferences.label = Подесувања…
+contextEdit.label = Измени
+contextApply.label = Користи
diff --git a/extension/locale/nl/personas.dtd b/extension/locale/nl/personas.dtd
index f41b537..dac411b 100644
--- a/extension/locale/nl/personas.dtd
+++ b/extension/locale/nl/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standaard">
-<!ENTITY preferences.label "Voorkeuren">
<!ENTITY viewDirectory.label "Galerij bekijken">
<!ENTITY customPersona.label "Eigen persona">
<!ENTITY customName.label "Naam:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Startpagina">
<!ENTITY contextPreferences.label "Instellingen">
-<!ENTITY contextEdit.label "Bewerken">
-<!ENTITY contextApply.label "Toepassen">
<!ENTITY usePersona.label "Persona gebruiken">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Deze persona gebruiken">
diff --git a/extension/locale/nl/personas_bootstrap.properties b/extension/locale/nl/personas_bootstrap.properties
new file mode 100755
index 0000000..9dc69ad
--- /dev/null
+++ b/extension/locale/nl/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Standaard
+preferences.label = Voorkeuren
+contextEdit.label = Bewerken
+contextApply.label = Toepassen
diff --git a/extension/locale/pl-PL/personas.dtd b/extension/locale/pl-PL/personas.dtd
index d65c47f..7db98ea 100644
--- a/extension/locale/pl-PL/personas.dtd
+++ b/extension/locale/pl-PL/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Minimotywy">
-<!ENTITY useDefaultPersona.label "Domyślny motyw">
-<!ENTITY preferences.label "Ustawienia…">
<!ENTITY viewDirectory.label "Wyświetl galerię">
<!ENTITY customPersona.label "Prywatny minimotyw">
<!ENTITY customName.label "Nazwa:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Strona domowa">
<!ENTITY contextPreferences.label "Ustawienia">
-<!ENTITY contextEdit.label "Edytuj">
-<!ENTITY contextApply.label "Zastosuj">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/pl-PL/personas_bootstrap.properties b/extension/locale/pl-PL/personas_bootstrap.properties
new file mode 100755
index 0000000..3a8af81
--- /dev/null
+++ b/extension/locale/pl-PL/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Minimotywy
+useDefaultPersona.label = Domyślny motyw
+preferences.label = Ustawienia…
+contextEdit.label = Edytuj
+contextApply.label = Zastosuj
diff --git a/extension/locale/pl/personas.dtd b/extension/locale/pl/personas.dtd
index a519e9a..54cf17e 100644
--- a/extension/locale/pl/personas.dtd
+++ b/extension/locale/pl/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Minimotywy">
-<!ENTITY useDefaultPersona.label "Domyślny motyw">
-<!ENTITY preferences.label "Ustawienia…">
<!ENTITY viewDirectory.label "Wyświetl galerię">
<!ENTITY customPersona.label "Prywatny minimotyw">
<!ENTITY customName.label "Nazwa:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Strona domowa">
<!ENTITY contextPreferences.label "Ustawienia">
-<!ENTITY contextEdit.label "Edytuj">
-<!ENTITY contextApply.label "Zastosuj">
<!ENTITY usePersona.label "Użyj minimotywu">
<!ENTITY usePersona.accesskey "m">
<!ENTITY usePersona.tooltip "Użyj tego minimotywu">
diff --git a/extension/locale/pl/personas_bootstrap.properties b/extension/locale/pl/personas_bootstrap.properties
new file mode 100755
index 0000000..3a8af81
--- /dev/null
+++ b/extension/locale/pl/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Minimotywy
+useDefaultPersona.label = Domyślny motyw
+preferences.label = Ustawienia…
+contextEdit.label = Edytuj
+contextApply.label = Zastosuj
diff --git a/extension/locale/pt-BR/personas.dtd b/extension/locale/pt-BR/personas.dtd
index 4faee19..5bc6dff 100644
--- a/extension/locale/pt-BR/personas.dtd
+++ b/extension/locale/pt-BR/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Padrão">
-<!ENTITY preferences.label "Preferências…">
<!ENTITY viewDirectory.label "Exibir catálogo…">
<!ENTITY customPersona.label "Personalizar Persona">
<!ENTITY customName.label "Nome:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Página inicial">
<!ENTITY contextPreferences.label "Configurações">
-<!ENTITY contextEdit.label "Editar">
-<!ENTITY contextApply.label "Aplicar">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/pt-BR/personas_bootstrap.properties b/extension/locale/pt-BR/personas_bootstrap.properties
new file mode 100755
index 0000000..c033522
--- /dev/null
+++ b/extension/locale/pt-BR/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Padrão
+preferences.label = Preferências…
+contextEdit.label = Editar
+contextApply.label = Aplicar
diff --git a/extension/locale/pt-PT/personas.dtd b/extension/locale/pt-PT/personas.dtd
index 6273944..e8541d8 100644
--- a/extension/locale/pt-PT/personas.dtd
+++ b/extension/locale/pt-PT/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Default">
-<!ENTITY preferences.label "Preferences">
<!ENTITY viewDirectory.label "View Gallery">
<!ENTITY customPersona.label "Custom Persona">
<!ENTITY customName.label "Name:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Home Page">
<!ENTITY contextPreferences.label "Settings">
-<!ENTITY contextEdit.label "Edit">
-<!ENTITY contextApply.label "Apply">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/pt-PT/personas_bootstrap.properties b/extension/locale/pt-PT/personas_bootstrap.properties
new file mode 100644
index 0000000..6f4d989
--- /dev/null
+++ b/extension/locale/pt-PT/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Default
+preferences.label= Preferences
+contextEdit.label= Edit
+contextApply.label= Apply
diff --git a/extension/locale/ro/personas.dtd b/extension/locale/ro/personas.dtd
index 39b1097..87a0b35 100644
--- a/extension/locale/ro/personas.dtd
+++ b/extension/locale/ro/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predefinită">
-<!ENTITY preferences.label "Opțiuni">
<!ENTITY viewDirectory.label "Vizualizează galeria">
<!ENTITY customPersona.label "Personalizare temă">
<!ENTITY customName.label "Denumire:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Ieșire">
<!ENTITY contextHomePage.label "Pagină inițială">
<!ENTITY contextPreferences.label "Configurare">
-<!ENTITY contextEdit.label "Editează">
-<!ENTITY contextApply.label "Aplică">
<!ENTITY usePersona.label "Folosește tema">
<!ENTITY usePersona.accesskey "F">
<!ENTITY usePersona.tooltip "Folosește această temă">
diff --git a/extension/locale/ro/personas_bootstrap.properties b/extension/locale/ro/personas_bootstrap.properties
new file mode 100755
index 0000000..7790f44
--- /dev/null
+++ b/extension/locale/ro/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predefinită
+preferences.label = Opțiuni
+contextEdit.label = Editează
+contextApply.label = Aplică
diff --git a/extension/locale/ru-RU/personas.dtd b/extension/locale/ru-RU/personas.dtd
index 5fc372f..3c7dc17 100644
--- a/extension/locale/ru-RU/personas.dtd
+++ b/extension/locale/ru-RU/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "По умолчанию">
-<!ENTITY preferences.label "Настройки">
<!ENTITY viewDirectory.label "Просмотреть каталог">
<!ENTITY customPersona.label "Скин пользователя">
<!ENTITY customName.label "Название:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Сайт">
<!ENTITY contextPreferences.label "Настройки">
-<!ENTITY contextEdit.label "Редактировать">
-<!ENTITY contextApply.label "Применить">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/ru-RU/personas_bootstrap.properties b/extension/locale/ru-RU/personas_bootstrap.properties
new file mode 100755
index 0000000..fc1d318
--- /dev/null
+++ b/extension/locale/ru-RU/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = По умолчанию
+preferences.label = Настройки
+contextEdit.label = Редактировать
+contextApply.label = Применить
diff --git a/extension/locale/si-LK/personas.dtd b/extension/locale/si-LK/personas.dtd
index 168d181..17ecce6 100644
--- a/extension/locale/si-LK/personas.dtd
+++ b/extension/locale/si-LK/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "පුද්ගල සැකසුම">
-<!ENTITY useDefaultPersona.label "සාමාන්ය">
-<!ENTITY preferences.label "අභිමත">
<!ENTITY viewDirectory.label "ගැලරිය පෙන්වන්න">
<!ENTITY customPersona.label "සකස් කරන්න ලද පුද්ගල සැකසුම">
<!ENTITY customName.label "නම">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "හරි">
<!ENTITY contextHomePage.label "මුල් පිටුව">
<!ENTITY contextPreferences.label "සැකසුම්">
-<!ENTITY contextEdit.label "වෙනස් කරන්න">
-<!ENTITY contextApply.label "යොදන්න">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/si-LK/personas_bootstrap.properties b/extension/locale/si-LK/personas_bootstrap.properties
new file mode 100755
index 0000000..ce7550f
--- /dev/null
+++ b/extension/locale/si-LK/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = පුද්ගල සැකසුම
+useDefaultPersona.label = සාමාන්ය
+preferences.label = අභිමත
+contextEdit.label = වෙනස් කරන්න
+contextApply.label = යොදන්න
diff --git a/extension/locale/sk-SK/personas.dtd b/extension/locale/sk-SK/personas.dtd
index e3e095f..fb5ecd5 100644
--- a/extension/locale/sk-SK/personas.dtd
+++ b/extension/locale/sk-SK/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Predvolené">
-<!ENTITY preferences.label "Možnosti...">
<!ENTITY viewDirectory.label "Zobraziť galériu...">
<!ENTITY customPersona.label "Vlastná téma">
<!ENTITY customName.label "Názov:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Domovská stránka">
<!ENTITY contextPreferences.label "Nastavenia">
-<!ENTITY contextEdit.label "Upraviť">
-<!ENTITY contextApply.label "Použiť">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/sk-SK/personas_bootstrap.properties b/extension/locale/sk-SK/personas_bootstrap.properties
new file mode 100755
index 0000000..33d4c16
--- /dev/null
+++ b/extension/locale/sk-SK/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Predvolené
+preferences.label = Možnosti...
+contextEdit.label = Upraviť
+contextApply.label = Použiť
diff --git a/extension/locale/sl-SI/personas.dtd b/extension/locale/sl-SI/personas.dtd
index 6864796..2414a07 100644
--- a/extension/locale/sl-SI/personas.dtd
+++ b/extension/locale/sl-SI/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Privzeto">
-<!ENTITY preferences.label "Nastavitve">
<!ENTITY viewDirectory.label "Pokaži galerijo">
<!ENTITY customPersona.label "Persona po meri">
<!ENTITY customName.label "Ime:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "V redu">
<!ENTITY contextHomePage.label "Domača stran">
<!ENTITY contextPreferences.label "Nastavitve">
-<!ENTITY contextEdit.label "Uredi">
-<!ENTITY contextApply.label "Uveljavi">
<!ENTITY usePersona.label "Uporabi persono">
<!ENTITY usePersona.accesskey "U">
<!ENTITY usePersona.tooltip "Uporabi to persono">
diff --git a/extension/locale/sl-SI/personas_bootstrap.properties b/extension/locale/sl-SI/personas_bootstrap.properties
new file mode 100644
index 0000000..295e834
--- /dev/null
+++ b/extension/locale/sl-SI/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Privzeto
+preferences.label= Nastavitve
+contextEdit.label= Uredi
+contextApply.label= Uveljavi
diff --git a/extension/locale/sr-RS/personas.dtd b/extension/locale/sr-RS/personas.dtd
index fb2bff9..2b4ae8e 100644
--- a/extension/locale/sr-RS/personas.dtd
+++ b/extension/locale/sr-RS/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Подразумевана">
-<!ENTITY preferences.label "Подешавања...">
<!ENTITY viewDirectory.label "Прикажи деректоријум...">
<!ENTITY customPersona.label "Прилагођена персона">
<!ENTITY customName.label "Име:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "У реду">
<!ENTITY contextHomePage.label "Матична страна">
<!ENTITY contextPreferences.label "Подешавања">
-<!ENTITY contextEdit.label "Измени">
-<!ENTITY contextApply.label "Примени">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/sr-RS/personas_bootstrap.properties b/extension/locale/sr-RS/personas_bootstrap.properties
new file mode 100644
index 0000000..c6c8a9a
--- /dev/null
+++ b/extension/locale/sr-RS/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Подразумевана
+preferences.label= Подешавања...
+contextEdit.label= Измени
+contextApply.label= Примени
diff --git a/extension/locale/sr/personas.dtd b/extension/locale/sr/personas.dtd
index a2d7d86..b732751 100644
--- a/extension/locale/sr/personas.dtd
+++ b/extension/locale/sr/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Одела">
-<!ENTITY useDefaultPersona.label "Подразумевана">
-<!ENTITY preferences.label "Подешавања...">
<!ENTITY viewDirectory.label "Прикажи галерију...">
<!ENTITY customPersona.label "Прилагођено одело">
<!ENTITY customName.label "Назив:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "У реду">
<!ENTITY contextHomePage.label "Матична страна">
<!ENTITY contextPreferences.label "Подешавања">
-<!ENTITY contextEdit.label "Уреди">
-<!ENTITY contextApply.label "Примени">
<!ENTITY usePersona.label "Користи одело">
<!ENTITY usePersona.accesskey "О">
<!ENTITY usePersona.tooltip "Користи ово одело">
diff --git a/extension/locale/sr/personas_bootstrap.properties b/extension/locale/sr/personas_bootstrap.properties
new file mode 100755
index 0000000..413bede
--- /dev/null
+++ b/extension/locale/sr/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Одела
+useDefaultPersona.label = Подразумевана
+preferences.label = Подешавања...
+contextEdit.label = Уреди
+contextApply.label = Примени
diff --git a/extension/locale/sv-SE/personas.dtd b/extension/locale/sv-SE/personas.dtd
index 9f5d6f9..234173e 100644
--- a/extension/locale/sv-SE/personas.dtd
+++ b/extension/locale/sv-SE/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Standard">
-<!ENTITY preferences.label "Inställningar">
<!ENTITY viewDirectory.label "Visa Directory">
<!ENTITY customPersona.label "Anpassd Persona">
<!ENTITY customName.label "Namn:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Hemsidda">
<!ENTITY contextPreferences.label "Inställningar">
-<!ENTITY contextEdit.label "Hantera">
-<!ENTITY contextApply.label "Verkställ">
<!ENTITY usePersona.label "Använd Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Använd denna Persona">
diff --git a/extension/locale/sv-SE/personas_bootstrap.properties b/extension/locale/sv-SE/personas_bootstrap.properties
new file mode 100755
index 0000000..d91576d
--- /dev/null
+++ b/extension/locale/sv-SE/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Standard
+preferences.label = Inställningar
+contextEdit.label = Hantera
+contextApply.label = Verkställ
diff --git a/extension/locale/tr/personas.dtd b/extension/locale/tr/personas.dtd
index f629daa..baee318 100644
--- a/extension/locale/tr/personas.dtd
+++ b/extension/locale/tr/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Varsayılan">
-<!ENTITY preferences.label "Tercihler...">
<!ENTITY viewDirectory.label "Dizini Göster...">
<!ENTITY customPersona.label "Varsayılan Kişi">
<!ENTITY customName.label "İsim:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "TAMAM">
<!ENTITY contextHomePage.label "Ana Sayfa">
<!ENTITY contextPreferences.label "Ayarlar">
-<!ENTITY contextEdit.label "Düzenle">
-<!ENTITY contextApply.label "Uygula">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/tr/personas_bootstrap.properties b/extension/locale/tr/personas_bootstrap.properties
new file mode 100755
index 0000000..7e8938d
--- /dev/null
+++ b/extension/locale/tr/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Varsayılan
+preferences.label = Tercihler...
+contextEdit.label = Düzenle
+contextApply.label = Uygula
diff --git a/extension/locale/uk-UA/personas.dtd b/extension/locale/uk-UA/personas.dtd
index 489a70b..d4e2ce2 100644
--- a/extension/locale/uk-UA/personas.dtd
+++ b/extension/locale/uk-UA/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Персони">
-<!ENTITY useDefaultPersona.label "Типовий">
-<!ENTITY preferences.label "Налаштування">
<!ENTITY viewDirectory.label "Переглянути галерею">
<!ENTITY customPersona.label "Моя Персона">
<!ENTITY customName.label "Ім`я:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "Гаразд">
<!ENTITY contextHomePage.label "Домашня сторінка">
<!ENTITY contextPreferences.label "Налаштування">
-<!ENTITY contextEdit.label "Редагувати">
-<!ENTITY contextApply.label "Прийняти">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/uk-UA/personas_bootstrap.properties b/extension/locale/uk-UA/personas_bootstrap.properties
new file mode 100755
index 0000000..7773833
--- /dev/null
+++ b/extension/locale/uk-UA/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Персони
+useDefaultPersona.label = Типовий
+preferences.label = Налаштування
+contextEdit.label = Редагувати
+contextApply.label = Прийняти
diff --git a/extension/locale/vi-VN/personas.dtd b/extension/locale/vi-VN/personas.dtd
index 6fbd47b..244c015 100644
--- a/extension/locale/vi-VN/personas.dtd
+++ b/extension/locale/vi-VN/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Mặc định">
-<!ENTITY preferences.label "Tùy chỉnh">
<!ENTITY viewDirectory.label "Xem trang Trưng bày">
<!ENTITY customPersona.label "Persona Tùy biến">
<!ENTITY customName.label "Tên:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Trang chủ">
<!ENTITY contextPreferences.label "Thiết lập">
-<!ENTITY contextEdit.label "Chỉnh sửa">
-<!ENTITY contextApply.label "Áp dụng">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/vi-VN/personas_bootstrap.properties b/extension/locale/vi-VN/personas_bootstrap.properties
new file mode 100644
index 0000000..4d167a1
--- /dev/null
+++ b/extension/locale/vi-VN/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title= Personas
+useDefaultPersona.label= Mặc định
+preferences.label= Tùy chỉnh
+contextEdit.label= Chỉnh sửa
+contextApply.label= Áp dụng
diff --git a/extension/locale/vi/personas.dtd b/extension/locale/vi/personas.dtd
index 6fbd47b..244c015 100644
--- a/extension/locale/vi/personas.dtd
+++ b/extension/locale/vi/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "Mặc định">
-<!ENTITY preferences.label "Tùy chỉnh">
<!ENTITY viewDirectory.label "Xem trang Trưng bày">
<!ENTITY customPersona.label "Persona Tùy biến">
<!ENTITY customName.label "Tên:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "OK">
<!ENTITY contextHomePage.label "Trang chủ">
<!ENTITY contextPreferences.label "Thiết lập">
-<!ENTITY contextEdit.label "Chỉnh sửa">
-<!ENTITY contextApply.label "Áp dụng">
<!ENTITY usePersona.label "Use Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "Use this Persona">
diff --git a/extension/locale/vi/personas_bootstrap.properties b/extension/locale/vi/personas_bootstrap.properties
new file mode 100755
index 0000000..a745d6f
--- /dev/null
+++ b/extension/locale/vi/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = Mặc định
+preferences.label = Tùy chỉnh
+contextEdit.label = Chỉnh sửa
+contextApply.label = Áp dụng
diff --git a/extension/locale/zh-CN/personas.dtd b/extension/locale/zh-CN/personas.dtd
index 49422ef..2a6ac55 100644
--- a/extension/locale/zh-CN/personas.dtd
+++ b/extension/locale/zh-CN/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "使用默认风格">
-<!ENTITY preferences.label "选项…">
<!ENTITY viewDirectory.label "查看目录…">
<!ENTITY customPersona.label "定制炫彩风格">
<!ENTITY customName.label "名称:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "确定">
<!ENTITY contextHomePage.label "主页">
<!ENTITY contextPreferences.label "设置">
-<!ENTITY contextEdit.label "编辑">
-<!ENTITY contextApply.label "应用">
<!ENTITY usePersona.label "使用炫彩风格">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "使用这款炫彩风格">
diff --git a/extension/locale/zh-CN/personas_bootstrap.properties b/extension/locale/zh-CN/personas_bootstrap.properties
new file mode 100755
index 0000000..5f82fd7
--- /dev/null
+++ b/extension/locale/zh-CN/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = 使用默认风格
+preferences.label = 选项…
+contextEdit.label = 编辑
+contextApply.label = 应用
diff --git a/extension/locale/zh-TW/personas.dtd b/extension/locale/zh-TW/personas.dtd
index 7381e67..e1633d0 100644
--- a/extension/locale/zh-TW/personas.dtd
+++ b/extension/locale/zh-TW/personas.dtd
@@ -1,6 +1,3 @@
-<!ENTITY personas_app_title "Personas">
-<!ENTITY useDefaultPersona.label "預設值">
-<!ENTITY preferences.label "偏好設定…">
<!ENTITY viewDirectory.label "瀏覽更多…">
<!ENTITY customPersona.label "自訂 Persona">
<!ENTITY customName.label "名稱:">
@@ -13,8 +10,6 @@
<!ENTITY okButton.label "確定">
<!ENTITY contextHomePage.label "首頁">
<!ENTITY contextPreferences.label "設定">
-<!ENTITY contextEdit.label "編輯">
-<!ENTITY contextApply.label "套用">
<!ENTITY usePersona.label "使用 Persona">
<!ENTITY usePersona.accesskey "P">
<!ENTITY usePersona.tooltip "使用這個 Persona">
diff --git a/extension/locale/zh-TW/personas_bootstrap.properties b/extension/locale/zh-TW/personas_bootstrap.properties
new file mode 100755
index 0000000..512a539
--- /dev/null
+++ b/extension/locale/zh-TW/personas_bootstrap.properties
@@ -0,0 +1,5 @@
+personas_app_title = Personas
+useDefaultPersona.label = 預設值
+preferences.label = 偏好設定…
+contextEdit.label = 編輯
+contextApply.label = 套用
diff --git a/extension/content/personas.js b/extension/modules/personas.js
similarity index 69%
rename from extension/content/personas.js
rename to extension/modules/personas.js
index 656f96d..648e5fe 100644
--- a/extension/content/personas.js
+++ b/extension/modules/personas.js
@@ -39,6 +39,8 @@
*
* ***** END LICENSE BLOCK ***** */
+var EXPORTED_SYMBOLS = ["PersonaController"];
+
// Generic modules get imported into the persona controller rather than
// the global namespace after the controller definition below so they don't
// conflict with modules with the same names imported by other extensions.
@@ -53,6 +55,14 @@ if (typeof Cr == "undefined")
if (typeof Cu == "undefined")
var Cu = Components.utils;
+Components.utils.import("resource://gre/modules/Services.jsm");
+
+try {
+ var console = (Cu.import("resource://gre/modules/Console.jsm", {})).console;
+} catch (error) {
+ var console = (Cu.import("resource://gre/modules/" + "devtools" + "/Console.jsm", {})).console;
+}
+
// It's OK to import the service module into the global namespace because its
// exported symbols all contain the word "persona" (f.e. PersonaService).
Cu.import("resource://personas/modules/service.js");
@@ -91,24 +101,20 @@ var PersonaController = {
new this.StringBundle("chrome://branding/locale/brand.properties");
},
- get _menu() {
- delete this._menu;
- return this._menu = document.getElementById("personas-menu");
+ get_menu(document) {
+ return document.getElementById("personas-menu");
},
- get _menuButton() {
- delete this._menuButton;
- return this._menuButton = document.getElementById("personas-selector-button");
+ get_menuButton(document) {
+ return document.getElementById("personas-selector-button");
},
- get _menuPopup() {
- delete this._menuPopup;
- return this._menuPopup = document.getElementById("personas-selector-menu");
+ get_menuPopup(document) {
+ return document.getElementById("personas-selector-menu");
},
- get _toolbarButton() {
- delete this._toolbarButton;
- return this._toolbarButton = document.getElementById("personas-toolbar-button");
+ get_toolbarButton(document) {
+ return document.getElementById("personas-toolbar-button");
},
get _sessionStore() {
@@ -117,25 +123,23 @@ var PersonaController = {
.getService(Ci.nsISessionStore);
},
- get _header() {
- delete this._header;
+ get_header(document) {
switch (PersonaService.appInfo.ID) {
case PersonaService.THUNDERBIRD_ID:
- return this._header = document.getElementById("messengerWindow");
+ return document.getElementById("messengerWindow");
case PersonaService.FIREFOX_ID:
- return this._header = document.getElementById("main-window");
+ return document.getElementById("main-window");
default:
throw "unknown application ID " + PersonaService.appInfo.ID;
}
},
- get _footer() {
- delete this._footer;
+ get_footer(document) {
switch (PersonaService.appInfo.ID) {
case PersonaService.THUNDERBIRD_ID:
- return this._footer = document.getElementById("status-bar");
+ return document.getElementById("status-bar");
case PersonaService.FIREFOX_ID:
- return this._footer = document.getElementById("browser-bottombox");
+ return document.getElementById("browser-bottombox");
default:
throw "unknown application ID " + PersonaService.appInfo.ID;
}
@@ -175,7 +179,9 @@ var PersonaController = {
*/
_escapeURLForCSS: function(url) url.replace(/[(),\s'"]/g, "\$&"),
- openURLInTab: function(url) {
+ openURLInTab: function(url, event) {
+ var document = event.currentTarget.ownerDocument;
+ var window = document.defaultView;
switch (PersonaService.appInfo.ID) {
case PersonaService.THUNDERBIRD_ID:
// Thunderbird's "openTab" implementation for the "contentTab" mode
@@ -244,7 +250,7 @@ var PersonaController = {
this._sessionStore.getWindowValue(window, "persona")) {
this._applyPersona(JSON.parse(
this._sessionStore.getWindowValue(window, "persona")
- ));
+ ), window.document);
}
break;
case "personas:persona:changed":
@@ -253,18 +259,18 @@ var PersonaController = {
if (this._sessionStore.getWindowValue(window, "persona")) {
this._applyPersona(JSON.parse(
this._sessionStore.getWindowValue(window, "persona")
- ));
+ ), window.document);
} else {
- this._applyDefault();
+ this._applyDefault(window.document);
}
// Pan-window personas are enabled
} else {
if (PersonaService.previewingPersona) {
- this._applyPersona(PersonaService.previewingPersona);
+ this._applyPersona(PersonaService.previewingPersona, window.document);
} else if (PersonaService.selected == "default") {
- this._applyDefault();
+ this._applyDefault(window.document);
} else {
- this._applyPersona(PersonaService.currentPersona);
+ this._applyPersona(PersonaService.currentPersona, window.document);
}
break;
}
@@ -279,7 +285,7 @@ var PersonaController = {
case "ResetPersona":
let doc = aEvent.originalTarget.ownerDocument;
if (Services.perms.testPermission(doc.documentURIObject, "install") == Services.perms.ALLOW_ACTION)
- this.checkPrivateBrowsing();
+ this.checkPrivateBrowsing(doc);
break;
case "CheckPersonas":
this.onCheckPersonasFromContent(aEvent);
@@ -300,7 +306,15 @@ var PersonaController = {
//**************************************************************************//
// Initialization & Destruction
- startUp: function() {
+ startUp: function(window) {
+
+ var document = window.document;
+
+ this.addToolbarButton(window);
+ this.addToolsMenu(window);
+
+ var menuButton = this.get_menuButton(document);
+
// Set the label for the tooltip that informs users when personas data
// is unavailable.
// FIXME: make this a DTD entity rather than a properties string.
@@ -326,7 +340,8 @@ var PersonaController = {
observe: function() {
Services.obs.removeObserver(this, "sessionstore-windows-restored", false);
window.openUILinkIn("http://goo.gl/forms/6E2DiOVPNe", "tab");
- }}, "sessionstore-windows-restored", false);
+ }
+ }, "sessionstore-windows-restored", false);
}
this._prefs.set("lastversion", aAddon.version);
}.bind(this));
@@ -337,23 +352,27 @@ var PersonaController = {
if (PersonaService.appInfo.ID == PersonaService.FIREFOX_ID) {
let addonBar = window.document.getElementById("addon-bar");
if (addonBar) {
- this._menuButton.setAttribute("hidden", true);
+ menuButton.setAttribute("hidden", true);
if (!this._prefs.get("toolbarButtonInstalled")) {
- this._installToolbarButton(addonBar);
+ //this._installToolbarButton(addonBar);
this._prefs.set("toolbarButtonInstalled", true);
}
}
}
},
- shutDown: function() {
+ shutDown: function(window) {
+ var document = window.document;
document.removeEventListener("SelectPersona", this, false);
document.removeEventListener("PreviewPersona", this, false);
document.removeEventListener("ResetPersona", this, false);
document.removeEventListener("CheckPersonas", this, false);
document.removeEventListener("AddFavoritePersona", this, false);
document.removeEventListener("RemoveFavoritePersona", this, false);
+
+ this.removeToolbarButton(window);
+ this.removeToolsMenu(window);
},
_installToolbarButton: function(aToolbar) {
@@ -385,35 +404,37 @@ var PersonaController = {
//**************************************************************************//
// Appearance Updates
- _applyPersona: function(persona) {
+ _applyPersona: function(persona, document) {
+ var header = this.get_header(document);
+ var footer = this.get_footer(document);
// Style header and footer
- this._header.setAttribute("persona", persona.id);
- this._footer.setAttribute("persona", persona.id);
+ header.setAttribute("persona", persona.id);
+ footer.setAttribute("persona", persona.id);
// First try to obtain the images from the cache
let images = PersonaService.getCachedPersonaImages(persona);
if (images && images.header && images.footer) {
- this._header.style.backgroundImage = "url(" + images.header + ")";
- this._footer.style.backgroundImage = "url(" + images.footer + ")";
+ header.style.backgroundImage = "url(" + images.header + ")";
+ footer.style.backgroundImage = "url(" + images.footer + ")";
}
// Else set them from their original source
else {
// Use the URI module to resolve the possibly relative URI to an absolute one.
let headerURI = this.URI.get(persona.headerURL || persona.header,
null, null);
- this._header.style.backgroundImage = "url(" + this._escapeURLForCSS(headerURI.spec) + ")";
+ header.style.backgroundImage = "url(" + this._escapeURLForCSS(headerURI.spec) + ")";
// Use the URI module to resolve the possibly relative URI to an absolute one.
let footerURI = this.URI.get(persona.footerURL || persona.footer,
null, null);
- this._footer.style.backgroundImage = "url(" + this._escapeURLForCSS(footerURI.spec) + ")";
+ footer.style.backgroundImage = "url(" + this._escapeURLForCSS(footerURI.spec) + ")";
}
// Style the text color.
if (this._prefs.get("useTextColor")) {
// FIXME: fall back on the default text color instead of "black".
let textColor = persona.textcolor || "black";
- this._header.style.color = textColor;
+ header.style.color = textColor;
for (let i = 0; i < document.styleSheets.length; i++) {
let styleSheet = document.styleSheets[i];
if (styleSheet.href == "chrome://personas/content/overlay.css") {
@@ -518,7 +539,7 @@ var PersonaController = {
active = "";
inactive = "";
}
- this._setTitlebarColors(general, active, inactive);
+ this._setTitlebarColors(general, active, inactive, document);
}
// Opacity overrides (firefox only)
@@ -555,14 +576,17 @@ var PersonaController = {
},
- _applyDefault: function() {
+ _applyDefault: function(document) {
+ var header = this.get_header(document);
+ var footer = this.get_footer(document);
+
// Reset the header.
- this._header.removeAttribute("persona");
- this._header.style.backgroundImage = "";
+ header.removeAttribute("persona");
+ header.style.backgroundImage = "";
// Reset the footer.
- this._footer.removeAttribute("persona");
- this._footer.style.backgroundImage = "";
+ footer.removeAttribute("persona");
+ footer.style.backgroundImage = "";
// Reset the text color.
for (let i = 0; i < document.styleSheets.length; i++) {
@@ -573,30 +597,33 @@ var PersonaController = {
break;
}
}
- this._header.style.color = "";
+ header.style.color = "";
// Reset the titlebar color.
if (this._prefs.get("useAccentColor")) {
- this._setTitlebarColors("", "", "");
+ this._setTitlebarColors("", "", "", document);
}
},
- _setTitlebarColors: function(general, active, inactive) {
+ _setTitlebarColors: function(general, active, inactive, document) {
+ var window = document.defaultView;
+ var header = this.get_header(document);
+
// Titlebar colors only have an effect on Mac.
if (PersonaService.appInfo.OS != "Darwin")
return;
let changed = false;
- if (general != this._header.getAttribute("titlebarcolor")) {
+ if (general != header.getAttribute("titlebarcolor")) {
document.documentElement.setAttribute("titlebarcolor", general);
changed = true;
}
- if (active != this._header.getAttribute("activetitlebarcolor")) {
+ if (active != header.getAttribute("activetitlebarcolor")) {
document.documentElement.setAttribute("activetitlebarcolor", active);
changed = true;
}
- if (inactive != this._header.getAttribute("inactivetitlebarcolor")) {
+ if (inactive != header.getAttribute("inactivetitlebarcolor")) {
document.documentElement.setAttribute("inactivetitlebarcolor", inactive);
changed = true;
}
@@ -625,7 +652,8 @@ var PersonaController = {
* Checks if the current window is in private browsing mode, and shows
* an alert warning that personas will not work, if so.
*/
- checkPrivateBrowsing: function() {
+ checkPrivateBrowsing: function(document) {
+ var window = document.defaultView;
if (typeof PrivateBrowsingUtils !== "undefined" &&
PrivateBrowsingUtils.isWindowPrivate(window)) {
@@ -660,6 +688,9 @@ var PersonaController = {
* the SelectPersona DOM event
*/
onSelectPersona: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var window = document.defaultView;
+
let node = event.target;
if (!node.hasAttribute("persona"))
@@ -678,11 +709,11 @@ var PersonaController = {
// per-window mode. We'll add a new type property when we support
// other types of selectable personas, such as "random".
case "default":
- this._applyDefault();
+ this._applyDefault(document);
this._sessionStore.setWindowValue(window, "persona", "default");
break;
default:
- this._applyPersona(JSON.parse(persona));
+ this._applyPersona(JSON.parse(persona), document);
this._sessionStore.setWindowValue(window, "persona", persona);
break;
}
@@ -708,6 +739,8 @@ var PersonaController = {
}),
onPreviewPersona: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var window = document.defaultView;
if (!this._prefs.get("previewEnabled"))
return;
@@ -723,10 +756,10 @@ var PersonaController = {
// onResetPersona reset it.
switch (persona) {
case "default":
- this._applyDefault();
+ this._applyDefault(document);
break;
default:
- this._applyPersona(persona);
+ this._applyPersona(persona, document);
break;
}
} else {
@@ -750,6 +783,8 @@ var PersonaController = {
},
onResetPersona: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var window = document.defaultView;
if (!this._prefs.get("previewEnabled"))
return;
@@ -791,13 +826,15 @@ var PersonaController = {
event.target.setAttribute("personas", "true");
}),
- onSelectPreferences: PersonaService.wrap(function() {
+ onSelectPreferences: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var window = document.defaultView;
window.openDialog('chrome://personas/content/preferences.xul', '',
'chrome,titlebar,toolbar,centerscreen');
}),
- onEditCustomPersona: PersonaService.wrap(function() {
- this.openURLInTab("chrome://personas/content/customPersonaEditor.xul");
+ onEditCustomPersona: PersonaService.wrap(function(event) {
+ this.openURLInTab("chrome://personas/content/customPersonaEditor.xul", event);
}),
/**
@@ -880,46 +917,62 @@ var PersonaController = {
// Popup Construction
onMenuButtonMouseDown: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var menuButton = this.get_menuButton(document);
+ var menuPopup = this.get_menuPopup(document);
+
// If the menu popup isn't on the menu button, then move the popup
// onto the button so the popup appears when the user clicks it.
// We'll move the popup back onto the Personas menu in the Tools menu
// when the popup hides.
// FIXME: remove this workaround once bug 461899 is fixed.
- if (this._menuPopup.parentNode != this._menuButton)
- this._menuButton.appendChild(this._menuPopup);
+ if (menuPopup.parentNode != menuButton)
+ menuButton.appendChild(menuPopup);
}),
onToolbarButtonMouseDown: PersonaService.wrap(function(event) {
+ var document = event.currentTarget.ownerDocument;
+ var toolbarButton = this.get_toolbarButton(document);
+ var menuPopup = this.get_menuPopup(document);
+
// If the menu popup isn't on the toolbar button, then move the popup
// onto the button so the popup appears when the user clicks it.
// We'll move the popup back onto the Personas menu in the Tools menu
// when the popup hides.
// FIXME: remove this workaround once bug 461899 is fixed.
- if (this._menuPopup.parentNode != this._toolbarButton)
- this._toolbarButton.appendChild(this._menuPopup);
+ if (menuPopup.parentNode != toolbarButton)
+ toolbarButton.appendChild(menuPopup);
}),
onPopupShowing: PersonaService.wrap(function(event) {
- if (event.target == this._menuPopup)
- this._rebuildMenu();
+ var document = event.currentTarget.ownerDocument;
+ var menuPopup = this.get_menuPopup(document);
+
+ if (event.target == menuPopup)
+ this._rebuildMenu(document, menuPopup);
return true;
}),
onPopupHiding: PersonaService.wrap(function(event) {
- if (event.target == this._menuPopup) {
+ var document = event.currentTarget.ownerDocument;
+ var menuPopup = this.get_menuPopup(document);
+
+ var menu = this.get_menu(document);
+ if (event.target == menuPopup) {
// If the menu popup isn't on the Personas menu in the Tools menu,
// then move the popup back onto that menu so the popup appears when
// the user selects it. We'll move the popup back onto the menu button
// in onMenuButtonMouseDown when the user clicks on the menu button.
- if (this._menuPopup.parentNode != this._menu) {
- this._menuPopup.parentNode.removeAttribute("open");
- this._menu.appendChild(this._menuPopup);
+ if (menuPopup.parentNode != menu) {
+ menuPopup.parentNode.removeAttribute("open");
+ menu.appendChild(menuPopup);
}
}
}),
- _rebuildMenu: function() {
+ _rebuildMenu: function(document, menuPopup) {
+
// If we don't have personas data, we won't be able to fully build the menu,
// and we'll display a message to that effect in tooltips over the parts
// of the menu that are data-dependent (the Most Popular, New, and
@@ -934,7 +987,7 @@ var PersonaController = {
// Remove everything between the two separators.
while (openingSeparator.nextSibling && openingSeparator.nextSibling != closingSeparator)
- this._menuPopup.removeChild(openingSeparator.nextSibling);
+ menuPopup.removeChild(openingSeparator.nextSibling);
// Update the item that identifies the current persona.
let personaStatus = document.getElementById("persona-current");
@@ -959,7 +1012,7 @@ var PersonaController = {
let personaStatusDetail = document.getElementById("persona-current-view-detail");
personaStatusDetail.setAttribute("disabled", PersonaService.currentPersona.detailURL ? "false" : "true");
personaStatusDetail.setAttribute("label", this._strings.get("viewDetail"));
- personaStatusDetail.setAttribute("oncommand", "PersonaController.openURLInTab(this.getAttribute('href'))");
+ personaStatusDetail.addEventListener("command", PersonaController.viewDetailListener, true);
personaStatusDetail.setAttribute("href", PersonaService.currentPersona.detailURL);
let personaStatusDesigner = document.getElementById("persona-current-view-designer");
@@ -974,7 +1027,7 @@ var PersonaController = {
personaStatusDesigner.removeAttribute("collapsed");
let designerLabel = persona.author || persona.username;
personaStatusDesigner.setAttribute("label", this._strings.get("viewDesigner", [designerLabel]));
- personaStatusDesigner.setAttribute("oncommand", "PersonaController.openURLInTab(this.getAttribute('href'))");
+ personaStatusDesigner.addEventListener("command", PersonaController.viewDesignerListener, true);
personaStatusDesigner.setAttribute("href", persona.authorURL);
}
@@ -997,13 +1050,13 @@ var PersonaController = {
} else if (!PersonaService.favorites) {
let item = popupmenu.appendChild(document.createElement("menuitem"));
item.setAttribute("label", this._strings.get("favoritesSignIn"));
- item.setAttribute("oncommand", "PersonaController.openURLInTab(this.getAttribute('href'))");
+ item.addEventListener("command", PersonaController.favoritesSignInListener, true);
item.setAttribute("href", PersonaService.getURL("favorites-browse"));
} else {
let favorites = PersonaService.favorites;
if (favorites.length) {
for each(let persona in favorites)
- popupmenu.appendChild(this._createPersonaItem(persona));
+ popupmenu.appendChild(this._createPersonaItem(persona, document));
popupmenu.appendChild(document.createElement("menuseparator"));
// Disable random from favorites menu item if per-window
@@ -1014,18 +1067,18 @@ var PersonaController = {
// item.setAttribute("type", "checkbox");
item.setAttribute("checked", (PersonaService.selected == "randomFavorite"));
item.setAttribute("autocheck", "false");
- item.setAttribute("oncommand", "PersonaController.toggleFavoritesRotation()");
+ item.addEventListener("command", PersonaController.useRandomPersonaInListener, true);
}
}
// go to my favorites menu item
let item = popupmenu.appendChild(document.createElement("menuitem"));
item.setAttribute("label", this._strings.get("favoritesGoTo"));
- item.setAttribute("oncommand", "PersonaController.openURLInTab(this.getAttribute('href'))");
+ item.addEventListener("command", PersonaController.favoritesGoToListener, true);
item.setAttribute("href", PersonaService.getURL("favorites-browse"));
}
- this._menuPopup.insertBefore(menu, closingSeparator);
+ menuPopup.insertBefore(menu, closingSeparator);
}
// Create the "Recently Selected" menu.
@@ -1036,12 +1089,12 @@ var PersonaController = {
let recentPersonas = PersonaService.getRecentPersonas();
for each(let persona in recentPersonas) {
- popupmenu.appendChild(this._createPersonaItem(persona));
+ popupmenu.appendChild(this._createPersonaItem(persona, document));
}
menu.appendChild(popupmenu);
- this._menuPopup.insertBefore(menu, closingSeparator);
- this._menuPopup.insertBefore(document.createElement("menuseparator"), closingSeparator);
+ menuPopup.insertBefore(menu, closingSeparator);
+ menuPopup.insertBefore(document.createElement("menuseparator"), closingSeparator);
}
// Create the Featured menu.
@@ -1052,20 +1105,20 @@ var PersonaController = {
if (PersonaService.personas) {
let popupmenu = document.createElement("menupopup");
for each(let persona in PersonaService.personas.featured)
- popupmenu.appendChild(this._createPersonaItem(persona));
+ popupmenu.appendChild(this._createPersonaItem(persona, document));
// Create an item that picks a random persona from the category.
// Disable random from category menu item if per-window
// personas are enabled.
if (!this._prefs.get("perwindow")) {
popupmenu.appendChild(document.createElement("menuseparator"));
- popupmenu.appendChild(this._createRandomItem(this._strings.get("featured"), "featured"));
+ popupmenu.appendChild(this._createRandomItem(this._strings.get("featured"), "featured", document));
}
// Create an item that links to the gallery for this category.
popupmenu.appendChild(
this._createViewMoreItem(this._strings.get("featured"),
- "featured"));
+ "featured", document));
menu.appendChild(popupmenu);
} else {
@@ -1073,7 +1126,7 @@ var PersonaController = {
menu.setAttribute("tooltip", "personasDataUnavailableTooltip");
}
- this._menuPopup.insertBefore(menu, closingSeparator);
+ menuPopup.insertBefore(menu, closingSeparator);
}
// Update the Custom menu. Custom personas unavailable in per-window
@@ -1087,7 +1140,7 @@ var PersonaController = {
}
},
- _createPersonaItem: function(persona) {
+ _createPersonaItem: function(persona, document) {
let item = document.createElement("menuitem");
let theme = PersonaService.getPersonaJSON(persona);
@@ -1106,7 +1159,9 @@ var PersonaController = {
PersonaService.currentPersona &&
PersonaService.currentPersona.id == persona.id));
item.setAttribute("autocheck", "false");
- item.setAttribute("oncommand", "PersonaController.onSelectPersona(event)");
+ item.addEventListener("command", function(event) {
+ PersonaController.onSelectPersona(event)
+ }, true);
item.setAttribute("recent", persona.recent ? "true" : "false");
item.setAttribute("persona", JSON.stringify(theme));
item.addEventListener("DOMMenuItemActive", function(evt) {
@@ -1119,12 +1174,15 @@ var PersonaController = {
return item;
},
- _createViewMoreItem: function(category, categoryId) {
+ _createViewMoreItem: function(category, categoryId, document) {
+
let item = document.createElement("menuitem");
item.setAttribute("class", "menuitem-iconic");
item.setAttribute("label", this._strings.get("viewMoreFrom", [category]));
- item.setAttribute("oncommand", "PersonaController.openURLInTab(this.getAttribute('href'))");
+ item.addEventListener("command", function(event) {
+ PersonaController.openURLInTab(this.getAttribute('href'), event)
+ }, true);
if (categoryId == "featured") {
item.setAttribute("href", PersonaService.getURL("browse", {
@@ -1135,12 +1193,15 @@ var PersonaController = {
return item;
},
- _createRandomItem: function(aCategoryName, aCategory) {
+ _createRandomItem: function(aCategoryName, aCategory, document) {
+
let item = document.createElement("menuitem");
item.setAttribute("class", "menuitem-iconic");
item.setAttribute("label", this._strings.get("useRandomPersona", [aCategoryName]));
- item.setAttribute("oncommand", "PersonaController.onSelectPersona(event)");
+ item.addEventListener("command", function(event) {
+ PersonaController.onSelectPersona(event)
+ }, true);
item.setAttribute("persona", "random");
item.setAttribute("category", aCategory || aCategoryName);
@@ -1153,7 +1214,233 @@ var PersonaController = {
} else {
PersonaService.selected = "current";
}
+ },
+
+ widgetCreated: false,
+ viewDetailListener: function(event) {
+ PersonaController.openURLInTab(this.getAttribute('href'), event);
+ },
+ viewDesignerListener: function(event) {
+ PersonaController.openURLInTab(this.getAttribute('href'), event);
+ },
+ favoritesSignInListener: function(event) {
+ PersonaController.openURLInTab(this.getAttribute('href'), event);
+ },
+ useRandomPersonaInListener: function(event) {
+ PersonaController.toggleFavoritesRotation();
+ },
+ favoritesGoToListener: function(event) {
+ PersonaController.openURLInTab(this.getAttribute('href'), event);
+ },
+ dtd: function(entity_string) {
+ var path = "chrome://personas/locale/personas_bootstrap.properties";
+ var overlayProperties = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService).createBundle(path);
+ return overlayProperties.GetStringFromName(entity_string.replace(/^(&)/, "").replace(/(;)$/, ""));
+ },
+ createToolbarButton: function(document) {
+ var toolbarbutton = document.createElement('toolbarbutton');
+ //toolbarbutton.setAttribute("onmousedown", "PersonaController.onToolbarButtonMouseDown();");
+ toolbarbutton.addEventListener("mousedown", function(event) {
+ var window = event.currentTarget.ownerDocument.defaultView;
+ PersonaController.onToolbarButtonMouseDown(event);
+ }, true);
+ toolbarbutton.setAttribute("label", this.dtd("&personas_app_title;"));
+ toolbarbutton.setAttribute("type", "menu");
+ toolbarbutton.setAttribute("id", "personas-toolbar-button"); //personas-toolbar-button
+ toolbarbutton.setAttribute("class", (PersonaService.appInfo.ID != PersonaController.SEAMONKEY_ID) ? "toolbarbutton-1" : "toolbarbutton-1 seamonkey");
+ return toolbarbutton;
+ },
+ addToolbarButton: function(window) {
+ var document = window.document;
+ if (window.CustomizableUI) {
+ if (!PersonaController.widgetCreated) {
+ window.CustomizableUI.createWidget({
+ type: 'custom',
+ defaultArea: window.CustomizableUI.AREA_NAVBAR,
+ id: "personas-toolbar-button",
+ onBuild: function(aDocument) {
+ return PersonaController.createToolbarButton(aDocument);
+ }
+ });
+ }
+ PersonaController.widgetCreated = true;
+ if (!PersonaController._prefs.get("tbplaced")) PersonaController.placeToolbarButton(window);
+ } else {
+ var toolbarbutton = PersonaController.createToolbarButton(document);
+ (document.getElementById("navigator-toolbox") || document.getElementById("mail-toolbox")).palette.appendChild(toolbarbutton);
+ //PersonaController.placeToolbarButton(window,toolbarbutton);
+ if (PersonaService.appInfo.ID != "{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}") PersonaController.placeToolbarButton(window, toolbarbutton);
+ else {
+ window.setTimeout(function() {
+ PersonaController.placeToolbarButton(window, toolbarbutton);
+ }, 1000)
+ }
+ }
+ window.addEventListener("aftercustomization", PersonaController.afterCustomization, false);
+ },
+ removeToolbarButton: function(window) {
+ if (window.CustomizableUI) {
+ window.CustomizableUI.destroyWidget("personas-toolbar-button");
+ } else {
+ var document = window.document;
+ var buttonId = "personas-toolbar-button";
+ var button = document.getElementById(buttonId);
+ button.parentNode.removeChild(button);
+ }
+ window.removeEventListener("aftercustomization", PersonaController.afterCustomization, false);
+ PersonaController.widgetCreated = false;
+ },
+ placeToolbarButton: function(window, toolbarbutton) {
+ if (!PersonaController._prefs.get("tbinsert")) return;
+ var document = window.document;
+ if (window.CustomizableUI) {
+ window.CustomizableUI.addWidgetToArea("personas-toolbar-button", window.CustomizableUI.AREA_NAVBAR, 5);
+ PersonaController._prefs.set("tbplaced", true);
+ } else {
+ var toolbar = document.querySelector("[currentset^='" + toolbarbutton.id + ",'],[currentset*='," + toolbarbutton.id +
+ ",'],[currentset$='," + toolbarbutton.id + "']");
+ if (toolbar) {
+ var currentset = toolbar.getAttribute("currentset").split(",");
+ var i = currentset.indexOf(toolbarbutton.id) + 1;
+ var before = null;
+ while (i < currentset.length && !(before = document.getElementById(currentset[i]))) i++;
+ toolbar.insertItem(toolbarbutton.id, before, null, false);
+ } else {
+ var navbar = (document.getElementById("nav-bar") || document.getElementById("mail-bar3") || document.getElementById("msgToolbar"));
+ navbar.insertItem(toolbarbutton.id, null, null, false);
+ }
+ if (!document.getElementById(toolbarbutton.id))(toolbar || navbar).insertItem(toolbarbutton.id, null, null, false);
+ }
+ },
+ afterCustomization: function(event) {
+ var window = event.currentTarget;
+ var document = window.document;
+ var ythdprefsinstance = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+ if (!document.getElementById("personas-toolbar-button") || document.getElementById("personas-toolbar-button").parentNode.id == "BrowserToolbarPalette") ythdprefsinstance.setBoolPref("extensions.personas.tbinsert", false);
+ else ythdprefsinstance.setBoolPref("extensions.personas.tbinsert", true);
+ },
+ addToolsMenu: function(window) {
+ var document = window.document;
+ var windowtype = window.document.documentElement.getAttribute("windowtype");
+
+ var tooltip = document.createElement('tooltip');
+ tooltip.setAttribute("id", "personasDataUnavailableTooltip");
+ document.getElementById("mainPopupSet").appendChild(tooltip);
+
+ var personasmenu = document.createElement('menu');
+ if (windowtype == "navigator:browser") personasmenu.setAttribute("insertafter", "menu_openAddons");
+ else if (windowtype == "mail:3pane") personasmenu.setAttribute("insertafter", "addonsManager");
+ else personasmenu.setAttribute("insertafter", "menu_openAddons");
+ personasmenu.setAttribute("label", this.dtd("&personas_app_title;"));
+ personasmenu.setAttribute("class", "menu-iconic");
+ personasmenu.setAttribute("id", "personas-menu");
+
+ var personasselectormenu = document.createElement('menupopup');
+ personasselectormenu.addEventListener("popuphiding", function(event) {
+ PersonaController.onPopupHiding(event)
+ }, true);
+ personasselectormenu.addEventListener("popupshowing", function(event) {
+ return PersonaController.onPopupShowing(event)
+ }, true);
+ personasselectormenu.setAttribute("id", "personas-selector-menu");
+ personasmenu.appendChild(personasselectormenu);
+
+ var personacurrent = document.createElement('menu');
+ personacurrent.setAttribute("class", "menu-iconic");
+ personacurrent.setAttribute("id", "persona-current");
+ personasselectormenu.appendChild(personacurrent);
+
+ var personacurrentcontextmenu = document.createElement('menupopup');
+ personacurrentcontextmenu.setAttribute("id", "persona-current-context-menu");
+ personacurrent.appendChild(personacurrentcontextmenu);
+
+ var personacurrentviewdetail = document.createElement('menuitem');
+ personacurrentviewdetail.setAttribute("id", "persona-current-view-detail");
+ personacurrentcontextmenu.appendChild(personacurrentviewdetail);
+
+ var personacurrentviewdesigner = document.createElement('menuitem');
+ personacurrentviewdesigner.setAttribute("id", "persona-current-view-designer");
+ personacurrentcontextmenu.appendChild(personacurrentviewdesigner);
+
+ var personasopeningseparator = document.createElement('menuseparator');
+ personasopeningseparator.setAttribute("id", "personasOpeningSeparator");
+ personasselectormenu.appendChild(personasopeningseparator);
+
+ var personasclosingseparator = document.createElement('menuseparator');
+ personasclosingseparator.setAttribute("hidden", "true");
+ personasclosingseparator.setAttribute("id", "personasClosingSeparator");
+ personasselectormenu.appendChild(personasclosingseparator);
+
+ var personaspluscustommenu = document.createElement('menu');
+ personaspluscustommenu.setAttribute("id", "personas-plus-custom-menu");
+ personasselectormenu.appendChild(personaspluscustommenu);
+
+ var personaspluscustomcontextmenu = document.createElement('menupopup');
+ personaspluscustomcontextmenu.setAttribute("id", "personas-plus-custom-context-menu");
+ personaspluscustommenu.appendChild(personaspluscustomcontextmenu);
+
+ var personaspluscustommenuapply = document.createElement('menuitem');
+ personaspluscustommenuapply.addEventListener("command", function(event) {
+ PersonaController.onSelectPersona(event)
+ }, true);
+ personaspluscustommenuapply.setAttribute("persona", "custom");
+ personaspluscustommenuapply.setAttribute("label", this.dtd("&contextApply.label;"));
+ personaspluscustommenuapply.setAttribute("id", "personas-plus-custom-menu-apply");
+ personaspluscustomcontextmenu.appendChild(personaspluscustommenuapply);
+
+ var menuitem = document.createElement('menuitem');
+ menuitem.addEventListener("command", function(event) {
+ PersonaController.onEditCustomPersona(event)
+ }, true);
+ menuitem.setAttribute("label", this.dtd("&contextEdit.label;"));
+ personaspluscustomcontextmenu.appendChild(menuitem);
+
+ var menuseparator = document.createElement('menuseparator');
+ personasselectormenu.appendChild(menuseparator);
+
+ var defaultpersona = document.createElement('menuitem');
+ defaultpersona.addEventListener("command", function(event) {
+ PersonaController.onSelectPersona(event)
+ }, true);
+ defaultpersona.setAttribute("autocheck", "false");
+ defaultpersona.setAttribute("type", "checkbox");
+ defaultpersona.setAttribute("persona", "default");
+ defaultpersona.setAttribute("label", this.dtd("&useDefaultPersona.label;"));
+ defaultpersona.setAttribute("id", "defaultPersona");
+ personasselectormenu.appendChild(defaultpersona);
+
+ var menuseparator_0 = document.createElement('menuseparator');
+ personasselectormenu.appendChild(menuseparator_0);
+
+ var menuitem_0 = document.createElement('menuitem');
+ menuitem_0.addEventListener("command", function(event) {
+ PersonaController.onSelectPreferences(event)
+ }, true);
+ menuitem_0.setAttribute("label", this.dtd("&preferences.label;"));
+ personasselectormenu.appendChild(menuitem_0);
+
+ (document.getElementById("menu_ToolsPopup") || document.getElementById("taskPopup")).appendChild(personasmenu);
+
+ var personasselectorbutton = document.createElement('statusbarpanel');
+ personasselectorbutton.setAttribute("id", "personas-selector-button");
+ personasselectorbutton.addEventListener("mousedown", function(event) {
+ PersonaController.onMenuButtonMouseDown(event)
+ }, true);
+ personasselectorbutton.setAttribute("insertbefore", "statusbar-display");
+ if (windowtype == "navigator:browser") personasselectorbutton.setAttribute("insertbefore", "statusbar-display");
+ else if (windowtype == "mail:3pane") personasselectorbutton.setAttribute("insertbefore", "addonsManager");
+ else personasselectorbutton.setAttribute("insertbefore", "statusbar-display");
+ personasselectorbutton.setAttribute("class", "statusbarpanel-menu-iconic");
+ if (document.getElementById("status-bar")) document.getElementById("status-bar").appendChild(personasselectorbutton);
+
+ },
+ removeToolsMenu: function(window) {
+ var document = window.document;
+ document.getElementById("personasDataUnavailableTooltip").parentNode.removeChild(document.getElementById("personasDataUnavailableTooltip"));
+ document.getElementById("personas-menu").parentNode.removeChild(document.getElementById("personas-menu"));
+ document.getElementById("personas-selector-button").parentNode.removeChild(document.getElementById("personas-selector-button"));
}
+
};
// Import generic modules into the persona controller rather than
@@ -1170,10 +1457,3 @@ Cu.import("resource://personas/modules/URI.js", PersonaController);
try {
Cu.import("resource://gre/modules/LightweightThemeManager.jsm", PersonaController);
} catch (e) {}
-
-window.addEventListener("load", PersonaService.wrap(function(e) {
- PersonaController.startUp(e)
-}), false);
-window.addEventListener("unload", PersonaService.wrap(function(e) {
- PersonaController.shutDown(e)
-}), false);
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/personasplus.git
More information about the Pkg-mozext-commits
mailing list