public void Language_Cache() { var a = Plural.Create(Locale.Create("en-US")); var b = Plural.Create(Locale.Create("en-NZ")); Assert.AreSame(a, b); }
public void Category_No_Language_Rules() { var locale = Locale.Create("zza"); var plural = Plural.Create(locale); Assert.IsNotNull(plural); Assert.AreEqual("other", plural.Category(1)); }
public void Example() { var en = Plural.Create(Locale.Create("en")); var cy = Plural.Create(Locale.Create("cy")); for (int i = 0; i <= 10; ++i) { Console.WriteLine($"| {i} | {en.Category(i)} | {cy.Category(i)} |"); } }
public void Category_en() { var locale = Locale.Create("en"); var plural = Plural.Create(locale); Assert.IsNotNull(plural); Assert.AreEqual("one", plural.Category(1)); Assert.AreEqual("other", plural.Category(2)); }
/// <summary> /// Creates or reuses plural informmation for the specified <see cref="Locale"/>. /// </summary> /// <param name="locale"> /// The locale. /// </param> /// <returns> /// The best for the <paramref name="locale"/>. /// </returns> public static Plural Create(Locale locale) { var lang = locale.Id.Language.ToLowerInvariant(); return(Cache.GetOrAdd(lang, key => { var plural = new Plural { Locale = locale }; plural.LoadRules(); return plural; })); }
public void Category_ar() { var locale = Locale.Create("ar"); var plural = Plural.Create(locale); Assert.IsNotNull(plural); Assert.AreEqual("zero", plural.Category(0)); Assert.AreEqual("one", plural.Category(1)); Assert.AreEqual("two", plural.Category(2)); Assert.AreEqual("few", plural.Category(3)); Assert.AreEqual("few", plural.Category(10)); Assert.AreEqual("many", plural.Category(11)); Assert.AreEqual("many", plural.Category(99)); Assert.AreEqual("other", plural.Category(100)); Assert.AreEqual("other", plural.Category(101)); Assert.AreEqual("other", plural.Category(102)); }