UNPKG

@inlang/paraglide-js

Version:

[![NPM Downloads](https://img.shields.io/npm/dw/%40inlang%2Fparaglide-js?logo=npm&logoColor=red&label=npm%20downloads)](https://www.npmjs.com/package/@inlang/paraglide-js) [![GitHub Issues](https://img.shields.io/github/issues-closed/opral/paraglide-js?lo

60 lines (56 loc) 1.82 kB
/** * Re: CUSTOMIZING THE REGISTRY * * We want to enable anyone (designer, developer, translator) to * specify options for functions. That requires design work in * the inlang SDK. * * For now, Paraglide ships a custom solution with INTL functions. */ /** * Creates the Registry file */ export function createRegistry() { return ` /** * @typedef {"year" | "years" | "quarter" | "quarters" | "month" | "months" | "week" | "weeks" | "day" | "days" | "hour" | "hours" | "minute" | "minutes" | "second" | "seconds"} RelativeTimeFormatUnit */ /** * @param {import("./runtime.js").Locale} locale * @param {unknown} input * @param {Intl.PluralRulesOptions} [options] * @returns {string} */ export function plural(locale, input, options) { return new Intl.PluralRules(locale, options).select(Number(input)) }; /** * @param {import("./runtime.js").Locale} locale * @param {unknown} input * @param {Intl.NumberFormatOptions} [options] * @returns {string} */ export function number(locale, input, options) { return new Intl.NumberFormat(locale, options).format(Number(input)) }; /** * @param {import("./runtime.js").Locale} locale * @param {unknown} input * @param {Intl.DateTimeFormatOptions} [options] * @returns {string} */ export function datetime(locale, input, options) { return new Intl.DateTimeFormat(locale, options).format(new Date(/** @type {string} */ (input))) }; /** * @param {import("./runtime.js").Locale} locale * @param {unknown} input * @param {Intl.RelativeTimeFormatOptions & { unit: RelativeTimeFormatUnit }} options * @returns {string} */ export function relativetime(locale, input, options) { const { unit, ...intlOptions } = options; return new Intl.RelativeTimeFormat(locale, intlOptions).format(Number(input), unit); };`; } //# sourceMappingURL=registry.js.map