我有一个需要本地化的网站,我已经成功实现了这一点,通过在Web.Config中将文化设置为auto并使用我的resx文件进行翻译,但是我也希望客户能够手动更改网站的翻译作为备份。
我的文本框中有一个表单,有多种语言选择,根据以下代码将此选项发布到控制器
[AllowAnonymous]
[HttpPost]
public ActionResult SelectLanguage(LoginViewModel model)
{
switch (Request["lang"])
{
case "English":
CultureInfo.CurrentCulture=new CultureInfo("en-GB");
CultureInfo.CurrentUICulture = new CultureInfo("en-GB");
break;
case "French":
CultureInfo.CurrentCulture = new CultureInfo("fr-FR");
CultureInfo.CurrentUICulture = new CultureInfo("fr-FR");
break;
}
var currentCulture = CultureInfo.CurrentCulture;
return RedirectToAction("Index");
}
问题在于,虽然我的currentCulture和CurrentUICulture确实发生了变化,但页面仍未翻译,但是如果我在Web.config中手动更改,我的网站会完美翻译!
这里有什么我想念的吗?
提前致谢=]
更新 涉及使用InitializeCulture的现有答案无效AFAIK,因为WebPages中的事件在MVC中自然不可用