parent
eb5a84975b
commit
5fe0be722b
@ -0,0 +1,18 @@ |
||||
const connect = require('react-redux').connect |
||||
|
||||
const metamaskConnect = (mapStateToProps, mapDispatchToProps) => { |
||||
return connect( |
||||
_higherOrderMapStateToProps(mapStateToProps), |
||||
mapDispatchToProps |
||||
) |
||||
} |
||||
|
||||
const _higherOrderMapStateToProps = (mapStateToProps) => { |
||||
return (state, ownProps) => { |
||||
const stateProps = mapStateToProps(state, ownProps) |
||||
stateProps.localeMessages = state.localeMessages || {} |
||||
return stateProps |
||||
} |
||||
} |
||||
|
||||
module.exports = metamaskConnect |
@ -0,0 +1,18 @@ |
||||
const extend = require('xtend') |
||||
const actions = require('../actions') |
||||
const MetamascaraPlatform = require('../../../app/scripts/platforms/window') |
||||
const environmentType = require('../../../app/scripts/lib/environment-type') |
||||
const { OLD_UI_NETWORK_TYPE } = require('../../../app/scripts/config').enums |
||||
|
||||
module.exports = reduceMetamask |
||||
|
||||
function reduceMetamask (state, action) { |
||||
const localeMessagesState = extend({}, state.localeMessages) |
||||
|
||||
switch (action.type) { |
||||
case actions.SET_LOCALE_MESSAGES: |
||||
return action.value |
||||
default: |
||||
return localeMessagesState |
||||
} |
||||
} |
@ -0,0 +1,37 @@ |
||||
// cross-browser connection to extension i18n API
|
||||
const extension = require('extensionizer') |
||||
const log = require('loglevel') |
||||
|
||||
const getMessage = (locale, key, substitutions) => { |
||||
// check locale is loaded
|
||||
if (!locale) { |
||||
// throw new Error('Translator - has not loaded a locale yet.')
|
||||
return '' |
||||
} |
||||
// check entry is present
|
||||
const entry = locale[key] |
||||
if (!entry) { |
||||
log.error(`Translator - Unable to find value for "${key}"`) |
||||
throw new Error(`Translator - Unable to find value for "${key}"`) |
||||
} |
||||
let phrase = entry.message |
||||
// perform substitutions
|
||||
if (substitutions && substitutions.length) { |
||||
phrase = phrase.replace(/\$1/g, substitutions[0]) |
||||
if (substitutions.length > 1) { |
||||
phrase = phrase.replace(/\$2/g, substitutions[1]) |
||||
} |
||||
} |
||||
return phrase |
||||
} |
||||
|
||||
async function fetchLocale (localeName) { |
||||
const response = await fetch(`/_locales/${localeName}/messages.json`) |
||||
const locale = await response.json() |
||||
return locale |
||||
} |
||||
|
||||
module.exports = { |
||||
getMessage, |
||||
fetchLocale, |
||||
} |
Loading…
Reference in new issue