Есть ли в .NET встроенный механизм плюрализации? - PullRequest
0 голосов
/ 07 марта 2019

Чтобы правильно обработать множественное число, Qt имеет QObject :: tr () , gettext имеет ngettext , Rails имеет хороший i18n API , Какао имеет .stringsdict files .Все эти системы учитывают фактическое число (количество), чтобы определить соответствующую форму множественного числа для данного языка.

Я знаю о Humanizer , NGettext и PluralNet но я ищу встроенный эквивалент в .NET.Он существует или мне не повезло?

1 Ответ

1 голос
/ 14 мая 2019

Это не совсем встроенное решение, но есть расширение Visual Studio, ReswPlus (на Visual Studio Marketplace ), которое использует PluralNet ипроизводит методы, принимающие число в качестве аргумента для автоматического выбора правильной формы множественного числа для данной локализации.

Вот выдержка из README о множественном числе :

Ресурсы:

| Key               | Value            | Comment           |
|-------------------|------------------|-------------------|
| MinutesLeft_One   | {0} minute left  | #ReswPlusTyped[Q] |
| MinutesLeft_Other | {0} minutes left |                   |

Автоматически сгенерирует следующий код:

#region MinutesLeft
/// <summary>
///   Get the pluralized version of the string similar to: {0} minute left
/// </summary>
public static string MinutesLeft(double number)
{
    return Huyn.PluralNet.ResourceLoaderExtension.GetPlural(_resourceLoader, "MinutesLeft", (decimal)number);
}
/// <summary>
///   Format the string similar to: {0} minute left
/// </summary>
public static string MinutesLeft_Format(double pluralCount)
{
    return string.Format(MinutesLeft(pluralCount), pluralCount);
}
#endregion
...