umbraco - 多语言、智能链接转换

标签 umbraco

我对 Umbraco 还很陌生,所以我的问题可能非常简单,但我无法在网上找到任何简单的指南。

我正在构建一个简单的网站,其具有一个域和结构,如下所示

Content

- en
-- products
-- contacts

- cs
-- produkty
-- kontakty

等等。我的第一个问题是:因为我想在 SEO 中取得一些不错的结果,所以我需要(i)将元语言分配给“en”和“cs”节点的内容以及一些关键字。我该怎么做?

第二:假设将来我决定添加一种新语言,例如。俄语。所以我需要做的是制作“en”节点及其内容的副本,而新创建的副本中包含的链接应重写以指向副本而不是原始(原始将是/en/anotherpage ,应重写为/ru/anotherpage)。这可能吗?

谢谢, 翁德雷吉

最佳答案

您可以将内容结构构建为单个根节点,然后在内容根的正下方设置多个语言主页节点。

要分配语言,您可以创建一个自定义数据类型,仅显示所有 .Net 区域性,例如en-GB、fr-FR 等。将该数据类型作为字段包含在语言主页文档类型中,然后在主页和每个后代的标记中输出该值。

在语言主页文档类型中,您可以添加一个名为“umbracoUrlName”的文本字符串属性。然后,您可以使用此属性来覆盖 Url 名称。例如。因此,您可以调用该页面 www.domain.com/en/而不是 www.domain.com/en/english-home/

对于以后复制网站来说,这是一件困难的事情。如果链接是使用媒体选择器和 uComponent 的多节点树选择器等数据类型创建的,那么您将别无选择,只能从复制的分支继承链接。但是,如果链接是在 Razor 或 XSLT 中动态创建的,那么您应该能够使链接相对于语言主页或当前页面。例如。在 XSLT 中,获取父语言主页的子级将类似于 $currentPage/ancestors-or-self::* [@level = '2']/child::* 。换句话说,您可以通过使用巧妙的相对遍历来避免硬编码链接。

关于umbraco - 多语言、智能链接转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11288603/

相关文章:

sql - SQL Server:通过参数从Umbraco获取排名最高的xx博客记录

asp.net-mvc-3 - Umbraco v5 日期?

c# - 我想将 Umbraco 4.11.6 升级到 4.11.9

umbraco - 错误 Umbraco 成员(member)提供者

c# - 现有 Umbraco 项目的开发

umbraco - 在 Umbraco 中存储实体列表

.net - Umbraco TinyMCE 编辑器 - 默认 anchor 样式

asp.net-mvc - Umbraco如何阻止富文本框在html中自动添加<p>标签

asp.net-mvc - 获取 UmbracoContext.Current 的值为 null

c# - 如何使用 C# 迭代 "Related Links"