Beispiel #1
0
        public PluralForm [] SelectPluralForms(IFormatProvider provider, FormatString formatString, object [] arguments)
        {
            var selection = new PluralForm [arguments.Length];
            var length    = Math.Min(formatString.Arguments.Length,
                                     arguments.Length);

            for (var index = 0; index < length; index++)
            {
                var argument = formatString.Arguments [index];
                if (argument.NumberArgumentHole == null)
                {
                    continue;
                }

                var number = FormattedNumber.Parse(provider ?? Culture, argument.NumberArgumentHole, arguments [index]);
                if (number == null)
                {
                    continue;
                }

                var numberForm = CardinalForm;
                if (argument.NumberForm == NumberForm.Ordinal)
                {
                    numberForm = OrdinalForm;
                }

                selection [index] = numberForm.SelectPluralForm(number.Value, argument.AvailablePluralForms);
            }

            return(selection);
        }
Beispiel #2
0
 public PluralForm [] SelectPluralForms(FormatString formatString, object [] arguments)
 {
     return(SelectPluralForms(null, formatString, arguments));
 }