2014-11-03 43 views
0

設置語言我如何設置使用Sitecore的框架,根據國家和/或鍵盤的默認語言?Sitecore的,基於國家或鍵盤

+0

有外的開箱沒有找到解決方案。你需要編寫一個自定義的LanguageResolver。您可以從http頭獲得瀏覽器語言,但對於當前的國家,您需要像MaxMind這樣的第三方服務。 – 2014-11-03 21:14:42

回答

2

我同意你的觀點,你會期望一個開箱即用的解決方案,但實際上要求往往perculiar到項目中。這就是說,這裏有一些想法

創建自定義語言解析器可能是最好的辦法。

第一次嘗試

我通常試圖通過使用瀏覽器的語言首選項(HttpRequest.UserLanguages),這可能會提供「EN-GB」整個2部分語言開始,有時甚至僅僅是基本的語言「恩」。

  • 如果這給了你全部的語言,那麼你就完成了。只需使用同名的系統語言即可。
  • 如果它只給了你基本的語言,你需要以某種方式得到國家。
  • 如果它沒有給你任何東西。你需要找到國家,並找到該國家的默認語言。

獲取國家

如果使用的MaxMind選項去,你應該使用的版本GEOLITE上本地,因爲你不能依靠DMS地理IP查找及時執行方式。

  • 如果查找成功,並且您已經擁有基本語言,那麼您現在應該有兩種語言與您的系統語言進行比較。
  • 如果查詢成功,但你不具備基本的語言,那麼你就需要獲得一個默認。在過去,我創建了一個包含2個字段的「語言映射」模板。一個'國家代碼'文本字段和一個'語言'下拉鍊接源到系統語言列表。獲取國家代碼後,只需在映射項目中查找它,然後相應地設置上下文語言。

有些事情要考慮

  • 記住,你需要有某種回退的時候查找都沒有奏效。
  • 語言也許存儲爲一個cookie,所以查找時每次都沒有這樣做。