2016-10-10 62 views
0

我竭力要實現一把umbraco CMS 7.5版本的多語言功能,目前我看到2個可能的解決方案:用Umbraco實現多語言功能的幾個問題?

1只使用一個根路徑

我認爲最佳的解決方案作爲補充這個解決方案是「Vorto」,我所要做的就是創建新的數據類型,它擴展了vorto數據類型,我可以直接在文檔類型上開始編輯文本。

2-使用多根路徑

的想法是複製每種語言的主要根路徑。

- >我遵循網上的很多教程,但它們都與先前版本的Umbraco相關,我發現的解決方案似乎與當前版本不兼容... 一旦我複製根路徑,語言到根文件夾,下一步是什麼?

我有幾個問題:

  1. 你有超過2之上更好的解決辦法?
  2. Umbraco如何知道客戶端語言? HTTP請求中的標頭「Accept-language」是否需要第一種語言?
  3. 我怎麼能擴展默認路由添加的語言爲第一部分,例如:http://domainName.ext/language/ ....

感謝您的前進!

回答

3

這兩種情況都有其優點和缺點,並且都廣泛用於Umbraco社區/解決方案。我更喜歡第二種解決方案,尤其是在大型網站上,它使您能夠限制不同語言編輯器的訪問權限,而不是每個網站都要求使用1-1內容結構。

有一個Umbraco電視插曲涵蓋這個主題:https://umbraco.tv/videos/umbraco-v7/implementor/multi-lingual/creating-a-multi-lingual-site/introduction/

總結:

  • 你需要你的根語言節點的創建副本
  • 然後設置文化吧
  • 使用字典項,以便對每一種語言翻譯靜態內容
  • 創建簡單語言選擇器選擇相關網站或只是重定向到選定的語言根

Regardi你的問題:

Ad.1。我沒有:)

Ad.2。它選擇在節點上設置的文化,所以它可能被迫。除此之外,它使用標準的.NET文化檢測,所以是的 - 它使用「接受語言」標題。

Ad.3。有一個關鍵的「umbracoHideTopLevelNodeFromPath」,它使您能夠在URL路徑中包含頂級根。閱讀更多:https://our.umbraco.org/documentation/reference/config/webconfig/

而且,如果您更喜歡使用選項1,還有一篇關於此示例代碼的精彩文章:http://24days.in/umbraco/2015/multilingual-vorto-nested-content/。我現在也會玩它! :)

+1

對於「簡單的語言選擇器」,我選擇了包「語言工具」,非常有用。 – Aliz

1

那麼,對於選項2,工作最簡單的方法是使一個樹形結構是這樣的:

  • LanguageA
  • LanguageB

如果您需要domain.ext/language/URL,在根節點上設置domain.ext並在每個語言節點上設置語言。您還可以在每個語言節點上同時設置域和語言,以獲取(例如)domainname.com和domainname.net。

這種做法最近不應該改變。

0

關於你的第一點,有另一種方式來臨,但不是一段時間。 Umbraco 8(2017年第一季度到期)將支持頁面變體的概念,這意味着您可以擁有一棵樹,然後針對每種不同的語言使用變體,從而無需像Vorto這樣的內容。

雖然現在還處於早期階段,所以我們必須等待並觀察功能的運行情況。