code: func pluralRule4D(n NumberValue) PluralRule {
  	isInt := isInt(n)
  	i := int64(math.Abs(toFloat64(n)))
  
  	mod100 := i % 100
  
  	switch {
  	case isInt && mod100 == 1:
  		return PluralRuleOne
  	case isInt && mod100 == 2:
  		return PluralRuleTwo
  	case isInt && mod100 >= 3 && mod100 <= 4:
  		return PluralRuleFew
  	}
  
  	return PluralRuleOther
  }
docs: // pluralRule4D:
  // Logic for calculating the nth plural for Slovenian or languages who share the same rules as
  // Slovenian
  //
  // Plural Forms Rules Documented here:
  // https://developer.mozilla.org/en/docs/Localization_and_Plurals
  //
  // This Plural Rule contains 4 forms:
  //     - one:
  //         - rule:     n mod 100 is 1
  //         - examples: 1, 11, 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 121, 131, 141, 151, 161, …
  //     - two:
  //         - rule:     n mod 100 is 2
  //         - examples: 2, 12, 22, 32, 42, 52, 62, 72, 82, 92, 102, 112, 122, 132, 142, 152, 162, …
  //     - few:
  //         - rule:     n mod 100 in 3..4
  //         - examples: 3, 4, 13, 14, 23, 24 33, 34, 43, 44, 53, 54, 63, 64, 73, 74, 83, 84, 93, …
  //     - other:
  //         - rule:     everythng else
  //         - examples: 0, 0.5, 5, 6, 7, 8, 9, 10, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, …
  //
  // Languages:
  //     - dsb: Lower Sorbian
  //     - hsb: Upper Sorbian
  //     - sl:  Slovenian
  //     - wen: Sorbian Language