@inlang/paraglide-js
Version:
[](https://www.npmjs.com/package/@inlang/paraglide-js) [ • 1.82 kB
JavaScript
/**
* 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