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:
Belén Albeza 2019-06-04 14:08:50 +00:00
Родитель 19e416d731
Коммит 0b00781fa0
6 изменённых файлов: 69 добавлений и 40 удалений

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

@ -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',