【问题标题】:How can I show the second language in the details view of a 2sxc app?如何在 2sxc 应用程序的详细信息视图中显示第二种语言?
【发布时间】:2020-11-11 19:04:28
【问题描述】:

我有一个多语言 DNN 和一个用于列出职业的多语言、定制的 2sxc 应用程序。该网站和应用程序使用英语和法语。

该应用有一个列表模板和一个详细信息模板。当一个人登陆页面时,它会在网格中显示职业列表。每个职业都有不同的字段,但重要的是要知道它有一个 Title(一个简单的文本字符串)和一个 URL(url-part 字段)。

在列表页面上,我有一个指向每个详细信息视图的链接,如下所示:

<a href="@(Dnn.Tab.FullUrl + "/" + @App.Resources.CareerLabel.ToLower() + "/" + career.urlkey)">

用户点击此链接,然后他们被带到一个如下所示的 URL: /en-ca/students/think/career/兽医

“/career/”部分是一个查询字符串,我设置了一个简单的可视化查询,以便详细信息视图对此进行过滤。这是一个非常标准的列表和详细信息设置。

我希望能够把这篇文章也翻译成法语,包括网址,所以当我翻译它时,它应该是这样的:

/fr-ca/eleves/pense/career/veterinaire

我遇到的问题是:我创建了我的英文文章。但是当我将文章翻译成法语时,包括 URL 字段,文章似乎没有显示。

在我的 _details.cshtml 模板中,我有:

@if (Content != null) { //show the details } else { // the career can't be found }

由于某种原因,当我转到法语并单击列表中的职业时,网址显示 /fr-ca/eleves/pense/career/veterinaire 但随后详细信息视图显示“职业不能找到”我的详细信息模板的一部分,就好像内容为空一样。

【问题讨论】:

  • 我开始怀疑我的问题是因为我的多语言 DNN 网站最初是 EN-US,然后我添加了 EN-CA 和 EN-FR,然后删除了 EN-US 和将 EN-CA 设置为主。因此,我似乎遇到了默认语言不可用的问题,因此我不得不重新保存每个单独的字段以将语言设置为 EN-CA。有没有办法解决这个问题?
  • 这篇文章是相关的,我相信这是同一个问题:github.com/2sic/2sxc/issues/2244

标签: c# razor dotnetnuke 2sxc


【解决方案1】:

这方面已经有了一些进展,也许答案已经过时了……

  1. 以前 ValueFilter 只尊重主要语言,因此您不能使用来自第二语言的 url-keys
  2. 现在已作为一项功能添加 - ValueFilter 的设置现在也可以选择考虑当前语言。见https://github.com/2sic/2sxc/issues/2244

【讨论】:

  • 谢谢!我很快就会试一试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
相关资源
最近更新 更多