// Code generated by tools/gen-plural-rules; DO NOT EDIT.
// CLDR version: 48.1.0

package plural

import pluralop "github.com/agentable/go-intl/internal/plural"

func OrdinalRule(loc string) (func(pluralop.OperandsRecord) pluralop.Category, bool) {
	switch loc {
	case "af":
		return ordinalAf, true
	case "am":
		return ordinalAm, true
	case "ar":
		return ordinalAr, true
	case "ar-EG":
		return ordinalArEG, true
	case "ar-SA":
		return ordinalArSA, true
	case "az":
		return ordinalAz, true
	case "be":
		return ordinalBe, true
	case "bg":
		return ordinalBg, true
	case "bn":
		return ordinalBn, true
	case "bn-IN":
		return ordinalBnIN, true
	case "ca":
		return ordinalCa, true
	case "cs":
		return ordinalCs, true
	case "cy":
		return ordinalCy, true
	case "da":
		return ordinalDa, true
	case "de":
		return ordinalDe, true
	case "de-AT":
		return ordinalDeAT, true
	case "de-DE":
		return ordinalDeDE, true
	case "el":
		return ordinalEl, true
	case "en":
		return ordinalEn, true
	case "en-AU":
		return ordinalEnAU, true
	case "en-CA":
		return ordinalEnCA, true
	case "en-GB":
		return ordinalEnGB, true
	case "en-US":
		return ordinalEnUS, true
	case "es":
		return ordinalEs, true
	case "es-419":
		return ordinalEs419, true
	case "es-ES":
		return ordinalEsES, true
	case "es-MX":
		return ordinalEsMX, true
	case "et":
		return ordinalEt, true
	case "eu":
		return ordinalEu, true
	case "fa":
		return ordinalFa, true
	case "fi":
		return ordinalFi, true
	case "fil":
		return ordinalFil, true
	case "fr":
		return ordinalFr, true
	case "fr-CA":
		return ordinalFrCA, true
	case "fr-FR":
		return ordinalFrFR, true
	case "ga":
		return ordinalGa, true
	case "gl":
		return ordinalGl, true
	case "gu":
		return ordinalGu, true
	case "he":
		return ordinalHe, true
	case "hi":
		return ordinalHi, true
	case "hi-IN":
		return ordinalHiIN, true
	case "hr":
		return ordinalHr, true
	case "hu":
		return ordinalHu, true
	case "hy":
		return ordinalHy, true
	case "id":
		return ordinalId, true
	case "id-ID":
		return ordinalIdID, true
	case "is":
		return ordinalIs, true
	case "it":
		return ordinalIt, true
	case "it-IT":
		return ordinalItIT, true
	case "ja":
		return ordinalJa, true
	case "ja-JP":
		return ordinalJaJP, true
	case "ka":
		return ordinalKa, true
	case "kk":
		return ordinalKk, true
	case "km":
		return ordinalKm, true
	case "kn":
		return ordinalKn, true
	case "ko":
		return ordinalKo, true
	case "ko-KR":
		return ordinalKoKR, true
	case "ky":
		return ordinalKy, true
	case "lo":
		return ordinalLo, true
	case "lt":
		return ordinalLt, true
	case "lv":
		return ordinalLv, true
	case "mk":
		return ordinalMk, true
	case "ml":
		return ordinalMl, true
	case "mn":
		return ordinalMn, true
	case "mr":
		return ordinalMr, true
	case "ms":
		return ordinalMs, true
	case "my":
		return ordinalMy, true
	case "nb":
		return ordinalNb, true
	case "ne":
		return ordinalNe, true
	case "nl":
		return ordinalNl, true
	case "nl-NL":
		return ordinalNlNL, true
	case "pa":
		return ordinalPa, true
	case "pl":
		return ordinalPl, true
	case "pl-PL":
		return ordinalPlPL, true
	case "pt":
		return ordinalPt, true
	case "pt-BR":
		return ordinalPtBR, true
	case "pt-PT":
		return ordinalPtPT, true
	case "ro":
		return ordinalRo, true
	case "ru":
		return ordinalRu, true
	case "ru-RU":
		return ordinalRuRU, true
	case "si":
		return ordinalSi, true
	case "sk":
		return ordinalSk, true
	case "sl":
		return ordinalSl, true
	case "sq":
		return ordinalSq, true
	case "sr":
		return ordinalSr, true
	case "sv":
		return ordinalSv, true
	case "sw":
		return ordinalSw, true
	case "ta":
		return ordinalTa, true
	case "te":
		return ordinalTe, true
	case "th":
		return ordinalTh, true
	case "th-TH":
		return ordinalThTH, true
	case "tr":
		return ordinalTr, true
	case "tr-TR":
		return ordinalTrTR, true
	case "uk":
		return ordinalUk, true
	case "ur":
		return ordinalUr, true
	case "uz":
		return ordinalUz, true
	case "vi":
		return ordinalVi, true
	case "vi-VN":
		return ordinalViVN, true
	case "zh":
		return ordinalZh, true
	case "zh-Hans":
		return ordinalZhHans, true
	case "zh-Hans-CN":
		return ordinalZhHansCN, true
	case "zh-Hant":
		return ordinalZhHant, true
	case "zh-Hant-HK":
		return ordinalZhHantHK, true
	case "zh-Hant-TW":
		return ordinalZhHantTW, true
	}
	return cardinalOther, true
}

