Локализация Humanizer не работает в IIS
Я использую гуманизатор для получения дружественной человеку последовательности, говорящей о том, как далеко назад или вперед во времени какая-то дата. Некоторые примеры здесь:
DateTime.UtcNow.AddHours(-30).Humanize() => "yesterday"
DateTime.UtcNow.AddHours(-2).Humanize() => "2 hours ago"
DateTime.UtcNow.AddHours(30).Humanize() => "tomorrow"
DateTime.UtcNow.AddHours(2).Humanize() => "2 hours from now"
DateTimeOffset.AddHours(1).Humanize() => "an hour from now"
Библиотека предоставляет возможности для разных культур:
public static string Humanize(this DateTime input, bool utcDate = true, DateTime? dateToCompareAgainst = null, CultureInfo culture = null)
Я использую (используя персидскую культуру):
myDate.Humanize(culture: new CultureInfo("fa-IR"))
Проблема в том, что он отлично работает в IIS Express в Visual Studio 2013, но показывает английский в IIS в Windows 8.
Итак, мой результат:
"14 days ago" //In IIS
"14 روز پیش" //In Visual Studio 2013
0 ответов
Этот вопрос сейчас выглядит довольно старым и, возможно, уже был решен. В.NET Framework 3.5 и более ранних версиях культурные данные предоставляются как операционной системой Windows, так и.NET Framework. Возможно, именно в этом причина несоответствия между запуском через IIS и локальным запуском через Visual Studio.
Если ваш проект не может быть обновлен, есть обходной путь, чтобы добавить персидский язык. https://www.codeproject.com/Articles/32096/How-to-Set-PersianCalendar-to-CultureInfo