Intl.PluralRules Tester
Compare cardinal and ordinal plural categories across locales and visible decimal digits, locally in your browser.
Enabling local controls…
Results
Review the settings and run. Editing inputs clears old results.
Processing model and limits
Enter 1–4 Unicode locale identifiers and 1–12 signed decimals, one per line. Decimals require integer digits, are within ±1,000,000,000, and have at most three fractional digits and 32 characters. Each locale is at most 128 characters and each field at most 16,384 characters. Default mode uses JavaScript Intl.PluralRules defaults: 1 and 1.0 become the same Number. Preserve mode sets minimumFractionDigits and maximumFractionDigits to each input's visible fractional digits after Number conversion; it is a different option model, not a correction. Results depend on the browser's Intl/CLDR data, are category labels rather than grammatical validation, and may differ from translation frameworks. Unsupported locales and malformed inputs are rejected. Inputs stay in this browser and are not stored or sent to tool analytics.
Data and model checked: ECMA-402: PluralRules ↗Unicode CLDR: Plural rules ↗
How to use this tool
Load the example, confirm field units and processing rules, then run locally. Editing any input clears the old result. Copy or download the complete output explicitly.
When not to use it
Enter 1–4 Unicode locale identifiers and 1–12 signed decimals, one per line. Decimals require integer digits, are within ±1,000,000,000, and have at most three fractional digits and 32 characters. Each locale is at most 128 characters and each field at most 16,384 characters. Default mode uses JavaScript Intl.PluralRules defaults: 1 and 1.0 become the same Number. Preserve mode sets minimumFractionDigits and maximumFractionDigits to each input's visible fractional digits after Number conversion; it is a different option model, not a correction. Results depend on the browser's Intl/CLDR data, are category labels rather than grammatical validation, and may differ from translation frameworks. Unsupported locales and malformed inputs are rejected. Inputs stay in this browser and are not stored or sent to tool analytics.
Read the guide →