macoolka-i18n
Version:
`macoolka-i18n` is a library for internationalization in TypeScript. It easily integrates some localization features to your Application.
129 lines • 5.49 kB
JavaScript
;
/**
* The Provide orginal formatter.
* @desczh
* 原始formatter
* @file
*
*/
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cacheFormat = exports.i18nCache = exports.standFormat = exports.formatMessageHtml = exports.formatMessage = exports.formatPlural = exports.formatRelativeTime = exports.formatNumber = exports.formatDatetime = void 0;
var intl_relativetimeformat_1 = __importDefault(require("@formatjs/intl-relativetimeformat"));
// import '@formatjs/intl-relativetimeformat/polyfill-locales';
var intl_messageformat_1 = __importDefault(require("intl-messageformat"));
var macoolka_cache_1 = require("macoolka-cache");
var macoolka_object_1 = require("macoolka-object");
var macoolka_string_1 = require("macoolka-string");
var macoolka_predicate_1 = require("macoolka-predicate");
__exportStar(require("./types"), exports);
var formatDatetime = function (_a) {
var locale = _a.locale, others = __rest(_a, ["locale"]);
return function (value) {
var format = new Intl.DateTimeFormat(locale, others);
return format.format(value);
};
};
exports.formatDatetime = formatDatetime;
var formatNumber = function (_a) {
var locale = _a.locale, others = __rest(_a, ["locale"]);
return function (value) {
var format = new Intl.NumberFormat(locale, others);
return format.format(value);
};
};
exports.formatNumber = formatNumber;
var formatRelativeTime = function (_a) {
var locale = _a.locale, _b = _a.unit, unit = _b === void 0 ? 'seconds' : _b, others = __rest(_a, ["locale", "unit"]);
return function (value) {
var format = new intl_relativetimeformat_1.default(locale, others);
/* format.addLocaleData(
require('@formatjs/intl-relativetimeformat/locale-data/zh'),
require('@formatjs/intl-relativetimeformat/locale-data/en')
); */
return format.format(value, unit);
};
};
exports.formatRelativeTime = formatRelativeTime;
var formatPlural = function (_a) {
var locale = _a.locale, others = __rest(_a, ["locale"]);
return function (value) {
var format = new Intl.PluralRules(locale, others);
return format.select(value);
};
};
exports.formatPlural = formatPlural;
var formatMessage = function (_a) {
var locale = _a.locale, message = _a.message, formats = _a.formats, value = _a.value;
var format = new intl_messageformat_1.default(message, locale, formats);
return format.format(value);
};
exports.formatMessage = formatMessage;
var formatMessageHtml = function (_a) {
var locale = _a.locale, message = _a.message, formats = _a.formats, value = _a.value;
var escapeMessage = (0, macoolka_string_1.escapeHtml)(message);
var format = new intl_messageformat_1.default(escapeMessage, locale, formats);
var escapedValues = (0, macoolka_object_1.mapValues)(value, function (v, k) {
return (0, macoolka_predicate_1.isString)(v) ? (0, macoolka_string_1.escapeHtml)(v) : v;
});
return format.format(escapedValues);
};
exports.formatMessageHtml = formatMessageHtml;
exports.standFormat = {
formatMessage: exports.formatMessage,
formatMessageHtml: exports.formatMessageHtml,
formatRelativeTime: exports.formatRelativeTime,
formatDatetime: exports.formatDatetime,
formatNumber: exports.formatNumber,
formatPlural: exports.formatPlural,
};
exports.i18nCache = {
formatMessage: {},
formatRelativeTime: {},
formatDatetime: {},
formatNumber: {},
formatPlural: {},
formatMessageHtml: {}
};
exports.cacheFormat = __assign({}, (0, macoolka_object_1.mapValues)(exports.standFormat, function (value, key) {
return (0, macoolka_cache_1.memoizeFunction)(exports.i18nCache[key])(value);
}));
//# sourceMappingURL=index.js.map