2015-05-03 45 views
0

我已成立了一個多語言網站用一把umbraco 7基於這篇文章:https://our.umbraco.org/Documentation/Using-Umbraco/Multilanguage-Setup/問題與多語言網站使用一把umbraco

我設法得到的總體佈局和第一級工作但我有與問題內部鏈接。

例如:

   <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 /他等/

如果我在英文網站上,我預計點擊文章鏈接會把我帶到myip/en/articles。 它會尋找myip /文章。

我曾嘗試過使用和不使用「/」,並在斜槓前使用和不使用「〜」。 我在做什麼錯?

回答

1

Umbraco不會取代您的代碼中的鏈接,所以您的預期將無法工作。另一件事是「文章」在「他」語言中恰當地不是同一個詞。它也在URL中對SEO不利。

您需要找到「文章」節點,然後使用.Url來獲取此節點的URL。一種方式做這將是:

@CurrentPage.DescendantsOrSelf("Article").First().Url 

(假設你的模板被稱爲第二條,你的是root節點上)

如果你真的想「:郎/條」,在您的網址無論什麼您可以創建一個名爲「SiteLang」的新字典項目,然後在之間寫入「en」,然後在語言中寫入「he」。

然後,您可以創建這樣一個鏈接:

<li><a href="@umbraco.library.GetDictionaryItem("SiteLang")/articles">@umbraco.library.GetDictionaryItem("Articles")</a></li> 
+0

我很困惑。在示例中,它顯示了每個語言節點下的樹結構。它是如何工作的?這在「Rik Helsen」的帖子中顯示:https://our.umbraco.org/forum/using/ui-questions/2814-MultiLanguage-same-Domain-?p = 3 – theblitz

+0

一個側面的問題:是否有任何方式從href裏面的cookie插入值?我有一個cookie中的語言名稱,以便更容易。 – theblitz

+0

是的,您的網站應該是論壇中描述的樹形結構。您網頁上的鏈接應通過每個節點上的.Url屬性從此網站結構中獲得。關於cookie的事情..聽起來像你在錯誤的道路上,但這應該工作:@ Request.Cookies [「cookiekey」] –