|
|
|
@ -6,6 +6,11 @@ const { compose } = require('recompose') |
|
|
|
|
const t = require('../i18n-helper').getMessage |
|
|
|
|
|
|
|
|
|
class I18nProvider extends Component { |
|
|
|
|
tOrDefault = (key, defaultValue, ...args) => { |
|
|
|
|
const { localeMessages: { current, en } = {} } = this.props |
|
|
|
|
return t(current, key, ...args) || t(en, key, ...args) || defaultValue |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getChildContext () { |
|
|
|
|
const { localeMessages } = this.props |
|
|
|
|
const { current, en } = localeMessages |
|
|
|
@ -13,8 +18,9 @@ class I18nProvider extends Component { |
|
|
|
|
t (key, ...args) { |
|
|
|
|
return t(current, key, ...args) || t(en, key, ...args) || `[${key}]` |
|
|
|
|
}, |
|
|
|
|
tOrDefault (key, ...args) { |
|
|
|
|
return t(current, key, ...args) || t(en, key, ...args) || key |
|
|
|
|
tOrDefault: this.tOrDefault, |
|
|
|
|
tOrKey (key, ...args) { |
|
|
|
|
return this.tOrDefault(key, key, ...args) |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -32,6 +38,7 @@ I18nProvider.propTypes = { |
|
|
|
|
I18nProvider.childContextTypes = { |
|
|
|
|
t: PropTypes.func, |
|
|
|
|
tOrDefault: PropTypes.func, |
|
|
|
|
tOrKey: PropTypes.func, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const mapStateToProps = state => { |
|
|
|
|