Files
craft-libs/crates/i18n/data/locales.rs
aiongg 233e0b7aa0 i18n: plural rules by language, CLDR data for every locale, trn_plain
Plural rules are looked up by language alone: CLDR's parent of sr-Latn
and zh-Hant is the root, whose only category is other, so sr-latn rows
were rejected. The baked data covers every CLDR locale (10 KB): plural
rules for he, ro, nb, ca, sk, th, ms and the rest, and decimal symbols
for nb-NO, sk-SK, bn-BD, ar-MA and English in Europe. Format applies a
Region's separators only where the system set them, and an empty
grouping separator writes none.

trn_plain writes counts in 0-9 without grouping, for documents and file
names. reset_format goes back to the system region. trn_decimal and
Format write infinities and NaN as CLDR does and take the other form.
Tests that don't set a format use en-US, not the machine's region. The
ICU4X crates are pinned to ~2.3, the minor version the data is for.
2026-10-21 05:49:38 +00:00

145 lines
6.0 KiB
Rust

// @generated by generate.sh from Unicode CLDR 48.2.1 (Unicode License).
/// The languages CLDR has plural rules for; the baked data has them all.
pub(crate) const PLURAL_LANGUAGES: &[&str] = &[
"af", "ak", "am", "an", "ar", "ars", "as", "asa", "ast", "az", "bal", "be", "bem", "bez", "bg", "bho",
"blo", "bm", "bn", "bo", "br", "brx", "bs", "ca", "ce", "ceb", "cgg", "chr", "ckb", "cs", "csw", "cv",
"cy", "da", "de", "doi", "dsb", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff",
"fi", "fil", "fo", "fr", "fur", "fy", "ga", "gd", "gl", "gsw", "gu", "guw", "gv", "ha", "haw", "he",
"hi", "hnj", "hr", "hsb", "hu", "hy", "ia", "id", "ie", "ig", "ii", "io", "is", "it", "iu", "ja",
"jbo", "jgo", "jmc", "jv", "jw", "ka", "kab", "kaj", "kcg", "kde", "kea", "kk", "kkj", "kl", "km", "kn",
"ko", "kok", "ks", "ksb", "ksh", "ku", "kw", "ky", "lag", "lb", "lg", "lij", "lkt", "lld", "ln", "lo",
"lt", "lv", "mas", "mg", "mgo", "mk", "ml", "mn", "mo", "mr", "ms", "mt", "my", "nah", "naq", "nb",
"nd", "ne", "nl", "nn", "nnh", "no", "nqo", "nr", "nso", "ny", "nyn", "om", "or", "os", "osa", "pa",
"pap", "pcm", "pl", "prg", "ps", "pt", "rm", "ro", "rof", "ru", "rwk", "sah", "saq", "sat", "sc", "scn",
"sd", "sdh", "se", "seh", "ses", "sg", "sgs", "sh", "shi", "si", "sk", "sl", "sma", "smi", "smj", "smn",
"sms", "sn", "so", "sq", "sr", "ss", "ssy", "st", "su", "sv", "sw", "syr", "ta", "te", "teo", "th",
"ti", "tig", "tk", "tl", "tn", "to", "tpi", "tr", "ts", "tzm", "ug", "uk", "und", "ur", "uz", "ve",
"vec", "vi", "vo", "vun", "wa", "wae", "wo", "xh", "xog", "yi", "yo", "yue", "zh", "zu",
];
/// Percent signs around the number (CLDR's standard percent pattern and sign): locale, Latin
/// digits or the locale's own, text before the number, text after it. A locale missing here
/// takes its parent's by dropping trailing subtags, then `{n}%`.
pub(crate) const PERCENT: &[(&str, bool, &str, &str)] = &[
("ar", true, "", "\u{200e}%\u{200e}"),
("ar-BH", false, "", "\u{66a}\u{61c}"),
("ar-DJ", false, "", "\u{66a}\u{61c}"),
("ar-EG", false, "", "\u{66a}\u{61c}"),
("ar-ER", false, "", "\u{66a}\u{61c}"),
("ar-IL", false, "", "\u{66a}\u{61c}"),
("ar-IQ", false, "", "\u{66a}\u{61c}"),
("ar-JO", false, "", "\u{66a}\u{61c}"),
("ar-KM", false, "", "\u{66a}\u{61c}"),
("ar-KW", false, "", "\u{66a}\u{61c}"),
("ar-LB", false, "", "\u{66a}\u{61c}"),
("ar-MR", false, "", "\u{66a}\u{61c}"),
("ar-OM", false, "", "\u{66a}\u{61c}"),
("ar-PS", false, "", "\u{66a}\u{61c}"),
("ar-QA", false, "", "\u{66a}\u{61c}"),
("ar-SA", false, "", "\u{66a}\u{61c}"),
("ar-SA", true, "", "\u{66a}"),
("ar-SD", false, "", "\u{66a}\u{61c}"),
("ar-SO", false, "", "\u{66a}\u{61c}"),
("ar-SO", true, "", "\u{66a}"),
("ar-SS", false, "", "\u{66a}\u{61c}"),
("ar-SY", false, "", "\u{66a}\u{61c}"),
("ar-TD", false, "", "\u{66a}\u{61c}"),
("ar-YE", false, "", "\u{66a}\u{61c}"),
("az-Arab", false, "", "\u{66a}"),
("bas", true, "", "\u{a0}%"),
("be", true, "", "\u{a0}%"),
("bgn", false, "", "\u{66a}"),
("bgn", true, "", "\u{66a}"),
("blo", true, "%\u{a0}", ""),
("br", true, "", "\u{a0}%"),
("bua", true, "", "\u{a0}%"),
("ca", true, "", "\u{a0}%"),
("ce", true, "", "\u{a0}%"),
("ckb", false, "", "\u{a0}\u{66a}"),
("cs", true, "", "\u{a0}%"),
("cv", true, "", "\u{a0}%"),
("da", true, "", "\u{a0}%"),
("de", true, "", "\u{a0}%"),
("de-CH", true, "", "%"),
("de-LI", true, "", "%"),
("dsb", true, "", "\u{a0}%"),
("dua", true, "", "\u{a0}%"),
("dz", false, "", "\u{a0}%"),
("dz", true, "", "\u{a0}%"),
("en-AT", true, "", "\u{a0}%"),
("en-DE", true, "", "\u{a0}%"),
("en-DK", true, "", "\u{a0}%"),
("en-FI", true, "", "\u{a0}%"),
("en-NO", true, "", "\u{a0}%"),
("en-SE", true, "", "\u{a0}%"),
("es", true, "", "\u{a0}%"),
("es-419", true, "", "%"),
("es-AR", true, "", "%"),
("es-BO", true, "", "%"),
("es-BR", true, "", "%"),
("es-BZ", true, "", "%"),
("es-CL", true, "", "%"),
("es-CO", true, "", "%"),
("es-CR", true, "", "%"),
("es-CU", true, "", "%"),
("es-DO", true, "", "%"),
("es-EC", true, "", "%"),
("es-GT", true, "", "%"),
("es-HN", true, "", "%"),
("es-MX", true, "", "%"),
("es-NI", true, "", "%"),
("es-PA", true, "", "%"),
("es-PE", true, "", "%"),
("es-PR", true, "", "%"),
("es-PY", true, "", "%"),
("es-SV", true, "", "%"),
("es-US", true, "", "%"),
("es-UY", true, "", "%"),
("es-VE", true, "", "%"),
("eu", true, "%\u{a0}", ""),
("fa", false, "", "\u{66a}"),
("fi", true, "", "\u{a0}%"),
("fo", true, "", "\u{a0}%"),
("fr", true, "", "\u{a0}%"),
("fr-CH", true, "", "%"),
("gl", true, "", "\u{a0}%"),
("gsw", true, "", "\u{a0}%"),
("hr", true, "", "\u{a0}%"),
("hsb", true, "", "\u{a0}%"),
("ht", true, "", "\u{a0}%"),
("kl", true, "", "\u{a0}%"),
("ks", false, "", "\u{66a}"),
("ksh", true, "", "\u{a0}%"),
("ku", true, "%", ""),
("ku-Arab", true, "", "%"),
("lb", true, "", "\u{a0}%"),
("lrc", false, "", "\u{66a}"),
("lt", true, "", "\u{a0}%"),
("mk", true, "", "\u{a0}%"),
("mzn", false, "", "\u{66a}"),
("nb", true, "", "\u{a0}%"),
("nds", true, "", "\u{a0}%"),
("nn", true, "", "\u{a0}%"),
("no", true, "", "\u{a0}%"),
("oc", true, "", "\u{202f}%"),
("pa-Arab", false, "", "\u{66a}"),
("ps", false, "", "\u{66a}"),
("qu", true, "", "\u{a0}%"),
("rn", true, "", "\u{a0}%"),
("ro", true, "", "\u{a0}%"),
("ru", true, "", "\u{a0}%"),
("sd", false, "", "\u{66a}\u{61c}"),
("sdh", false, "", "\u{66a}\u{61c}"),
("se", true, "", "\u{a0}%"),
("sk", true, "", "\u{a0}%"),
("sl", true, "", "\u{a0}%"),
("smn", true, "", "\u{a0}%"),
("sv", true, "", "\u{a0}%"),
("tk", true, "", "\u{a0}%"),
("tr", true, "%", ""),
("tt", true, "", "\u{a0}%"),
("uz-Arab", false, "", "\u{66a}"),
("zgh", true, "", "\u{a0}%"),
];