使用 Umbraco 的多语言网站问题
Problems with multi-language site using Umbraco
我已经根据这篇文章用 Umbraco 7 建立了一个多语言网站:https://our.umbraco.org/Documentation/Using-Umbraco/Multilanguage-Setup/
我已经设法使总体布局和第一层工作正常,但内部 links 有问题。
例如:
<ul>
<li><a href="/">@umbraco.library.GetDictionaryItem("Home")</a></li>
<li><a href="/contact-us">Contact Us</a></li>
<li><a href="/articles">@umbraco.library.GetDictionaryItem("Articles")</a></li>
</ul>
我希望 href 发送到基于当前语言的内容。
我的内容按照文章中的描述拆分。
我有多个逻辑站点:myip/en、myip/he etc/
如果我在英文网站上,我本以为点击文章 link 会转到 myip/en/articles。
相反,它会寻找 myip/articles.
我试过在斜线前有和没有“/”,有和没有“~”。
我做错了什么?
Umbraco 不会替换您代码中的 links,因此您期望的不会起作用。另一件事是 "article" 在 "he" 语言中完全不是同一个词。这对 url.
中的 SEO 也不利
您需要找到 "article" 节点,然后使用 .Url
获取此节点的 url。一种方法是:
@CurrentPage.DescendantsOrSelf("Article").First().Url
(假设您的模板名为 Article 并且您在根节点上)
如果您真的想在 url 中使用“:lang/article”,无论您使用何种语言,您都可以创建一个名为 "SiteLang" 的新词典项,然后写 "en" en 和 "he" he 语言。
然后您可以像这样创建 link:
<li><a href="@umbraco.library.GetDictionaryItem("SiteLang")/articles">@umbraco.library.GetDictionaryItem("Articles")</a></li>
我已经根据这篇文章用 Umbraco 7 建立了一个多语言网站:https://our.umbraco.org/Documentation/Using-Umbraco/Multilanguage-Setup/
我已经设法使总体布局和第一层工作正常,但内部 links 有问题。
例如:
<ul>
<li><a href="/">@umbraco.library.GetDictionaryItem("Home")</a></li>
<li><a href="/contact-us">Contact Us</a></li>
<li><a href="/articles">@umbraco.library.GetDictionaryItem("Articles")</a></li>
</ul>
我希望 href 发送到基于当前语言的内容。
我的内容按照文章中的描述拆分。 我有多个逻辑站点:myip/en、myip/he etc/
如果我在英文网站上,我本以为点击文章 link 会转到 myip/en/articles。 相反,它会寻找 myip/articles.
我试过在斜线前有和没有“/”,有和没有“~”。 我做错了什么?
Umbraco 不会替换您代码中的 links,因此您期望的不会起作用。另一件事是 "article" 在 "he" 语言中完全不是同一个词。这对 url.
中的 SEO 也不利您需要找到 "article" 节点,然后使用 .Url
获取此节点的 url。一种方法是:
@CurrentPage.DescendantsOrSelf("Article").First().Url
(假设您的模板名为 Article 并且您在根节点上)
如果您真的想在 url 中使用“:lang/article”,无论您使用何种语言,您都可以创建一个名为 "SiteLang" 的新词典项,然后写 "en" en 和 "he" he 语言。
然后您可以像这样创建 link:
<li><a href="@umbraco.library.GetDictionaryItem("SiteLang")/articles">@umbraco.library.GetDictionaryItem("Articles")</a></li>