You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
897 B
33 lines
897 B
|
|
// cross-browser connection to extension i18n API
|
|
|
|
const chrome = chrome || null
|
|
const browser = browser || null
|
|
const extension = require('extensionizer')
|
|
var log = require('loglevel')
|
|
window.log = log
|
|
let getMessage
|
|
|
|
if (extension.i18n && extension.i18n.getMessage) {
|
|
getMessage = extension.i18n.getMessage
|
|
} else {
|
|
// fallback function
|
|
log.warn('browser.i18n API not available, calling back to english.')
|
|
const msg = require('../app/_locales/en/messages.json')
|
|
getMessage = function (key, substitutions) {
|
|
if (!msg[key]) {
|
|
log.error(key)
|
|
throw new Error(key)
|
|
}
|
|
let phrase = msg[key].message
|
|
if (substitutions && substitutions.length) {
|
|
phrase = phrase.replace(/\$1/g, substitutions[0])
|
|
if (substitutions.length > 1) {
|
|
phrase = phrase.replace(/\$2/g, substitutions[1])
|
|
}
|
|
}
|
|
return phrase
|
|
}
|
|
}
|
|
|
|
module.exports = getMessage
|
|
|