react-translate-maker
Version:
React translation module. Internationalize your great project.
111 lines (80 loc) • 3.21 kB
JavaScript
;
exports.__esModule = true;
exports.default = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _class, _temp;
var _react = require('react');
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _LocaleProvider = require('./LocaleProvider');
var _LocaleProvider2 = _interopRequireDefault(_LocaleProvider);
var _Translate = require('./Translate');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TranslateHTML = (_temp = _class = function (_Component) {
(0, _inherits3.default)(TranslateHTML, _Component);
function TranslateHTML() {
(0, _classCallCheck3.default)(this, TranslateHTML);
return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
}
TranslateHTML.prototype.getPath = function getPath() {
var path = this.props.path;
var namespace = this.context.namespace;
if (!namespace) {
return path;
}
var parentPath = namespace.getPath();
if (!parentPath) {
return path;
}
return parentPath + '.' + path;
};
TranslateHTML.prototype.render = function render() {
var _props = this.props,
tagName = _props.tagName,
params = _props.params,
defaultValue = _props.defaultValue,
_props$props = _props.props,
props = _props$props === undefined ? {} : _props$props,
className = _props.className;
var path = this.getPath();
var translate = this.context.translate;
var currentProps = params || this.props;
var updatedProps = (0, _Translate.prepareProps)(currentProps, translate);
var text = translate.get(path, updatedProps, defaultValue);
var elementProps = (0, _extends3.default)({
className: className
}, props, {
dangerouslySetInnerHTML: {
__html: text
}
});
return (0, _react.createElement)(tagName, elementProps);
};
return TranslateHTML;
}(_react.Component), _class.contextTypes = (0, _extends3.default)({}, _LocaleProvider2.default.childContextTypes, {
namespace: _propTypes2.default.object
}), _class.propTypes = {
path: _propTypes2.default.string.isRequired,
tagName: _propTypes2.default.string.isRequired,
defaultValue: _propTypes2.default.string,
description: _propTypes2.default.string,
className: _propTypes2.default.string,
params: _propTypes2.default.object,
props: _propTypes2.default.object
}, _class.defaultProps = {
defaultValue: undefined,
description: undefined,
className: undefined,
params: undefined,
props: undefined
}, _class.defaultProps = {
tagName: 'span'
}, _temp);
exports.default = TranslateHTML;