Bug 518111 - Avoid using <stringbundle> and switch to nsIStringBundleService [r=mbrubeck r=vingtetun]

This commit is contained in:
Mark Finkle 2011-01-03 15:07:41 -05:00
Родитель 034a88bbd0
Коммит 510c49ead3
10 изменённых файлов: 150 добавлений и 158 удалений

Просмотреть файл

@ -93,8 +93,6 @@ var Feedback = {
updateRestart: function updateRestart() {
let msg = document.getElementById("feedback-messages");
if (msg) {
let strings = Elements.browserBundle;
let value = "restart-app";
let notification = msg.getNotificationWithValue(value);
if (notification) {
@ -122,13 +120,15 @@ var Feedback = {
}
};
let strings = Strings.browser;
let buttons = [ {
label: strings.getString("notificationRestart.button"),
label: strings.GetStringFromName("notificationRestart.button"),
accessKey: "",
callback: restartCallback
} ];
let message = strings.getString("notificationRestart.normal");
let message = strings.GetStringFromName("notificationRestart.normal");
msg.appendNotification(message, value, "", msg.PRIORITY_WARNING_LOW, buttons);
}
}

Просмотреть файл

@ -320,7 +320,7 @@
let children = items.childNodes;
let iterCount = Math.max(children.length, matchCount);
let searchSubtitle = Elements.browserBundle.stringBundle.formatStringFromName("opensearch.searchFor", [searchString], 1);
let searchSubtitle = Strings.browser.formatStringFromName("opensearch.searchFor", [searchString], 1);
for (let i = 0; i < iterCount; ++i) {
let item = children.item(i);
@ -929,7 +929,7 @@
<field name="_desktopFolder"><![CDATA[
({
itemId: this._desktopFolderId, tags: "", uri: "",
title: Elements.browserBundle.getString("bookmarkList.desktop"),
title: Strings.browser.GetStringFromName("bookmarkList.desktop"),
type: Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER
})
]]></field>

Просмотреть файл

@ -75,7 +75,6 @@ XPCOMUtils.defineLazyServiceGetter(window, "gFocusManager", "@mozilla.org/focus-
let Elements = {};
[
["browserBundle", "bundle_browser"],
["contentShowing", "bcast_contentShowing"],
["urlbarState", "bcast_urlbarState"],
["stack", "stack"],
@ -93,6 +92,20 @@ let Elements = {};
});
});
/**
* Cache of commonly used string bundles.
*/
var Strings = {};
[
["browser", "chrome://browser/locale/browser.properties"],
["brand", "chrome://branding/locale/brand.properties"]
].forEach(function (aStringBundle) {
let [name, bundle] = aStringBundle;
XPCOMUtils.defineLazyGetter(Strings, name, function() {
return Services.strings.createBundle(bundle);
});
});
const TOOLBARSTATE_LOADING = 1;
const TOOLBARSTATE_LOADED = 2;
@ -1111,9 +1124,8 @@ var BrowserUI = {
break;
case "cmd_sanitize":
{
let strings = Elements.browserBundle;
let title = strings.getString("clearPrivateData.title");
let message = strings.getString("clearPrivateData.message");
let title = Strings.browser.GetStringFromName("clearPrivateData.title");
let message = Strings.browser.GetStringFromName("clearPrivateData.message");
let clear = Services.prompt.confirm(window, title, message);
if (clear) {
// disable the button temporarily to indicate something happened
@ -1152,10 +1164,10 @@ var BrowserUI = {
let locked = Services.prefs.getBoolPref("toolkit.screen.lock");
Services.prefs.setBoolPref("toolkit.screen.lock", !locked);
let strings = Elements.browserBundle;
let strings = Strings.browser;
let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
alerts.showAlertNotification(null, strings.getString("alertLockScreen"),
strings.getString("alertLockScreen." + (!locked ? "locked" : "unlocked")), false, "", null);
alerts.showAlertNotification(null, strings.GetStringFromName("alertLockScreen"),
strings.GetStringFromName("alertLockScreen." + (!locked ? "locked" : "unlocked")), false, "", null);
break;
}
}
@ -1320,7 +1332,7 @@ var PageActions = {
permissions.push("pageactions.password");
}
let descriptions = permissions.map(function(s) Elements.browserBundle.getString(s));
let descriptions = permissions.map(function(s) Strings.browser.GetStringFromName(s));
aNode.setAttribute("description", descriptions.join(", "));
return (permissions.length > 0);
@ -1397,9 +1409,8 @@ var PageActions = {
fileName = file.leafName;
});
#else
let strings = Elements.browserBundle;
let picker = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
picker.init(window, strings.getString("pageactions.saveas.pdf"), Ci.nsIFilePicker.modeSave);
picker.init(window, Strings.browser.GetStringFromName("pageactions.saveas.pdf"), Ci.nsIFilePicker.modeSave);
picker.appendFilter("PDF", "*.pdf");
picker.defaultExtension = "pdf";
@ -1506,7 +1517,7 @@ var NewTabPopup = {
},
_updateLabel: function nt_updateLabel() {
let newtabStrings = Elements.browserBundle.getString("newtabpopup.opened");
let newtabStrings = Strings.browser.GetStringFromName("newtabpopup.opened");
let label = PluralForm.get(this._tabs.length, newtabStrings).replace("#1", this._tabs.length);
this.box.firstChild.setAttribute("value", label);

Просмотреть файл

@ -391,11 +391,11 @@ var Browser = {
if (Services.prefs.prefHasUserValue("extensions.disabledAddons")) {
let addons = Services.prefs.getCharPref("extensions.disabledAddons").split(",");
if (addons.length > 0) {
let disabledStrings = Elements.browserBundle.getString("alertAddonsDisabled");
let disabledStrings = Strings.browser.GetStringFromName("alertAddonsDisabled");
let label = PluralForm.get(addons.length, disabledStrings).replace("#1", addons.length);
let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
alerts.showAlertNotification(URI_GENERIC_ICON_XPINSTALL, Elements.browserBundle.getString("alertAddons"),
alerts.showAlertNotification(URI_GENERIC_ICON_XPINSTALL, Strings.browser.GetStringFromName("alertAddons"),
label, false, "", null);
}
Services.prefs.clearUserPref("extensions.disabledAddons");
@ -431,12 +431,12 @@ var Browser = {
// Default to true: if it were false, we wouldn't get this far
let warnOnClose = { value: true };
let messageBase = Elements.browserBundle.getString("tabs.closeWarning");
let messageBase = Strings.browser.GetStringFromName("tabs.closeWarning");
let message = PluralForm.get(numTabs, messageBase).replace("#1", numTabs);
let title = Elements.browserBundle.getString("tabs.closeWarningTitle");
let closeText = Elements.browserBundle.getString("tabs.closeButton");
let checkText = Elements.browserBundle.getString("tabs.closeWarningPromptMe");
let title = Strings.browser.GetStringFromName("tabs.closeWarningTitle");
let closeText = Strings.browser.GetStringFromName("tabs.closeButton");
let checkText = Strings.browser.GetStringFromName("tabs.closeWarningPromptMe");
let buttons = (prompt.BUTTON_TITLE_IS_STRING * prompt.BUTTON_POS_0) +
(prompt.BUTTON_TITLE_CANCEL * prompt.BUTTON_POS_1);
@ -1746,13 +1746,13 @@ ContentCustomKeySender.prototype = {
function IdentityHandler() {
this._staticStrings = {};
this._staticStrings[this.IDENTITY_MODE_DOMAIN_VERIFIED] = {
encryption_label: Elements.browserBundle.getString("identity.encrypted2")
encryption_label: Strings.browser.GetStringFromName("identity.encrypted2")
};
this._staticStrings[this.IDENTITY_MODE_IDENTIFIED] = {
encryption_label: Elements.browserBundle.getString("identity.encrypted2")
encryption_label: Strings.browser.GetStringFromName("identity.encrypted2")
};
this._staticStrings[this.IDENTITY_MODE_UNKNOWN] = {
encryption_label: Elements.browserBundle.getString("identity.unencrypted2")
encryption_label: Strings.browser.GetStringFromName("identity.unencrypted2")
};
// Close the popup when reloading the page
@ -1852,7 +1852,7 @@ IdentityHandler.prototype = {
* @param newMode The newly set identity mode. Should be one of the IDENTITY_MODE_* constants.
*/
setIdentityMessages: function(newMode) {
let strings = Elements.browserBundle;
let strings = Strings.browser;
if (newMode == this.IDENTITY_MODE_DOMAIN_VERIFIED) {
var iData = this.getIdentityData();
@ -1869,21 +1869,19 @@ IdentityHandler.prototype = {
// Verifier is either the CA Org, for a normal cert, or a special string
// for certs that are trusted because of a security exception.
var tooltip = strings.getFormattedString("identity.identified.verifier",
[iData.caOrg]);
var tooltip = strings.formatStringFromName("identity.identified.verifier", [iData.caOrg], 1);
// Check whether this site is a security exception.
if (iData.isException)
tooltip = strings.getString("identity.identified.verified_by_you");
tooltip = strings.GetStringFromName("identity.identified.verified_by_you");
}
else if (newMode == this.IDENTITY_MODE_IDENTIFIED) {
// If it's identified, then we can populate the dialog with credentials
iData = this.getIdentityData();
tooltip = strings.getFormattedString("identity.identified.verifier",
[iData.caOrg]);
tooltip = strings.formatStringFromName("identity.identified.verifier", [iData.caOrg], 1);
}
else {
tooltip = strings.getString("identity.unknown.tooltip");
tooltip = strings.GetStringFromName("identity.unknown.tooltip");
}
// Push the appropriate strings out to the UI
@ -1908,12 +1906,10 @@ IdentityHandler.prototype = {
var supplemental = "";
var verifier = "";
let strings = Elements.browserBundle;
if (newMode == this.IDENTITY_MODE_DOMAIN_VERIFIED) {
var iData = this.getIdentityData();
var host = this.getEffectiveHost();
var owner = strings.getString("identity.ownerUnknown2");
var owner = strings.GetStringFromName("identity.ownerUnknown2");
verifier = this._identityBox.tooltipText;
supplemental = "";
}
@ -1928,14 +1924,12 @@ IdentityHandler.prototype = {
if (iData.city)
supplemental += iData.city + " ";
if (iData.state && iData.country)
supplemental += strings.getFormattedString("identity.identified.state_and_country",
[iData.state, iData.country]);
supplemental += Strings.browser.formatStringFromName("identity.identified.state_and_country", [iData.state, iData.country], 2);
else if (iData.state) // State only
supplemental += iData.state;
else if (iData.country) // Country only
supplemental += iData.country;
}
else {
} else {
// These strings will be hidden in CSS anyhow
host = "";
owner = "";
@ -2044,16 +2038,15 @@ var PopupBlockerObserver = {
// it.
if (!cBrowser.pageReport.reported) {
if (Services.prefs.getBoolPref("privacy.popups.showBrowserMessage")) {
var brandBundle = document.getElementById("bundle_brand");
var brandShortName = brandBundle.getString("brandShortName");
var brandShortName = Strings.brand.GetStringFromName("brandShortName");
var message;
var popupCount = cBrowser.pageReport.length;
let strings = Elements.browserBundle;
let strings = Strings.browser;
if (popupCount > 1)
message = strings.getFormattedString("popupWarningMultiple", [brandShortName, popupCount]);
message = strings.formatStringFromName("popupWarningMultiple", [brandShortName, popupCount], 2);
else
message = strings.getFormattedString("popupWarning", [brandShortName]);
message = strings.formatStringFromName("popupWarning", [brandShortName], 1);
var notificationBox = Browser.getNotificationBox();
var notification = notificationBox.getNotificationWithValue("popup-blocked");
@ -2063,17 +2056,17 @@ var PopupBlockerObserver = {
else {
var buttons = [
{
label: strings.getString("popupButtonAllowOnce"),
label: strings.GetStringFromName("popupButtonAllowOnce"),
accessKey: null,
callback: function() { PopupBlockerObserver.showPopupsForSite(); }
},
{
label: strings.getString("popupButtonAlwaysAllow2"),
label: strings.GetStringFromName("popupButtonAlwaysAllow2"),
accessKey: null,
callback: function() { PopupBlockerObserver.allowPopupsForSite(true); }
},
{
label: strings.getString("popupButtonNeverWarn2"),
label: strings.GetStringFromName("popupButtonNeverWarn2"),
accessKey: null,
callback: function() { PopupBlockerObserver.allowPopupsForSite(false); }
}
@ -2127,18 +2120,17 @@ var PopupBlockerObserver = {
var XPInstallObserver = {
observe: function xpi_observer(aSubject, aTopic, aData)
{
var brandBundle = document.getElementById("bundle_brand");
switch (aTopic) {
case "addon-install-started":
var messageString = Elements.browserBundle.getString("alertAddonsDownloading");
var messageString = Strings.browser.GetStringFromName("alertAddonsDownloading");
ExtensionsView.showAlert(messageString);
break;
case "addon-install-blocked":
var installInfo = aSubject.QueryInterface(Ci.amIWebInstallInfo);
var host = installInfo.originatingURI.host;
var brandShortName = brandBundle.getString("brandShortName");
var brandShortName = Strings.brand.GetStringFromName("brandShortName");
var notificationName, messageString, buttons;
var strings = Elements.browserBundle;
var strings = Strings.browser;
var enabled = true;
try {
enabled = Services.prefs.getBoolPref("xpinstall.enabled");
@ -2147,14 +2139,13 @@ var XPInstallObserver = {
if (!enabled) {
notificationName = "xpinstall-disabled";
if (Services.prefs.prefIsLocked("xpinstall.enabled")) {
messageString = strings.getString("xpinstallDisabledMessageLocked");
messageString = strings.GetStringFromName("xpinstallDisabledMessageLocked");
buttons = [];
}
else {
messageString = strings.getFormattedString("xpinstallDisabledMessage",
[brandShortName, host]);
messageString = strings.formatStringFromName("xpinstallDisabledMessage", [brandShortName, host], 2);
buttons = [{
label: strings.getString("xpinstallDisabledButton"),
label: strings.GetStringFromName("xpinstallDisabledButton"),
accessKey: null,
popup: null,
callback: function editPrefs() {
@ -2166,11 +2157,10 @@ var XPInstallObserver = {
}
else {
notificationName = "xpinstall";
messageString = strings.getFormattedString("xpinstallPromptWarning",
[brandShortName, host]);
messageString = strings.formatStringFromName("xpinstallPromptWarning", [brandShortName, host], 2);
buttons = [{
label: strings.getString("xpinstallPromptAllowButton"),
label: strings.GetStringFromName("xpinstallPromptAllowButton"),
accessKey: null,
popup: null,
callback: function() {
@ -2252,11 +2242,11 @@ var ContentCrashObserver = {
setTimeout(function(self) {
// Ask the user if we should reload or close the current tab. Other tabs
// will be reloaded when selected.
let title = Elements.browserBundle.getString("tabs.crashWarningTitle");
let message = Elements.browserBundle.getString("tabs.crashWarningMsg");
let submitText = Elements.browserBundle.getString("tabs.crashSubmitReport");
let reloadText = Elements.browserBundle.getString("tabs.crashReload");
let closeText = Elements.browserBundle.getString("tabs.crashClose");
let title = Strings.browser.GetStringFromName("tabs.crashWarningTitle");
let message = Strings.browser.GetStringFromName("tabs.crashWarningMsg");
let submitText = Strings.browser.GetStringFromName("tabs.crashSubmitReport");
let reloadText = Strings.browser.GetStringFromName("tabs.crashReload");
let closeText = Strings.browser.GetStringFromName("tabs.crashClose");
let buttons = Ci.nsIPrompt.BUTTON_POS_1_DEFAULT +
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_0) +
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_1);
@ -2593,34 +2583,33 @@ var OfflineApps = {
let notificationBox = Browser.getNotificationBox();
let notification = notificationBox.getNotificationWithValue(notificationID);
let strings = Elements.browserBundle;
let strings = Strings.browser;
if (notification) {
notification.documents.push(aRequest);
} else {
let buttons = [{
label: strings.getString("offlineApps.allow"),
label: strings.GetStringFromName("offlineApps.allow"),
accessKey: null,
callback: function() {
for (let i = 0; i < notification.documents.length; i++)
OfflineApps.allowSite(notification.documents[i], aTarget);
}
},{
label: strings.getString("offlineApps.never"),
label: strings.GetStringFromName("offlineApps.never"),
accessKey: null,
callback: function() {
for (let i = 0; i < notification.documents.length; i++)
OfflineApps.disallowSite(notification.documents[i]);
}
},{
label: strings.getString("offlineApps.notNow"),
label: strings.GetStringFromName("offlineApps.notNow"),
accessKey: null,
callback: function() { /* noop */ }
}];
const priority = notificationBox.PRIORITY_INFO_LOW;
let message = strings.getFormattedString("offlineApps.available", [host]);
notification = notificationBox.appendNotification(message, notificationID,
"", priority, buttons);
let message = strings.formatStringFromName("offlineApps.available", [host], 1);
notification = notificationBox.appendNotification(message, notificationID, "", priority, buttons);
notification.documents = [aRequest];
}
},

Просмотреть файл

@ -94,11 +94,6 @@
<script type="application/javascript" src="chrome://browser/content/sync.js"/>
#endif
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_browser" src="chrome://browser/locale/browser.properties"/>
<stringbundle id="bundle_brand" src="chrome://branding/locale/brand.properties"/>
</stringbundleset>
<broadcasterset id="broadcasterset">
<broadcaster id="bcast_contentShowing"/>
<broadcaster id="bcast_urlbarState" mode="view"/>

Просмотреть файл

@ -50,7 +50,7 @@ let ConsoleView = {
this._list = document.getElementById("console-box");
this._evalTextbox = document.getElementById("console-eval-textbox");
this._bundle = Elements.browserBundle;
this._bundle = Strings.browser;
this._count = 0;
this.limit = 250;
@ -142,7 +142,7 @@ let ConsoleView = {
let warning = aObject.flags & nsIScriptError.warningFlag != 0;
let typetext = warning ? "typeWarning" : "typeError";
row.setAttribute("typetext", this._bundle.getString(typetext));
row.setAttribute("typetext", this._bundle.GetStringFromName(typetext));
row.setAttribute("type", warning ? "warning" : "error");
row.setAttribute("msg", aObject.errorMessage);
row.setAttribute("category", aObject.category);

Просмотреть файл

@ -117,7 +117,7 @@ var DownloadsView = {
_ifEmptyShowMessage: function dv__ifEmptyShowMessage() {
// The header row is not counted in the list itemCount
if (this._list.itemCount == 0) {
let emptyString = Elements.browserBundle.getString("downloadsEmpty");
let emptyString = Strings.browser.GetStringFromName("downloadsEmpty");
let emptyItem = this._list.appendItem(emptyString);
emptyItem.id = "dl-empty-message";
}
@ -294,21 +294,21 @@ var DownloadsView = {
},
_updateStatus: function dv__updateStatus(aItem) {
let strings = Elements.browserBundle;
let strings = Strings.browser;
let status = "";
// Display the file size, but show "Unknown" for negative sizes
let fileSize = Number(aItem.getAttribute("maxBytes"));
let sizeText = strings.getString("downloadsUnknownSize");
let sizeText = strings.GetStringFromName("downloadsUnknownSize");
if (fileSize >= 0) {
let [size, unit] = DownloadUtils.convertByteUnits(fileSize);
sizeText = this._replaceInsert(strings.getString("downloadsKnownSize"), 1, size);
sizeText = this._replaceInsert(strings.GetStringFromName("downloadsKnownSize"), 1, size);
sizeText = this._replaceInsert(sizeText, 2, unit);
}
// Insert 1 is the download size
status = this._replaceInsert(strings.getString("downloadsStatus"), 1, sizeText);
status = this._replaceInsert(strings.GetStringFromName("downloadsStatus"), 1, sizeText);
// Insert 2 is the eTLD + 1 or other variations of the host
let [displayHost, fullHost] = DownloadUtils.getURIHost(this._getReferrerOrSource(aItem));
@ -323,7 +323,7 @@ var DownloadsView = {
let leftTime = totalTime - passedTime;
let [time, lastTime] = DownloadUtils.getTimeLeft(leftTime);
let stringTime = this._replaceInsert(strings.getString("downloadsTime"), 1, time);
let stringTime = this._replaceInsert(strings.GetStringFromName("downloadsTime"), 1, time);
status = status + " " + stringTime;
}
@ -344,7 +344,7 @@ var DownloadsView = {
// Get the end time to display
let end = new Date(parseInt(aItem.getAttribute("endTime")));
let strings = Elements.browserBundle;
let strings = Strings.browser;
// Figure out if the end time is from today, yesterday, this week, etc.
let dateTime;
@ -354,7 +354,7 @@ var DownloadsView = {
}
else if (today - end < (24 * 60 * 60 * 1000)) {
// Download finished after yesterday started, show yesterday
dateTime = strings.getString("donwloadsYesterday");
dateTime = strings.GetStringFromName("donwloadsYesterday");
}
else if (today - end < (6 * 24 * 60 * 60 * 1000)) {
// Download finished after last week started, show day of week
@ -365,7 +365,7 @@ var DownloadsView = {
let month = end.toLocaleFormat("%B");
// Remove leading 0 by converting the date string to a number
let date = Number(end.toLocaleFormat("%d"));
dateTime = this._replaceInsert(strings.getString("downloadsMonthDate"), 1, month);
dateTime = this._replaceInsert(strings.GetStringFromName("downloadsMonthDate"), 1, month);
dateTime = this._replaceInsert(dateTime, 2, date);
}
@ -390,9 +390,8 @@ var DownloadsView = {
},
removeDownload: function dv_removeDownload(aItem) {
let strings = Elements.browserBundle;
let f = this._getLocalFile(aItem.getAttribute("file"));
let res = Services.prompt.confirm(null, strings.getString("downloadsDeleteTitle"), f.leafName);
let res = Services.prompt.confirm(null, Strings.browser.GetStringFromName("downloadsDeleteTitle"), f.leafName);
if(res) {
this._dlmgr.removeDownload(aItem.getAttribute("downloadID"));
if (f.exists())
@ -439,10 +438,9 @@ var DownloadsView = {
BrowserUI.showPanel("downloads-container");
}
};
let strings = Elements.browserBundle;
if (!aTitle)
aTitle = strings.getString("alertDownloads");
aTitle = Strings.browser.GetStringFromName("alertDownloads");
if (!aIcon)
aIcon = URI_GENERIC_ICON_DOWNLOAD;
@ -468,7 +466,6 @@ var DownloadsView = {
}
else {
let download = aSubject.QueryInterface(Ci.nsIDownload);
let strings = Elements.browserBundle;
let msgKey = "";
if (aTopic == "dl-start") {
@ -485,7 +482,7 @@ var DownloadsView = {
if (msgKey)
this.showAlert(download.target.spec.replace("file:", "download:"),
strings.getFormattedString(msgKey, [download.displayName]));
Strings.browser.formatStringFromName(msgKey, [download.displayName], 1));
}
},
@ -593,7 +590,7 @@ AlertDownloadProgressListener.prototype = {
//////////////////////////////////////////////////////////////////////////////
//// nsIDownloadProgressListener
onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress, aDownload) {
let strings = Elements.browserBundle;
let strings = Strings.browser;
let availableSpace = -1;
try {
// diskSpaceAvailable is not implemented on all systems
@ -602,8 +599,8 @@ AlertDownloadProgressListener.prototype = {
let contentLength = aDownload.size;
if (availableSpace > 0 && contentLength > 0 && contentLength > availableSpace) {
DownloadsView.showAlert(aDownload.target.spec.replace("file:", "download:"),
strings.getString("alertDownloadsNoSpace"),
strings.getString("alertDownloadsSize"));
strings.GetStringFromName("alertDownloadsNoSpace"),
strings.GetStringFromName("alertDownloadsSize"));
Cc["@mozilla.org/download-manager;1"].getService(Ci.nsIDownloadManager).cancelDownload(aDownload.id);
}

Просмотреть файл

@ -159,10 +159,10 @@ var ExtensionsView = {
if (this._msg) {
this.hideAlerts();
let strings = Elements.browserBundle;
let strings = Strings.browser;
let message = "notificationRestart." + aMode;
this.showMessage(strings.getString(message), "restart-app",
strings.getString("notificationRestart.button"), false, "addons-restart-app");
this.showMessage(strings.GetStringFromName(message), "restart-app",
strings.GetStringFromName("notificationRestart.button"), false, "addons-restart-app");
}
},
@ -251,11 +251,11 @@ var ExtensionsView = {
this._restartCount--; // showRestart() always increments
}
let strings = Elements.browserBundle;
this._strings["addonType.extension"] = strings.getString("addonType.2");
this._strings["addonType.theme"] = strings.getString("addonType.4");
this._strings["addonType.locale"] = strings.getString("addonType.8");
this._strings["addonType.search"] = strings.getString("addonType.1024");
let strings = Strings.browser;
this._strings["addonType.extension"] = strings.GetStringFromName("addonType.2");
this._strings["addonType.theme"] = strings.GetStringFromName("addonType.4");
this._strings["addonType.locale"] = strings.GetStringFromName("addonType.8");
this._strings["addonType.search"] = strings.GetStringFromName("addonType.1024");
let self = this;
setTimeout(function() {
@ -283,7 +283,7 @@ var ExtensionsView = {
let self = this;
AddonManager.getAddonsByTypes(["extension", "theme", "locale"], function(items) {
let strings = Elements.browserBundle;
let strings = Strings.browser;
let anyUpdateable = false;
for (let i = 0; i < items.length; i++) {
let addon = items[i];
@ -295,13 +295,13 @@ var ExtensionsView = {
let blocked = "";
switch(addon.blocklistState) {
case Ci.nsIBlocklistService.STATE_BLOCKED:
blocked = strings.getString("addonBlocked.blocked")
blocked = strings.GetStringFromName("addonBlocked.blocked")
break;
case Ci.nsIBlocklistService.STATE_SOFTBLOCKED:
blocked = strings.getString("addonBlocked.softBlocked");
blocked = strings.GetStringFromName("addonBlocked.softBlocked");
break;
case Ci.nsIBlocklistService.STATE_OUTDATED:
blocked = srings.getString("addonBlocked.outdated");
blocked = srings.GetStringFromName("addonBlocked.outdated");
break;
}
@ -328,7 +328,7 @@ var ExtensionsView = {
function isDefault(aEngine)
defaults.indexOf(aEngine.name) != -1
let defaultDescription = strings.getString("addonsSearchEngine.description");
let defaultDescription = strings.GetStringFromName("addonsSearchEngine.description");
let engines = Services.search.getEngines({ });
for (let e = 0; e < engines.length; e++) {
@ -353,7 +353,7 @@ var ExtensionsView = {
}
if (engines.length + items.length == 0)
self.displaySectionMessage("local", strings.getString("addonsLocalNone.label"), null, true);
self.displaySectionMessage("local", strings.GetStringFromName("addonsLocalNone.label"), null, true);
if (!anyUpdateable)
document.getElementById("addons-update-all").disabled = true;
@ -499,14 +499,14 @@ var ExtensionsView = {
if (AddonRepository.isSearching)
AddonRepository.cancelSearch();
let strings = Elements.browserBundle;
let strings = Strings.browser;
if (aTerms) {
AddonSearchResults.selectFirstResult = aSelectFirstResult;
this.displaySectionMessage("repo", strings.getString("addonsSearchStart.label"), strings.getString("addonsSearchStart.button"), false);
this.displaySectionMessage("repo", strings.GetStringFromName("addonsSearchStart.label"), strings.GetStringFromName("addonsSearchStart.button"), false);
AddonRepository.searchAddons(aTerms, Services.prefs.getIntPref(PREF_GETADDONS_MAXRESULTS), AddonSearchResults);
}
else {
this.displaySectionMessage("repo", strings.getString("addonsSearchStart.label"), strings.getString("addonsSearchStart.button"), false);
this.displaySectionMessage("repo", strings.GetStringFromName("addonsSearchStart.label"), strings.GetStringFromName("addonsSearchStart.button"), false);
AddonRepository.retrieveRecommendedAddons(Services.prefs.getIntPref(PREF_GETADDONS_MAXRESULTS), RecommendedSearchResults);
}
},
@ -581,25 +581,24 @@ var ExtensionsView = {
let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter);
let browseURL = formatter.formatURLPref("extensions.getAddons.browseAddons");
let strings = Elements.browserBundle;
let brandBundle = document.getElementById("bundle_brand");
let brandShortName = brandBundle.getString("brandShortName");
let strings = Strings.browser;
let brandShortName = Strings.brand.GetStringFromName("brandShortName");
let whatare = document.createElement("richlistitem");
whatare.setAttribute("typeName", "banner");
whatare.setAttribute("label", strings.getString("addonsWhatAre.label"));
whatare.setAttribute("label", strings.GetStringFromName("addonsWhatAre.label"));
let desc = strings.getString("addonsWhatAre.description");
let desc = strings.GetStringFromName("addonsWhatAre.description");
desc = desc.replace(/#1/g, brandShortName);
whatare.setAttribute("description", desc);
whatare.setAttribute("button", strings.getString("addonsWhatAre.button"));
whatare.setAttribute("button", strings.GetStringFromName("addonsWhatAre.button"));
whatare.setAttribute("onbuttoncommand", "BrowserUI.newTab('" + browseURL + "');");
this._list.appendChild(whatare);
if (aRecommendedAddons.length == 0 && aBrowseAddons.length == 0) {
let msg = strings.getString("addonsSearchNone.recommended");
let button = strings.getString("addonsSearchNone.button");
let msg = strings.GetStringFromName("addonsSearchNone.recommended");
let button = strings.GetStringFromName("addonsSearchNone.button");
let item = this.displaySectionMessage("repo", msg, button, true);
this._list.scrollBoxObject.scrollToElement(item);
@ -627,10 +626,10 @@ var ExtensionsView = {
let showmore = document.createElement("richlistitem");
showmore.setAttribute("typeName", "showmore");
showmore.setAttribute("pagelabel", strings.getString("addonsBrowseAll.seeMore"));
showmore.setAttribute("pagelabel", strings.GetStringFromName("addonsBrowseAll.seeMore"));
showmore.setAttribute("onpagecommand", "ExtensionsView.showMoreSearchResults();");
showmore.setAttribute("hidepage", totalAddons > kAddonPageSize ? "false" : "true");
showmore.setAttribute("sitelabel", strings.getString("addonsBrowseAll.browseSite"));
showmore.setAttribute("sitelabel", strings.GetStringFromName("addonsBrowseAll.browseSite"));
showmore.setAttribute("onsitecommand", "ExtensionsView.showMoreResults('" + browseURL + "');");
this._list.appendChild(showmore);
@ -642,10 +641,10 @@ var ExtensionsView = {
displaySearchResults: function ev_displaySearchResults(aAddons, aTotalResults, aSelectFirstResult) {
this.clearSection("repo");
let strings = Elements.browserBundle;
let strings = Strings.browser;
if (aAddons.length == 0) {
let msg = strings.getString("addonsSearchNone.search");
let button = strings.getString("addonsSearchSuccess2.button");
let msg = strings.GetStringFromName("addonsSearchNone.search");
let button = strings.GetStringFromName("addonsSearchSuccess2.button");
let item = this.displaySectionMessage("repo", msg, button, true);
if (aSelectFirstResult)
@ -666,7 +665,7 @@ var ExtensionsView = {
showmore.setAttribute("typeName", "showmore");
showmore.setAttribute("hidepage", "true");
let labelBase = strings.getString("addonsSearchMore.label");
let labelBase = strings.GetStringFromName("addonsSearchMore.label");
let label = PluralForm.get(aTotalResults, labelBase).replace("#1", aTotalResults);
showmore.setAttribute("sitelabel", label);
@ -678,7 +677,7 @@ var ExtensionsView = {
this._list.appendChild(showmore);
}
this.displaySectionMessage("repo", null, strings.getString("addonsSearchSuccess2.button"), true);
this.displaySectionMessage("repo", null, strings.GetStringFromName("addonsSearchSuccess2.button"), true);
},
showPage: function ev_showPage(aItem) {
@ -722,7 +721,7 @@ var ExtensionsView = {
let json = aSubject.QueryInterface(Ci.nsISupportsString).data;
let update = JSON.parse(json);
let strings = Elements.browserBundle;
let strings = Strings.browser;
let element = this.getElementForAddon(update.id);
if (!element)
return;
@ -731,31 +730,31 @@ var ExtensionsView = {
switch (aTopic) {
case "addon-update-started":
element.setAttribute("updateStatus", strings.getString("addonUpdate.checking"));
element.setAttribute("updateStatus", strings.GetStringFromName("addonUpdate.checking"));
break;
case "addon-update-ended":
let updateable = false;
let statusMsg = null;
switch (aData) {
case "update":
statusMsg = strings.getFormattedString("addonUpdate.updating", [update.version]);
statusMsg = strings.formatStringFromName("addonUpdate.updating", [update.version], 1);
updateable = true;
break;
case "compatibility":
statusMsg = strings.getString("addonUpdate.compatibility");
statusMsg = strings.GetStringFromName("addonUpdate.compatibility");
if (addon.pendingOperations & AddonManager.PENDING_INSTALL || addon.pendingOperations & AddonManager.PENDING_UPGRADE)
updateable = true;
break;
case "error":
statusMsg = strings.getString("addonUpdate.error");
statusMsg = strings.GetStringFromName("addonUpdate.error");
break;
case "no-update":
// Ignore if no updated was found. Just let the message go blank.
//statusMsg = strings.getString("addonUpdate.noupdate");
//statusMsg = strings.GetStringFromName("addonUpdate.noupdate");
break;
default:
// Ignore if no updated was found. Just let the message go blank.
//statusMsg = strings.getString("addonUpdate.noupdate");
//statusMsg = strings.GetStringFromName("addonUpdate.noupdate");
}
if (statusMsg)
@ -769,11 +768,12 @@ var ExtensionsView = {
break;
}
},
showAlert: function ev_showAlert(aMessage) {
if (this.visible)
return;
let strings = Elements.browserBundle;
let strings = Strings.browser;
let observer = {
observe: function (aSubject, aTopic, aData) {
@ -783,7 +783,7 @@ var ExtensionsView = {
};
let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
alerts.showAlertNotification(URI_GENERIC_ICON_XPINSTALL, strings.getString("alertAddons"),
alerts.showAlertNotification(URI_GENERIC_ICON_XPINSTALL, strings.GetStringFromName("alertAddons"),
aMessage, true, "", observer, "addons");
},
@ -800,12 +800,12 @@ var ExtensionsView = {
function searchFailed() {
ExtensionsView.clearSection("repo");
let strings = Elements.browserBundle;
let brand = document.getElementById("bundle_brand");
let strings = Strings.browser;
let brand = Strings.brand;
let failLabel = strings.getFormattedString("addonsSearchFail.label",
[brand.getString("brandShortName")]);
let failButton = strings.getString("addonsSearchFail.button");
let failLabel = strings.formatStringFromName("addonsSearchFail.label",
[brand.GetStringFromName("brandShortName")], 1);
let failButton = strings.GetStringFromName("addonsSearchFail.button");
ExtensionsView.displaySectionMessage("repo", failLabel, failButton, true);
}
@ -866,8 +866,8 @@ AddonInstallListener.prototype = {
// If we are updating an add-on, change the status
if (element.hasAttribute("updating")) {
let strings = Elements.browserBundle;
element.setAttribute("updateStatus", strings.getFormattedString("addonUpdate.updated", [aAddon.version]));
let strings = Strings.browser;
element.setAttribute("updateStatus", strings.formatStringFromName("addonUpdate.updated", [aAddon.version], 1));
element.removeAttribute("updating");
}
}
@ -931,9 +931,9 @@ AddonInstallListener.prototype = {
},
onDownloadCancelled: function(aInstall, aAddon) {
let strings = Elements.browserBundle;
let brandBundle = document.getElementById("bundle_brand");
let brandShortName = brandBundle.getString("brandShortName");
let strings = Strings.browser;
let brandBundle = Strings.brand;
let brandShortName = brandBundle.GetStringFromName("brandShortName");
let host = (aInstall.originatingURI instanceof Ci.nsIStandardURL) && aInstall.originatingURI.host;
if (!host)
host = (aInstall.sourceURI instanceof Ci.nsIStandardURL) && aInstall.sourceURI.host;
@ -950,7 +950,7 @@ AddonInstallListener.prototype = {
return; // no need to show anything in this case
}
let messageString = strings.getString(error);
let messageString = strings.GetStringFromName(error);
messageString = messageString.replace("#1", aInstall.name);
if (host)
messageString = messageString.replace("#2", host);
@ -961,9 +961,9 @@ AddonInstallListener.prototype = {
},
_showInstallCompleteAlert: function xpidm_showAlert(aSucceeded) {
let strings = Elements.browserBundle;
let msg = aSucceeded ? strings.getString("alertAddonsInstalled") :
strings.getString("alertAddonsFail");
let strings = Strings.browser;
let msg = aSucceeded ? strings.GetStringFromName("alertAddonsInstalled") :
strings.GetStringFromName("alertAddonsFail");
ExtensionsView.showAlert(msg);
},
};

Просмотреть файл

@ -82,9 +82,9 @@ var PreferencesView = {
this._restartCount++;
if (this._msg) {
let strings = Elements.browserBundle;
this.showMessage(strings.getString("notificationRestart.normal"), "restart-app",
strings.getString("notificationRestart.button"), false, "prefs-restart-app");
let strings = Strings.browser;
this.showMessage(strings.GetStringFromName("notificationRestart.normal"), "restart-app",
strings.GetStringFromName("notificationRestart.button"), false, "prefs-restart-app");
}
},
@ -228,7 +228,7 @@ var PreferencesView = {
let options = document.getElementById("prefs-homepage-options");
if (value == "custom") {
// Make sure nothing is selected and just use a label to show the state
options.appendItem(Elements.browserBundle.getString("homepage.custom2"), "custom");
options.appendItem(Strings.browser.GetStringFromName("homepage.custom2"), "custom");
}
// Select the right menulist item
@ -291,7 +291,7 @@ var PreferencesView = {
// If the helper item is not already in the list, we need to put it there
// (this can happen when changing from one custom page to another)
if (!helper)
helper = options.appendItem(Elements.browserBundle.getString("homepage.custom2"), "custom");
helper = options.appendItem(Strings.browser.GetStringFromName("homepage.custom2"), "custom");
options.selectedItem = helper;
} else {

Просмотреть файл

@ -61,7 +61,7 @@ var gPendingTests = [];
var gTestsRun = 0;
var gTestStart = null;
var gDate = new Date(2010, 7, 1);
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
var gApp = Strings.brand.GetStringFromName("brandShortName");
var gCategoryUtilities;
var gSearchCount = 0;
var gProvider = null;