使用 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>