diff options
Diffstat (limited to 'toolkit/components/webextensions/ext-i18n.js')
-rw-r--r-- | toolkit/components/webextensions/ext-i18n.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/toolkit/components/webextensions/ext-i18n.js b/toolkit/components/webextensions/ext-i18n.js new file mode 100644 index 000000000..bb4bde4bd --- /dev/null +++ b/toolkit/components/webextensions/ext-i18n.js @@ -0,0 +1,34 @@ +"use strict"; + +var {classes: Cc, interfaces: Ci, utils: Cu} = Components; + +Cu.import("resource://gre/modules/ExtensionUtils.jsm"); +var { + detectLanguage, +} = ExtensionUtils; + +function i18nApiFactory(context) { + let {extension} = context; + return { + i18n: { + getMessage: function(messageName, substitutions) { + return extension.localizeMessage(messageName, substitutions, {cloneScope: context.cloneScope}); + }, + + getAcceptLanguages: function() { + let result = extension.localeData.acceptLanguages; + return Promise.resolve(result); + }, + + getUILanguage: function() { + return extension.localeData.uiLocale; + }, + + detectLanguage: function(text) { + return detectLanguage(text); + }, + }, + }; +} +extensions.registerSchemaAPI("i18n", "addon_child", i18nApiFactory); +extensions.registerSchemaAPI("i18n", "content_child", i18nApiFactory); |