SAAS应用程序的本地化

时间:2011-10-02 22:18:28

标签: c# .net asp.net-mvc-3 localization saas

方案

我们有一个SAAS产品,其管理员后端带有公共前端。我们希望为用户提供更改其前端显示的语言的选项。将有7种以上不同语言的选项。我们的产品基于C#和MVC3。前端只包含大约400个单词。处理这个问题的最佳方法是什么?我可以在resx文件中存储不同的语言,并在数据库中有一个标志来说明管理员选择了哪种语言?

因此,管理员从下拉列表中选择他的语言,然后他所有面向公众的人都将转换为该语言。

我之前从未做过这样的事情,因此对于潜在陷阱的任何建议都会受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:1)

资源文件是解决它的最常用方法。将语言选择存储在数据库中是个好主意。

我会在您的基本控制器中使用OnActionExecuting来设置当前语言(Thread.CurrentUICulture

<强>更新

在每个请求的开头(在基本控制器中)指定正确的区域性

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    var cultureId = ((YourUserObj)Session["CurrentUser"]).PreferedLanguage;
    var userCulture = new CultureInfo(cultureId);
    Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = userCulture;
}

然后让.NET加载正确的资源文件。