我正在使用资源文件在我的Web应用程序中切换语言,该应用程序是在mvc5中构建的
在索引文件中,它读取我设置的文化值。
我从layout.cshtml调用set culture方法并使用以下代码调用它的值。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
if (!Request["dropdown"].IsEmpty())
{
Culture = UICulture = Request["dropdown"];
}
}
在索引页面中语言正确加载但是当我从那里进入下一页时,它加载默认语言德语,但资源仅从英语资源文件中读取。
请帮我解决这个问题。
答案 0 :(得分:15)
用于全局设置我建议您将以下行添加到global.asax.cs文件中:(在此示例中,文化设置为以色列希伯来语)
protected void Application_Start()
{
//The culture value determines the results of culture-dependent functions, such as the date, number, and currency (NIS symbol)
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("he-il");
//System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new System.Globalization.CultureInfo("he-il");
}
答案 1 :(得分:11)
在web.config
中,我在内部评论了以下内容,对我来说效果很好。
<configuration>
<system.web>
<globalization culture="en-US" uiCulture="en-US" /> <!-- this only -->
</system.web>
</configuration>
答案 2 :(得分:2)
您必须在某处保留有关当前文化的信息(我建议使用Cookie)并将线程文化设置为此Cookie值(如果存在) - 最好是Application_BeginRequest
的{{1}}。
Global.asax