@messageformat/core
Version:
PluralFormat and SelectFormat Message and i18n Tool - A JavaScript Implemenation of the ICU standards.
34 lines (33 loc) • 1.22 kB
TypeScript
import * as Plurals from 'make-plural/plurals';
/**
* Function used to define the pluralisation for a locale
*
* @public
* @remarks
* `(value: number | string, ord?: boolean) => PluralCateogry`
*
* May be used as a {@link MessageFormat} constructor `locale` argument.
*/
export interface PluralFunction {
/** Foo bar */
(value: number | string, ord?: boolean): Plurals.PluralCategory;
/** Which plurals may be returned if `ord` is falsy */
cardinals?: Plurals.PluralCategory[];
/** Which plurals may be returned if `ord` is true */
ordinals?: Plurals.PluralCategory[];
/** The name of the module from which this function may be imported */
module?: string;
}
export interface PluralObject {
isDefault: boolean;
id: string;
lc: string;
locale: string;
getCardinal?: (value: string | number) => Plurals.PluralCategory;
getPlural: PluralFunction;
cardinals: Plurals.PluralCategory[];
ordinals: Plurals.PluralCategory[];
}
export declare function getPlural(locale: string | PluralFunction): PluralObject | null;
export declare function getAllPlurals(firstLocale: string): PluralObject[];
export declare function hasPlural(locale: string): boolean;