From 7b3bde120f2a7c39dcfcb29c06e701deb9c3b090 Mon Sep 17 00:00:00 2001 From: KennyMcSimpson <70093673+KennyMcSimpson@users.noreply.github.com> Date: Sun, 25 Oct 2026 04:04:47 +0800 Subject: [PATCH] Add Uzbek and Kyrgyz plural rules --- .../PluralLocalizationFormatterTests.cs | 20 +++++++++++++++++++ src/SmartFormat/Utilities/PluralRules.cs | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/SmartFormat.Tests/Extensions/PluralLocalizationFormatterTests.cs b/src/SmartFormat.Tests/Extensions/PluralLocalizationFormatterTests.cs index 4e3370ce..905408d5 100644 --- a/src/SmartFormat.Tests/Extensions/PluralLocalizationFormatterTests.cs +++ b/src/SmartFormat.Tests/Extensions/PluralLocalizationFormatterTests.cs @@ -224,6 +224,26 @@ public void Test_Turkish() }); } + [TestCase("uz")] + [TestCase("uz-Latn-UZ")] + [TestCase("uz-Cyrl-UZ")] + [TestCase("ky")] + [TestCase("ky-KG")] + public void Test_Uzbek_And_Kyrgyz(string cultureName) + { + var expectedResults = new ExpectedResults { + { 0, "other"}, + {0.5m, "other"}, + { 1, "one"}, + {1.5m, "other"}, + { 2, "other"}, + { 11, "other"}, + }; + + TestAllResults(new CultureInfo(cultureName), "{0:plural:one|other}", expectedResults); + TestAllResults(new CultureInfo("en"), $"{{0:plural({cultureName}):one|other}}", expectedResults); + } + [Test] public void Test_Russian() { diff --git a/src/SmartFormat/Utilities/PluralRules.cs b/src/SmartFormat/Utilities/PluralRules.cs index 876656ae..12a1e70c 100644 --- a/src/SmartFormat/Utilities/PluralRules.cs +++ b/src/SmartFormat/Utilities/PluralRules.cs @@ -82,6 +82,7 @@ public static class PluralRules { "kk", DualOneOther }, // Kazakh { "kl", DualOneOther }, // Kalaallisut { "ku", DualOneOther }, // Kurdish + { "ky", DualOneOther }, // Kyrgyz { "lb", DualOneOther }, // Luxembourgish { "lg", DualOneOther }, // Ganda { "lo", DualOneOther }, // Lao @@ -115,6 +116,7 @@ public static class PluralRules { "tk", DualOneOther }, // Turkmen { "tr", DualOneOther }, // Turkish { "ur", DualOneOther }, // Urdu + { "uz", DualOneOther }, // Uzbek { "wae", DualOneOther }, // Walser { "xog", DualOneOther }, // Soga { "zu", DualOneOther }, // Zulu