2012-01-11 42 views
1

我讀過各種有關設計網站的綜合討論,不僅適用於多語言場景,而且還支持本地化特定社區的語言和語法;例如,技術與一般公共社區。本地化和方言

我發現這些討論很引人注目,但他們沒有解釋如何在C1的上下文中實現這些場景以添加不同的「方言」。

我猜這些方言應該手動添加到以下數據源文件中,並像語言一樣處理:「Composite.Cultures.en-us」。

請說明是否有處理上述情況的最佳做法,以及是否有較少的手動方法來實現它。

回答

1

不同的內涵t在不同的「方言」的相同頁面結構中,那麼是的 - 將它們視爲語言是有道理的。 系統從Windows註冊表中獲取語言列表,因此如果您想添加一種方言作爲語言,可以使用某些代碼(http://msdn.microsoft.com/en-us/library/ms172469.aspx)註冊它。我不會推薦它,因爲相關的ASP.NET進程必須能夠訪問Windows註冊表,並且每次需要將網站移動到新的環境時可能會有一些額外的工作。
您還可以使用您不會用作方言切換器F.e.的現有文化代碼。 en-US/en-GB/en-AU。

另一種選擇是爲每個頁面上的內容分別設置一個佔位符,一個用於技術用戶,另一個用於非技術用戶。根據url/cookie將顯示一個或另一個。在這種方法中,您還必須決定是否要將它們保留在抓取工具的相同網址下或不同網頁中,網頁是否具有相同的評論或單獨的網址等。

如果方言網站不保持相同頁面結構時,您也可以決定將它們作爲不同的頁面樹,並在需要時使用某種元數據字段將相關頁面鏈接到另一頁面。

+0

贊成這個答案,因爲德米特里爲複合A/S – Kevin 2012-01-14 03:15:14

+0

呃,這是沒有道理的......你應該接受這個答案是正確的! – 2012-01-14 12:39:15

+0

我正在尋找Composite A/S的官方指導 - 他們正在監測[Composite C1]標籤。如果他們沒有正確的答案,那麼我們都有麻煩。 – Kevin 2012-01-21 22:08:42

1

林不知道我是否理解這個問題。是否因爲你想要在你的前端網站上有一個特定的字符串根據誰登錄而說不同的事情,而不是用哪種語言顯示網站?

C1中的默認本地化文件位於~/Composite/localization,格式爲Some.Namespace.language.xml。這意味着,如果你的網站是在美國英語,但你想顯示科技股或其他不同版本的某些字符串,你可以創建以下XML的文件

  • My.Component.General.en美.XML
  • My.Component.Technical.en-us.xml

而當你需要得到的字符串顯示,你會如果你想顯示具有以下邏輯

var ns = "My.Component"; 
var mode = is_tech ? "Technical" : "General"; 

return StringResourceSystemFacade.GetString(ns +"."+ mode, "title");