【问题标题】:Webpage meta description in multiple languages多种语言的网页元描述
【发布时间】:2019-02-18 00:49:47
【问题描述】:

是否可以为多种语言添加<meta name="description" content="..." />

我知道这个问题已经在堆栈上提出并回答了,但答案并没有解决我的问题。

诀窍是我的网站内容取自资源文件,这些文件有 PL 和 EN 版本。该应用程序使用 ASP.Net Core 中间件 (UseRequestLocalization()) 根据浏览器设置或用户手动更改语言时创建的 cookie 值来决定使用哪个资源文件,因此有可能永远不会创建它。

如您所见,没有直接指示网站当前以哪种语言显示,因为我没有将该信息推送到 URL 中,也没有将其存储在 HTML 标记中。

我很高兴能够做这样的事情:

<meta name="description" content="some polish content" />
<meta name="description" content="some english content" />

并让浏览器根据浏览器语言设置来决定使用哪一个。这样的事情在 ASP.Net Core 应用程序中是否可行?

编辑因为人们投票关闭重复的问题而不阅读我的...

是的,我读过HTML: Multiple language meta descriptions?。它阐明了这个主题,但首先它对我的情况并没有真正的帮助,其次,它是在 ASP.Net Core 1.0 甚至引入之前编写的,所以我问是否可能是 ASP.Net Core有办法解决这个问题。我以我的方式标记我的问题是有原因的......请在投票前阅读不仅仅是标题

【问题讨论】:

  • 在您可以在stackoverflow引用之前进行了讨论
  • 你读过我的问题吗? “我知道这个问题已经在堆栈上提出并回答了,但答案并没有解决我的问题。”......是的,我也找到了你所指的答案,这就是我说的那个没有帮助跨度>

标签: html asp.net asp.net-core


【解决方案1】:

您不能发布多个版本的元描述。但是,如果您的网站宣传本地化版本,您可以确保元描述本身以正确的语言本地化。换句话说,您不能只拥有一个带有英语和波兰语元描述的英文页面,但您可以拥有一个带有英语元描述的页面的英文版本和一个带有波兰元描述的页面的波兰语版本。

有关如何设置所有内容的更多信息,请参阅documentation on localization。为您的项目设置本地化并建立资源后,只需将IViewLocalizer 注入您的视图即可:

@inject IViewLocalizer Localizer

...

<meta name="description" content="@Localizer["This is my meta description"]" />

【讨论】:

  • 已经尝试过了,但它对我不起作用。它所做的只是显示“这是我的元描述”而不是密钥所指的资源(检查浏览器的开发人员工具)
  • 假设您正确设置了本地化,那么文化就关闭了。否则,您的本地化设置有问题。
猜你喜欢
  • 2022-08-09
  • 2011-12-20
  • 1970-01-01
  • 2015-10-14
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2019-09-29
相关资源
最近更新 更多