EF代码优先的ASP.NET MVC 5多语言应用程序

时间:2018-10-31 07:15:24

标签: c# asp.net model-view-controller

我已经开发了一个ASP.NET MVC5 Web应用程序。该应用程序是一个企业黄页,允许访问者搜索其位置附近的企业,并允许注册客户在平台上列出其企业。 该应用程序具有几个模型,例如类别,位置,列表,用户等,并且完全以英语构建。现在,我需要使它成为一个多语言应用程序,将法语作为第二语言,并将英语作为默认语言。 这是我的问题:如何使该应用程序成为多语言?我已经在互联网上搜索了几天,但仍然找不到解决该问题的方法。 我遇到的大多数解决方案都处理资源文件,我认为使用静态内容更容易实现。但就我而言,我正在处理来自SQL Server数据库表的动态内容,并且该内容最初是用英语创建的。 有人可以为我指出解决问题的正确方向吗?我真的很感谢有任何答案能使我找到解决问题的方法。

2 个答案:

答案 0 :(得分:0)

您可以在SQL中放置一个语言表,并在其中识别语言,例如

ID -- LangID --WordID-- Words 
PK的

ID和语言的LangID(可以像这样1表示英语,2表示法语等) WordID来自Lang ID。您将其像第一种语言的第一个单词,第二个单词一样作为langs节点放置,我建议您以与第二种语言相同的顺序进行翻译

English 1 Hello  French 1 Bonjour.

因此您将单词id附加到文本属性中,并且在where语句上只需更改LanguageID即可获得另一种语言。祝你好运

答案 1 :(得分:0)

这主要是一个设计问题,与Asp.Net无关。

我将创建一个Language类,您可以在其中放置所有语言,甚至可以使用IsDefault字段来告诉您lanaguage是否为默认语言。

然后,对于要翻译其内容的每个类,您都有一个可以在其中放置翻译文本的类。

设计看起来像这样:(每个以I18N结尾的类都是放置翻译文本的类)

enter image description here

希望这会有所帮助。