зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1295608 - Migrate devtools/shared to use l10n.js instead of Services.string;r=tromey
I explicitly did not migrate the localizations of the external properties file brand.properties. This should be handled as part of Bug 1297733. MozReview-Commit-ID: JXomOmr37xV --HG-- extra : rebase_source : 0a4e25ba76748e159e389a7b6d42f6cf82d412aa extra : intermediate-source : 44b1e19c5f2fc03d54ecba9507c30df4caff343f extra : source : 2eee0a90aa25cae44f5bd1fb5c4d60438a6ceb54
This commit is contained in:
Родитель
3caacd08dc
Коммит
354cf4d6b8
|
@ -3,24 +3,20 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
"use strict";
|
||||
|
||||
const Services = require("Services");
|
||||
const {cssUsageSpec} = require("devtools/shared/specs/csscoverage");
|
||||
const protocol = require("devtools/shared/protocol");
|
||||
const {custom} = protocol;
|
||||
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools-shared/locale/csscoverage.properties");
|
||||
|
||||
loader.lazyRequireGetter(this, "gDevTools", "devtools/client/framework/devtools", true);
|
||||
|
||||
/**
|
||||
* Allow: let foo = l10n.lookup("csscoverageFoo");
|
||||
*/
|
||||
const l10n = exports.l10n = {
|
||||
_URI: "chrome://devtools-shared/locale/csscoverage.properties",
|
||||
lookup: function (msg) {
|
||||
if (this._stringBundle == null) {
|
||||
this._stringBundle = Services.strings.createBundle(this._URI);
|
||||
}
|
||||
return this._stringBundle.GetStringFromName(msg);
|
||||
}
|
||||
lookup: (msg) => L10N.getStr(msg)
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
"use strict";
|
||||
|
||||
const l10n = require("gcli/l10n");
|
||||
const Services = require("Services");
|
||||
const { XPCOMUtils } = require("resource://gre/modules/XPCOMUtils.jsm");
|
||||
require("devtools/server/actors/inspector");
|
||||
const {
|
||||
|
@ -13,9 +12,8 @@ const {
|
|||
HighlighterEnvironment
|
||||
} = require("devtools/server/actors/highlighters");
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "nodesSelected", function () {
|
||||
return Services.strings.createBundle("chrome://devtools-shared/locale/gclicommands.properties");
|
||||
});
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools-shared/locale/gclicommands.properties");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PluralForm", "resource://gre/modules/PluralForm.jsm");
|
||||
|
||||
// How many maximum nodes can be highlighted in parallel
|
||||
|
@ -139,7 +137,7 @@ exports.items = [
|
|||
i++;
|
||||
}
|
||||
|
||||
let highlightText = nodesSelected.GetStringFromName("highlightOutputConfirm2");
|
||||
let highlightText = L10N.getStr("highlightOutputConfirm2");
|
||||
let output = PluralForm.get(args.selector.length, highlightText)
|
||||
.replace("%1$S", args.selector.length);
|
||||
if (args.selector.length > i) {
|
||||
|
|
|
@ -14,41 +14,37 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var Cc = require('chrome').Cc;
|
||||
var Ci = require('chrome').Ci;
|
||||
var Cu = require('chrome').Cu;
|
||||
var Cc = require("chrome").Cc;
|
||||
var Ci = require("chrome").Ci;
|
||||
|
||||
var prefSvc = Cc['@mozilla.org/preferences-service;1']
|
||||
.getService(Ci.nsIPrefService);
|
||||
var prefSvc = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
|
||||
var prefBranch = prefSvc.getBranch(null).QueryInterface(Ci.nsIPrefBranch);
|
||||
|
||||
var Services = require("Services");
|
||||
var stringBundle = Services.strings.createBundle(
|
||||
'chrome://devtools-shared/locale/gclicommands.properties');
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools-shared/locale/gclicommands.properties");
|
||||
|
||||
/**
|
||||
* Lookup a string in the GCLI string bundle
|
||||
*/
|
||||
exports.lookup = function(name) {
|
||||
exports.lookup = function (name) {
|
||||
try {
|
||||
return stringBundle.GetStringFromName(name);
|
||||
}
|
||||
catch (ex) {
|
||||
throw new Error('Failure in lookup(\'' + name + '\')');
|
||||
return L10N.getStr(name);
|
||||
} catch (ex) {
|
||||
throw new Error("Failure in lookup('" + name + "')");
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* An alternative to lookup().
|
||||
* <code>l10n.lookup('BLAH') === l10n.propertyLookup.BLAH</code>
|
||||
* <code>l10n.lookup("BLAH") === l10n.propertyLookup.BLAH</code>
|
||||
* This is particularly nice for templates because you can pass
|
||||
* <code>l10n:l10n.propertyLookup</code> in the template data and use it
|
||||
* like <code>${l10n.BLAH}</code>
|
||||
*/
|
||||
exports.propertyLookup = new Proxy({}, {
|
||||
get: function(rcvr, name) {
|
||||
get: function (rcvr, name) {
|
||||
return exports.lookup(name);
|
||||
}
|
||||
});
|
||||
|
@ -56,24 +52,23 @@ exports.propertyLookup = new Proxy({}, {
|
|||
/**
|
||||
* Lookup a string in the GCLI string bundle
|
||||
*/
|
||||
exports.lookupFormat = function(name, swaps) {
|
||||
exports.lookupFormat = function (name, swaps) {
|
||||
try {
|
||||
return stringBundle.formatStringFromName(name, swaps, swaps.length);
|
||||
}
|
||||
catch (ex) {
|
||||
throw new Error('Failure in lookupFormat(\'' + name + '\')');
|
||||
return L10N.getFormatStr(name, ...swaps);
|
||||
} catch (ex) {
|
||||
throw new Error("Failure in lookupFormat('" + name + "')");
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Allow GCLI users to be hidden by the 'devtools.chrome.enabled' pref.
|
||||
* Allow GCLI users to be hidden by the "devtools.chrome.enabled" pref.
|
||||
* Use it in commands like this:
|
||||
* <pre>
|
||||
* name: "somecommand",
|
||||
* hidden: l10n.hiddenByChromePref(),
|
||||
* exec: function(args, context) { ... }
|
||||
* exec: function (args, context) { ... }
|
||||
* </pre>
|
||||
*/
|
||||
exports.hiddenByChromePref = function() {
|
||||
return !prefBranch.getBoolPref('devtools.chrome.enabled');
|
||||
exports.hiddenByChromePref = function () {
|
||||
return !prefBranch.getBoolPref("devtools.chrome.enabled");
|
||||
};
|
||||
|
|
|
@ -14,76 +14,67 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var Cu = require('chrome').Cu;
|
||||
|
||||
var XPCOMUtils = Cu.import('resource://gre/modules/XPCOMUtils.jsm', {}).XPCOMUtils;
|
||||
var Services = require("Services");
|
||||
|
||||
var imports = {};
|
||||
XPCOMUtils.defineLazyGetter(imports, 'stringBundle', function () {
|
||||
return Services.strings.createBundle('chrome://devtools-shared/locale/gcli.properties');
|
||||
});
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools-shared/locale/gcli.properties");
|
||||
|
||||
/*
|
||||
* Not supported when embedded - we're doing things the Mozilla way not the
|
||||
* Not supported when embedded - we"re doing things the Mozilla way not the
|
||||
* require.js way.
|
||||
*/
|
||||
exports.registerStringsSource = function(modulePath) {
|
||||
throw new Error('registerStringsSource is not available in mozilla');
|
||||
exports.registerStringsSource = function (modulePath) {
|
||||
throw new Error("registerStringsSource is not available in mozilla");
|
||||
};
|
||||
|
||||
exports.unregisterStringsSource = function(modulePath) {
|
||||
throw new Error('unregisterStringsSource is not available in mozilla');
|
||||
exports.unregisterStringsSource = function (modulePath) {
|
||||
throw new Error("unregisterStringsSource is not available in mozilla");
|
||||
};
|
||||
|
||||
exports.lookupSwap = function(key, swaps) {
|
||||
throw new Error('lookupSwap is not available in mozilla');
|
||||
exports.lookupSwap = function (key, swaps) {
|
||||
throw new Error("lookupSwap is not available in mozilla");
|
||||
};
|
||||
|
||||
exports.lookupPlural = function(key, ord, swaps) {
|
||||
throw new Error('lookupPlural is not available in mozilla');
|
||||
exports.lookupPlural = function (key, ord, swaps) {
|
||||
throw new Error("lookupPlural is not available in mozilla");
|
||||
};
|
||||
|
||||
exports.getPreferredLocales = function() {
|
||||
return [ 'root' ];
|
||||
exports.getPreferredLocales = function () {
|
||||
return [ "root" ];
|
||||
};
|
||||
|
||||
/** @see lookup() in lib/gcli/util/l10n.js */
|
||||
exports.lookup = function(key) {
|
||||
exports.lookup = function (key) {
|
||||
try {
|
||||
// Our memory leak hunter walks reachable objects trying to work out what
|
||||
// type of thing they are using object.constructor.name. If that causes
|
||||
// problems then we can avoid the unknown-key-exception with the following:
|
||||
/*
|
||||
if (key === 'constructor') {
|
||||
return { name: 'l10n-mem-leak-defeat' };
|
||||
if (key === "constructor") {
|
||||
return { name: "l10n-mem-leak-defeat" };
|
||||
}
|
||||
*/
|
||||
|
||||
return imports.stringBundle.GetStringFromName(key);
|
||||
}
|
||||
catch (ex) {
|
||||
console.error('Failed to lookup ', key, ex);
|
||||
return L10N.getStr(key);
|
||||
} catch (ex) {
|
||||
console.error("Failed to lookup ", key, ex);
|
||||
return key;
|
||||
}
|
||||
};
|
||||
|
||||
/** @see propertyLookup in lib/gcli/util/l10n.js */
|
||||
exports.propertyLookup = new Proxy({}, {
|
||||
get: function(rcvr, name) {
|
||||
get: function (rcvr, name) {
|
||||
return exports.lookup(name);
|
||||
}
|
||||
});
|
||||
|
||||
/** @see lookupFormat in lib/gcli/util/l10n.js */
|
||||
exports.lookupFormat = function(key, swaps) {
|
||||
exports.lookupFormat = function (key, swaps) {
|
||||
try {
|
||||
return imports.stringBundle.formatStringFromName(key, swaps, swaps.length);
|
||||
}
|
||||
catch (ex) {
|
||||
console.error('Failed to format ', key, ex);
|
||||
return L10N.getFormatStr(key, ...swaps);
|
||||
} catch (ex) {
|
||||
console.error("Failed to format ", key, ex);
|
||||
return key;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -42,6 +42,9 @@
|
|||
|
||||
const Services = require("Services");
|
||||
const CSSLexer = require("devtools/shared/css-lexer");
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const styleInspectorL10N =
|
||||
new LocalizationHelper("devtools-shared/locale/styleinspector.properties");
|
||||
|
||||
/**
|
||||
* Special values for filter, in addition to an href these values can be used
|
||||
|
@ -70,16 +73,13 @@ exports.STATUS = {
|
|||
};
|
||||
|
||||
/**
|
||||
* Memoized lookup of a l10n string from a string bundle.
|
||||
* @param {string} name The key to lookup.
|
||||
* @returns A localized version of the given key.
|
||||
* Lookup a l10n string in the shared styleinspector string bundle.
|
||||
*
|
||||
* @param {String} name
|
||||
* The key to lookup.
|
||||
* @returns {String} A localized version of the given key.
|
||||
*/
|
||||
exports.l10n = function (name) {
|
||||
return exports._strings.GetStringFromName(name);
|
||||
};
|
||||
|
||||
exports._strings = Services.strings
|
||||
.createBundle("chrome://devtools-shared/locale/styleinspector.properties");
|
||||
exports.l10n = name => styleInspectorL10N.getStr(name);
|
||||
|
||||
/**
|
||||
* Is the given property sheet a content stylesheet?
|
||||
|
|
|
@ -14,10 +14,8 @@ loader.lazyRequireGetter(this, "DebuggerSocket",
|
|||
loader.lazyRequireGetter(this, "AuthenticationResult",
|
||||
"devtools/shared/security/auth", true);
|
||||
|
||||
DevToolsUtils.defineLazyGetter(this, "bundle", () => {
|
||||
const DBG_STRINGS_URI = "chrome://devtools-shared/locale/debugger.properties";
|
||||
return Services.strings.createBundle(DBG_STRINGS_URI);
|
||||
});
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools-shared/locale/debugger.properties");
|
||||
|
||||
var Client = exports.Client = {};
|
||||
var Server = exports.Server = {};
|
||||
|
@ -51,13 +49,11 @@ Client.defaultSendOOB = ({ authResult, oob }) => {
|
|||
if (authResult != AuthenticationResult.PENDING) {
|
||||
throw new Error("Expected PENDING result, got " + authResult);
|
||||
}
|
||||
let title = bundle.GetStringFromName("clientSendOOBTitle");
|
||||
let header = bundle.GetStringFromName("clientSendOOBHeader");
|
||||
let hashMsg = bundle.formatStringFromName("clientSendOOBHash",
|
||||
[oob.sha256], 1);
|
||||
let title = L10N.getStr("clientSendOOBTitle");
|
||||
let header = L10N.getStr("clientSendOOBHeader");
|
||||
let hashMsg = L10N.getFormatStr("clientSendOOBHash", oob.sha256);
|
||||
let token = oob.sha256.replace(/:/g, "").toLowerCase() + oob.k;
|
||||
let tokenMsg = bundle.formatStringFromName("clientSendOOBToken",
|
||||
[token], 1);
|
||||
let tokenMsg = L10N.getFormatStr("clientSendOOBToken", token);
|
||||
let msg = `${header}\n\n${hashMsg}\n${tokenMsg}`;
|
||||
let prompt = Services.prompt;
|
||||
let flags = prompt.BUTTON_POS_0 * prompt.BUTTON_TITLE_CANCEL;
|
||||
|
@ -125,19 +121,15 @@ Client.defaultSendOOB = ({ authResult, oob }) => {
|
|||
* A promise that will be resolved to the above is also allowed.
|
||||
*/
|
||||
Server.defaultAllowConnection = ({ client, server }) => {
|
||||
let title = bundle.GetStringFromName("remoteIncomingPromptTitle");
|
||||
let header = bundle.GetStringFromName("remoteIncomingPromptHeader");
|
||||
let title = L10N.getStr("remoteIncomingPromptTitle");
|
||||
let header = L10N.getStr("remoteIncomingPromptHeader");
|
||||
let clientEndpoint = `${client.host}:${client.port}`;
|
||||
let clientMsg =
|
||||
bundle.formatStringFromName("remoteIncomingPromptClientEndpoint",
|
||||
[clientEndpoint], 1);
|
||||
let clientMsg = L10N.getFormatStr("remoteIncomingPromptClientEndpoint", clientEndpoint);
|
||||
let serverEndpoint = `${server.host}:${server.port}`;
|
||||
let serverMsg =
|
||||
bundle.formatStringFromName("remoteIncomingPromptServerEndpoint",
|
||||
[serverEndpoint], 1);
|
||||
let footer = bundle.GetStringFromName("remoteIncomingPromptFooter");
|
||||
let serverMsg = L10N.getFormatStr("remoteIncomingPromptServerEndpoint", serverEndpoint);
|
||||
let footer = L10N.getStr("remoteIncomingPromptFooter");
|
||||
let msg = `${header}\n\n${clientMsg}\n${serverMsg}\n\n${footer}`;
|
||||
let disableButton = bundle.GetStringFromName("remoteIncomingPromptDisable");
|
||||
let disableButton = L10N.getStr("remoteIncomingPromptDisable");
|
||||
let prompt = Services.prompt;
|
||||
let flags = prompt.BUTTON_POS_0 * prompt.BUTTON_TITLE_OK +
|
||||
prompt.BUTTON_POS_1 * prompt.BUTTON_TITLE_CANCEL +
|
||||
|
@ -170,8 +162,8 @@ Server.defaultAllowConnection = ({ client, server }) => {
|
|||
* A promise that will be resolved to the above is also allowed.
|
||||
*/
|
||||
Server.defaultReceiveOOB = () => {
|
||||
let title = bundle.GetStringFromName("serverReceiveOOBTitle");
|
||||
let msg = bundle.GetStringFromName("serverReceiveOOBBody");
|
||||
let title = L10N.getStr("serverReceiveOOBTitle");
|
||||
let msg = L10N.getStr("serverReceiveOOBBody");
|
||||
let input = { value: null };
|
||||
let prompt = Services.prompt;
|
||||
let result = prompt.prompt(null, title, msg, input, null, { value: false });
|
||||
|
|
Загрузка…
Ссылка в новой задаче