2012-02-23 97 views
1

我希望這裏有一些想法,我們已經全球化了我們網站上的所有靜態內容而沒有問題,但現在我們已經到了網站用戶可以輸入的數據庫內容。例如,用戶可以創建一個問題和答案的調查,這一點需要以及下文將要全球化是我曾想過這樣做的方式和問題:全球化數據庫ASP.NET MVC

解決方案 - 針對特定文化不同的表,例如我們有一個帶名稱字段的Survey表格,我們將該名稱字段移動到SurveyCultures表格,該表格允許針對每個我們希望支持的文化的多個名稱字段針對調查添加。這將必須爲SurveyQuestionsSurveyAnswers表完成。 (這是它似乎已經在MVC storefront example所做的那樣)

問題 - 這將創造很多額外的表,一個爲每個表,允許用戶輸入文本是對其他用戶可見。還會創建一個非常複雜的前端,允許用戶輸入問題,然後選擇輸入不同文化的問題。如果他們只翻譯了一項文化調查的一半,也會導致問題。

我的問題是:這是最好的方式,這是人們通常這樣做的方式,如果不是這通常採取什麼建議的做法?

任何反饋或想法將不勝感激,因爲我正在圈圈。

非常感謝

回答

0

我已經處理這個問題經驗不多,但我想接近它的方式是一個「語言」欄添加到現有的表。這可能導致類似於:

Table: Survey 
Columns: Unique identifier, date created, owner, etc. 

Table: SurveyTitle 
Columns: Language, Title, IsReleased (flag indicating whether survey in this language is ready for use), etc. 

Table: SurveyQuestion 
Columns: Language, QuestionNumber, QuestiontText etc. 

Table: Language (this is a lookup table, used for foreign keys on all those Language columns) 
Columns: Language (Id), Description, etc. 

(所有這些等等是填充在任何你需要特定於您的需求) 這種方式你:

  • 調查
  • 列表語言列表,該調查是在(與標誌的開/關,或準備/仍然被寫入)
  • 在每種語言
  • 所支持
+0

所有的語言列表我的東西就非常沿着這些線路,因爲它給了我最大程度的控制的問題清單。非常感謝。 – user351711 2012-04-22 15:25:37

2

堅持與您的原始表。添加大量表格絕對不正確。夢魘保持和一般錯誤。

在相關表格中添加名爲Locale的列(字段)。它將包含例如:en-US,fr-FR,he-IL等。

然後在您的代碼中,查詢此字段並決定如何呈現文本或將其路由到何處。相同的插入/更新。

可以,例如:

  • 查詢是在一個給定的語言的所有問題。
  • 以所有可用語言獲取給定問題。
  • 以相同的表格和列結構保存您想要的每種語言的所有數據。