зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1554133 - Part 1: move about:debugging's l10n module to a shared folder r=jdescottes,Ola
Differential Revision: https://phabricator.services.mozilla.com/D32735 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
19e416d731
Коммит
0b00781fa0
|
@ -61,7 +61,10 @@ const AboutDebugging = {
|
|||
const width = this.getRoundedViewportWidth();
|
||||
this.actions.recordTelemetryEvent("open_adbg", { width });
|
||||
|
||||
await l10n.init();
|
||||
await l10n.init([
|
||||
"branding/brand.ftl",
|
||||
"devtools/aboutdebugging.ftl",
|
||||
]);
|
||||
|
||||
this.actions.createThisFirefoxRuntime();
|
||||
|
||||
|
|
|
@ -4,43 +4,7 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const Services = require("Services");
|
||||
const { FluentL10n } = require("devtools/client/shared/fluent-l10n/fluent-l10n");
|
||||
|
||||
const FluentReact = require("devtools/client/shared/vendor/fluent-react");
|
||||
const { L10nRegistry } = require("resource://gre/modules/L10nRegistry.jsm");
|
||||
|
||||
class L10n {
|
||||
async init() {
|
||||
const locales = Services.locale.appLocalesAsBCP47;
|
||||
const generator = L10nRegistry.generateBundles(locales, [
|
||||
"branding/brand.ftl",
|
||||
"devtools/aboutdebugging.ftl",
|
||||
]);
|
||||
|
||||
this._bundles = [];
|
||||
for await (const bundle of generator) {
|
||||
this._bundles.push(bundle);
|
||||
}
|
||||
this._reactLocalization = new FluentReact.ReactLocalization(this._bundles);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the fluent bundles generated for about:debugging.
|
||||
*/
|
||||
getBundles() {
|
||||
return this._bundles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the localized string for the provided id, formatted using args.
|
||||
*/
|
||||
getString(id, args, fallback) {
|
||||
// Forward arguments via .apply() so that the original method can:
|
||||
// - perform asserts based on the number of arguments
|
||||
// - add new arguments
|
||||
return this._reactLocalization.getString.apply(this._reactLocalization, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
// Export a singleton that will be shared by all aboutdebugging modules.
|
||||
exports.l10n = new L10n();
|
||||
// exports a singleton, which will be used across all aboutdebugging-new modules
|
||||
exports.l10n = new FluentL10n();
|
||||
|
|
|
@ -28,6 +28,7 @@ const BROWSER_BASED_DIRS = [
|
|||
"resource://devtools/client/inspector/markup",
|
||||
"resource://devtools/client/jsonview",
|
||||
"resource://devtools/client/netmonitor/src/utils",
|
||||
"resource://devtools/client/shared/fluent-l10n",
|
||||
"resource://devtools/client/shared/source-map",
|
||||
"resource://devtools/client/shared/redux",
|
||||
"resource://devtools/client/shared/vendor",
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const Services = require("Services");
|
||||
|
||||
const FluentReact = require("devtools/client/shared/vendor/fluent-react");
|
||||
const { L10nRegistry } = require("resource://gre/modules/L10nRegistry.jsm");
|
||||
|
||||
/**
|
||||
* Wrapper over FluentReact. It encapsulates instantiation of the localization
|
||||
* bundles, and offers a simpler way of accessing `getString`.
|
||||
*/
|
||||
class FluentL10n {
|
||||
/**
|
||||
* Initializes the wrapper, generating the bundles for the given resource ids.
|
||||
* @param {Array} resourceIds
|
||||
*/
|
||||
async init(resourceIds) {
|
||||
const locales = Services.locale.appLocalesAsBCP47;
|
||||
const generator = L10nRegistry.generateBundles(locales, resourceIds);
|
||||
|
||||
this._bundles = [];
|
||||
for await (const bundle of generator) {
|
||||
this._bundles.push(bundle);
|
||||
}
|
||||
this._reactLocalization = new FluentReact.ReactLocalization(this._bundles);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the fluent bundles generated.
|
||||
*/
|
||||
getBundles() {
|
||||
return this._bundles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the localized string for the provided id, formatted using args.
|
||||
*/
|
||||
getString(id, args, fallback) {
|
||||
// Forward arguments via .apply() so that the original method can:
|
||||
// - perform asserts based on the number of arguments
|
||||
// - add new arguments
|
||||
return this._reactLocalization.getString.apply(this._reactLocalization, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
// Export the class
|
||||
exports.FluentL10n = FluentL10n;
|
|
@ -0,0 +1,9 @@
|
|||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'fluent-l10n.js',
|
||||
)
|
|
@ -12,6 +12,7 @@ TEST_HARNESS_FILES.xpcshell.devtools.client.shared.test += [
|
|||
|
||||
DIRS += [
|
||||
'components',
|
||||
'fluent-l10n',
|
||||
'redux',
|
||||
'remote-debugging',
|
||||
'source-map',
|
||||
|
|
Загрузка…
Ссылка в новой задаче