方案
我们有一个SAAS产品,其管理员后端带有公共前端。我们希望为用户提供更改其前端显示的语言的选项。将有7种以上不同语言的选项。我们的产品基于C#和MVC3。前端只包含大约400个单词。处理这个问题的最佳方法是什么?我可以在resx文件中存储不同的语言,并在数据库中有一个标志来说明管理员选择了哪种语言?
因此,管理员从下拉列表中选择他的语言,然后他所有面向公众的人都将转换为该语言。
我之前从未做过这样的事情,因此对于潜在陷阱的任何建议都会受到高度赞赏。
由于
答案 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加载正确的资源文件。