.NET是否具有内置的多元化机制?

时间:2019-03-06 23:35:11

标签: .net plural

为了正确处理复数,Qt使用QObject::tr(),gettext使用ngettext,Rails使用良好的i18n API,可可使用.stringsdict files。所有这些系统都考虑了实际数字(数量),以确定给定语言的适当复数形式。

我了解HumanizerNGettextPluralNet,但我正在寻找.NET中的内置等效项。它存在还是我不走运?

1 个答案:

答案 0 :(得分:1)

这不是完全内置的解决方案,但是有一个Visual Studio扩展ReswPlus(在Visual Studio Marketplace上),它利用PluralNet并生成以数字作为参数的方法。自动为给定的本地化选择正确的复数形式。

以下是自述文件中有关pluralization的摘录:

资源:

| 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