如何在不重新配置路由的情况下手动设置ASP MVC中的语言

时间:2016-01-06 03:43:03

标签: c# asp.net-mvc localization

修改

错误在于国家/地区代码。阿尔巴尼亚的国家/地区代码为sq-AL,而不是al-AL。 有关国家/地区代码的完整列表:http://timtrott.co.uk/culture-codes/

我不需要为不同的语言设置不同的路由。 我只需要点击一个按钮即可在两种语言之间切换,阿尔巴尼亚语和英语。

我无法弄清楚:如何改变语言?我并不担心如何检测需要选择哪种语言,而是如何实际更改语言。

我有这两个资源文件: Resources.resx,Resources.al-AL.resx

始终使用Resources.resx中的字符串,如何更改以使用Resources.al-AL.resx中的字符串?

我试过这样的事情:

//I'm just trying stuff I read here in SO, none worked so far.
Resource.Culture = CultureInfo.CreateSpecificCulture("al-AL");
HttpContext.Session["culture"] = "al-AL";
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("al-AL");
return RedirectToAction("Index", "Home");

在我看来,我有这个:

@Resource.Culture
@Html.Label(Resource.CustomerName, new { @class = "control-label"})

当我第一次打开视图时,第一行是空的,在选择其中一个按钮来更改语言后,我验证资源的文化正在被更改,但文本保持不变。

编辑:

我甚至将其添加到web.config <globalization uiCulture="al-AL" culture="al-AL"/>

用于保存资源文件的自定义文件夹

enter image description here

1 个答案:

答案 0 :(得分:0)

我不得不使用文化代码al-AL,而是使用sq-AL。有关文化代码的完整列表:

http://timtrott.co.uk/culture-codes/