Files
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

66 lines
2.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = I18n;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _nodePolyglot = _interopRequireDefault(require("node-polyglot"));
var _i18nContext = _interopRequireDefault(require("./i18n-context"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function I18n(_ref) {
var locale = _ref.locale,
messages = _ref.messages,
allowMissing = _ref.allowMissing,
onMissingKey = _ref.onMissingKey,
interpolation = _ref.interpolation,
pluralRules = _ref.pluralRules,
children = _ref.children;
var translate = _react["default"].useMemo(function () {
var polyglot = new _nodePolyglot["default"]({
locale: locale,
phrases: messages,
allowMissing: allowMissing,
onMissingKey: onMissingKey,
interpolation: interpolation,
pluralRules: pluralRules
});
var boundTranslate = polyglot.t.bind(polyglot);
boundTranslate._polyglot = polyglot;
return boundTranslate;
}, [locale, messages, allowMissing, onMissingKey, interpolation, pluralRules]);
return _react["default"].createElement(_i18nContext["default"].Provider, {
value: translate
}, _react["default"].Children.only(children));
}
I18n.propTypes = {
locale: _propTypes["default"].string.isRequired,
messages: _propTypes["default"].object.isRequired,
allowMissing: _propTypes["default"].bool,
onMissingKey: _propTypes["default"].func,
interpolation: _propTypes["default"].shape({
suffix: _propTypes["default"].string,
prefix: _propTypes["default"].string
}),
pluralRules: _propTypes["default"].shape({
pluralTypes: _propTypes["default"].object,
pluralTypeToLanguages: _propTypes["default"].object
}),
children: _propTypes["default"].element.isRequired
};
I18n.defaultProps = {
allowMissing: false,
onMissingKey: undefined,
interpolation: undefined,
pluralRules: undefined
};