我有一個使用MySQL數據庫作爲後端的ASP.Net網站。該網站是一個英文電子商務系統,我們正在考慮將其翻譯成約五種其他語言(法文,西班牙文等)的可能性。我們會讓翻譯人員執行翻譯 - 我們已經看過自動化服務,但這些都不夠好。ASP.Net/MySQL:將內容翻譯成多種語言
網站上的靜態文本(例如標題,按鈕等)可以通過.Net的內置本地化功能(resx文件等)以多種語言輕鬆提供。
我不太確定如何最好地存儲和檢索數據庫中的多語言內容。例如,有一種產品表,其包括這些字段...
- 的productId(INT)
- 的categoryId(INT)
- 標題(VARCHAR)
- 摘要(VARCHAR)
- 描述(文本)
- 特徵(文本)
標題,概述,描述和功能特t將需要以所有不同的語言提供。
這裏是我想出來的兩個選項...
爲每種語言的所有語言創建其他領域 例如,我們可以有titleEn,titleFr,titleEs等,並重復這適用於所有文本列。然後,我們將根據所選語言調整我們的代碼以使用適當的字段。這感覺有點冒失,也會導致一些非常大的桌子。另外,如果我們希望將來添加更多語言,添加更多列將會非常耗時。
使用查表 我們可以創建一個新的表具有以下格式...
textId | languageId | content
-------------------------------
10 | EN | Car
10 | FR | Voiture
10 | ES | Coche
11 | EN | Bike
11 | FR | Vélo
然後我們會調整我們的產品表格來引用相應的文本ID爲標題,摘要,描述和功能,而不是將文本存儲在產品表中。這似乎更加優雅,但我想不出一種簡單的方法,無需使用複雜的SQL語句即可將數據從數據庫中移出並放到頁面上。當然,與以前的選項相比,將來添加新語言將會非常簡單。
我非常感謝任何有關實現此目標的最佳方法的建議!那裏是否有任何「最佳實踐」指導?有沒有人做過這個?
偉大的想法,我認爲這將工作得很好。非常感謝您的回覆。 – philwilks 2009-09-18 09:05:00