Cldr v0.12.0 Cldr.Number.Ordinal View Source
Implements ordinal plural rules for numbers.
Link to this section Summary
Functions
The configured locales for which plural rules are defined
The locales for which cardinal rules are defined
Lookup the plural cardinal category for a given number in a given locale
The plural rules defined in CLDR
Return the plural rules for a locale
Pluralize a number using plural rules and a substition map
Link to this section Types
Link to this section Functions
The configured locales for which plural rules are defined
This is the intersection of the Cldr.known_locale_names/0 and the locales for
which plural rules are defined. There are many Cldr locales which
don’t have their own plural rules so this list is the intersection
of Cldr’s configured locales and those that have rules.
The locales for which cardinal rules are defined
Lookup the plural cardinal category for a given number in a given locale
Identify which category (zero, one, two, few, many or other) a given number in a given locale fits into. This category can then be used to format the number or currency
The plural rules defined in CLDR.
plural_rules_for(Cldr.Locale.locale_name()) :: [{atom(), list()}, ...]
Return the plural rules for a locale.
The rules are returned in AST form after parsing. This function
is primarilty to support Cldr.Gettext.
pluralize(Cldr.Math.number_or_decimal(), Cldr.LanguageTag.t(), %{}) :: String.t() | nil
Pluralize a number using plural rules and a substition map.
numberis an integer, float or Decimallocaleis a%LanguageTag.tsubstitutionsis a map that maps plural keys to a string. Per the CLDR defintion of plural rules, the valid substitution keys are:zero,:one,:two,:few,:manyand:other.
See also Cldr.Ordinal.plural_rule/3 and Cldr.Cardinal.plural_rule/3.
Examples
iex> Cldr.Number.Ordinal.pluralize 1, Locale.new("en"), %{one: "one"}
"one"
iex> Cldr.Number.Ordinal.pluralize 2, Locale.new("en"), %{one: "one"}
nil
iex> Cldr.Number.Ordinal.pluralize 2, Locale.new("en"), %{one: "one", two: "two"}
"two"
iex> Cldr.Number.Ordinal.pluralize 22, Locale.new("en"), %{one: "one", two: "two", other: "other"}
"other"
iex> Cldr.Number.Ordinal.pluralize Decimal.new(1), Locale.new("en"), %{one: "one"}
"one"
iex> Cldr.Number.Ordinal.pluralize Decimal.new(2), Locale.new("en"), %{one: "one"}
nil
iex> Cldr.Number.Ordinal.pluralize Decimal.new(2), Locale.new("en"), %{one: "one", two: "two"}
"two"