我有一个使用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