如何在ASP.Net Core Razor Pages中组织多语言URL?

3

ASP.NET Core 2.2.0

我正在寻找 ASP.NET Core 中基于语言的 URL。在 .NET Core MVC 中,我找到了很多示例,但是在 Razor Pages 中无法实现。

我的目标是:

  • domain.com/informatie -> 链接到默认语言(例如荷兰语)的“信息”页面
  • domain.com/en/information -> 链接到相同页面的英文版

因此我需要两个功能:

  1. 识别 URL 中的语言或在未提供语言标签时设置默认语言
  2. 翻译我的 PageModel 的名称

我将编写一种自定义方法来翻译内容。

最佳示例

我找到了 2 个几乎做到了我想要的事情的示例,但它们都使用了 MVC:

第二个示例看起来很不错,我试图将其改写为 Razor Pages,但是卡在了 LocalizationController.cs(因为我没有使用控制器,而是一个 PageModel)和 CultureActionLinkTagHelper.cs(我使用 asp-page 属性)。

是否有人已经在 Razor Pages 中解决了这个问题,并且愿意共享代码?或者有人可以帮助我吗?

1个回答

2

我查看了教程,对我很有帮助。但是对我来说最后一个缺失的环节是如何翻译Pagemodels(URL中的页面名称)。这也可能吗? - CribAd
你想要类似于英文的 <a href="/en/register/">Register</a> 和西班牙文的 <a href="/es/registro/">Registro</a> 这样的东西吗?如果是,我不喜欢这样做,它会给路由添加复杂的逻辑,并且并不是真正必要的。只需要本地化显示文本即可。 - LazZiya
是的,那就是我想要的。我们是一家国际公司,在全世界销售产品,甚至向不会说或读英语的人出售。我真的希望每个人都能理解我们的URL。在这个例子中,链接有一个相当简单的逻辑,但它是为MVC而非Razor编写的。 - CribAd
@CribAd 我一直在寻找在MVC中实现这个功能,但很惊讶这似乎不是一件常见的事情 - 我和你一样认为,对于我们的非英语客户来说,给他们能够理解的URL是很好的。毕竟,MVC的驱动力是“使URL可操作”...我知道你正在寻找Razor Pages,但我很高兴你给我找到了一些我可以在MVC中尝试的东西! - aspirant_sensei
@KrishanPatel 不用谢!确实,这两个链接的示例非常适合MVC! - CribAd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接