【问题标题】:Humanizer localization not work in IISHumanizer 本地化在 IIS 中不起作用
【发布时间】:2016-07-10 08:45:38
【问题描述】:

我正在使用humanizer 来获取人类友好的字符串,以告知某个日期的时间向后或向前多远。这里有一些例子:

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"))

问题是它在 Visual Studio 2013 的 IIS Express 中运行良好,但它在 Windows 8 的 IIS 中显示英文。

所以我的结果是:

"14 days ago" //In IIS
"14 روز پیش" //In Visual Studio 2013

【问题讨论】:

  • 这个 IIS Express in Visual Studio 2013 在不同的 windows 版本而不是 Win8 中?还是全部在同一台机器上?你的意思是它在 VS 中是好的,但在 IIS 中不是?也许 IIS 设置会覆盖您的文化信息?
  • @SonerGönül 两个 IIS 在同一台机器上。如果您需要部分设置,我会在更新中添加问题。

标签: c# asp.net .net iis humanizer


【解决方案1】:

这个问题现在看起来很老了,可能已经解决了。在 .NET Framework 3.5 和更早版本中,文化数据由 Windows 操作系统和 .NET Framework 提供。也许这就是通过 IIS 运行和通过 Visual Studio 在本地运行之间存在差异的原因。

如果您的项目无法更新,这里有一个解决方法来添加波斯语。 https://www.codeproject.com/Articles/32096/How-to-Set-PersianCalendar-to-CultureInfo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2012-12-11
    • 2012-12-30
    相关资源
    最近更新 更多