func ordinalAf(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalAm(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalAr(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalArEG(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalArSA(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalAz(o pluralop.OperandsRecord) pluralop.Category {
	if (o.I.Mod(10).Equal(1) || o.I.Mod(10).Equal(2) || o.I.Mod(10).Equal(5) || o.I.Mod(10).Equal(7) || o.I.Mod(10).Equal(8)) || (o.I.Mod(100).Equal(20) || o.I.Mod(100).Equal(50) || o.I.Mod(100).Equal(70) || o.I.Mod(100).Equal(80)) {
		return pluralop.One
	}
	if (o.I.Mod(10).Equal(3) || o.I.Mod(10).Equal(4)) || (o.I.Mod(1000).Equal(100) || o.I.Mod(1000).Equal(200) || o.I.Mod(1000).Equal(300) || o.I.Mod(1000).Equal(400) || o.I.Mod(1000).Equal(500) || o.I.Mod(1000).Equal(600) || o.I.Mod(1000).Equal(700) || o.I.Mod(1000).Equal(800) || o.I.Mod(1000).Equal(900)) {
		return pluralop.Few
	}
	if (o.I.Equal(0)) || (o.I.Mod(10).Equal(6)) || (o.I.Mod(100).Equal(40) || o.I.Mod(100).Equal(60) || o.I.Mod(100).Equal(90)) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalBe(o pluralop.OperandsRecord) pluralop.Category {
	if (o.N.Mod(10).Equal(2) || o.N.Mod(10).Equal(3)) && o.N.Mod(100).NotEqual(12) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalBg(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalBn(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) || o.N.Equal(5) || o.N.Equal(7) || o.N.Equal(8) || o.N.Equal(9) || o.N.Equal(10) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalBnIN(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) || o.N.Equal(5) || o.N.Equal(7) || o.N.Equal(8) || o.N.Equal(9) || o.N.Equal(10) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalCa(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) || o.N.Equal(3) {
		return pluralop.One
	}
	if o.N.Equal(2) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalCs(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalCy(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(0) || o.N.Equal(7) || o.N.Equal(8) || o.N.Equal(9) {
		return pluralop.Zero
	}
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Equal(2) {
		return pluralop.Two
	}
	if o.N.Equal(3) || o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(5) || o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalDa(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalDe(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalDeAT(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalDeDE(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEn(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(1) && o.N.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(2) && o.N.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalEnAU(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(1) && o.N.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(2) && o.N.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalEnCA(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(1) && o.N.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(2) && o.N.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalEnGB(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(1) && o.N.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(2) && o.N.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalEnUS(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(1) && o.N.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(2) && o.N.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalEs(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEs419(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEsES(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEsMX(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEt(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalEu(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalFa(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalFi(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalFil(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalFr(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalFrCA(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalFrFR(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalGa(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalGl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalGu(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalHe(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalHi(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalHiIN(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	if o.N.Equal(6) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalHr(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalHu(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) || o.N.Equal(5) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalHy(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalId(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalIdID(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalIs(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalIt(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(11) || o.N.Equal(8) || o.N.Equal(80) || o.N.Equal(800) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalItIT(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(11) || o.N.Equal(8) || o.N.Equal(80) || o.N.Equal(800) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalJa(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalJaJP(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalKa(o pluralop.OperandsRecord) pluralop.Category {
	if o.I.Equal(1) {
		return pluralop.One
	}
	if (o.I.Equal(0)) || (o.I.Mod(100).Between(2, 20) || o.I.Mod(100).Equal(40) || o.I.Mod(100).Equal(60) || o.I.Mod(100).Equal(80)) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalKk(o pluralop.OperandsRecord) pluralop.Category {
	if (o.N.Mod(10).Equal(6)) || (o.N.Mod(10).Equal(9)) || (o.N.Mod(10).Equal(0) && o.N.NotEqual(0)) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalKm(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalKn(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalKo(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalKoKR(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalKy(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalLo(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalLt(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalLv(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalMk(o pluralop.OperandsRecord) pluralop.Category {
	if o.I.Mod(10).Equal(1) && o.I.Mod(100).NotEqual(11) {
		return pluralop.One
	}
	if o.I.Mod(10).Equal(2) && o.I.Mod(100).NotEqual(12) {
		return pluralop.Two
	}
	if (o.I.Mod(10).Equal(7) || o.I.Mod(10).Equal(8)) && o.I.Mod(100).NotEqual(17) && o.I.Mod(100).NotEqual(18) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalMl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalMn(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalMr(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Equal(2) || o.N.Equal(3) {
		return pluralop.Two
	}
	if o.N.Equal(4) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalMs(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalMy(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalNb(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalNe(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Between(1, 4) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalNl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalNlNL(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPa(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPlPL(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPt(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPtBR(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalPtPT(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalRo(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalRu(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalRuRU(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalSi(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalSk(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalSl(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalSq(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	if o.N.Mod(10).Equal(4) && o.N.Mod(100).NotEqual(14) {
		return pluralop.Many
	}
	return pluralop.Other
}

func ordinalSr(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalSv(o pluralop.OperandsRecord) pluralop.Category {
	if (o.N.Mod(10).Equal(1) || o.N.Mod(10).Equal(2)) && o.N.Mod(100).NotEqual(11) && o.N.Mod(100).NotEqual(12) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalSw(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalTa(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalTe(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalTh(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalThTH(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalTr(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalTrTR(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalUk(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Mod(10).Equal(3) && o.N.Mod(100).NotEqual(13) {
		return pluralop.Few
	}
	return pluralop.Other
}

func ordinalUr(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalUz(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalVi(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalViVN(o pluralop.OperandsRecord) pluralop.Category {
	if o.N.Equal(1) {
		return pluralop.One
	}
	return pluralop.Other
}

func ordinalZh(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalZhHans(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalZhHansCN(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalZhHant(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalZhHantHK(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}

func ordinalZhHantTW(o pluralop.OperandsRecord) pluralop.Category {
	return pluralop.Other
}
