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:
Julian Descottes 2016-08-26 15:01:52 +02:00
Родитель 3caacd08dc
Коммит 354cf4d6b8
6 изменённых файлов: 75 добавлений и 103 удалений

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

@ -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 });