나는 지금 stackoverflow를 통해보고 몇 시간을 보내고 내 proble을 고치는 대답을 찾을 수 없다.언어 변경 "트리거"리소스 파일
웹 사이트에 대한 다중 언어 지원을 추가하려고하는데 이는 내가 가진 코드입니다. HomeText.dk.resx
뿐만 덴마크어의 값 필드 년 OFC
Name - Value
Home Home
All_brands AllBrands
같은 :
<a class="heading-line" href="/">@ISmile.Resources.HomeText.Home</a>
<a class="heading-line" href="/shop">@ISmile.Resources.HomeText.All_brands</a>
내 리소스 파일이 HomeText.resx
및
HomeText.dk.resx
명명 된 지금까지 그들은이 포함되어 있습니다.
내 드롭 다운을 클릭하고 언어를 선택하면 내 컨트롤러에서 작업이 트리거됩니다.
<ul class="dropdown-menu dropdown-menu-left select_Language" role="menu">
<li>
<a href="/Language/Change/?LanguageAbbrevation=en&[email protected]"><span class="flag-icon flag-icon-gb"></span> ENG</a>
</li>
<li class="li-last">
<a href="/Language/Change/?LanguageAbbrevation=dk&[email protected]"><span class="flag-icon flag-icon-dk"></span> DK</a>
</li>
</ul>
public ActionResult Change(string LanguageAbbrevation, string returnurl)
{
if (!string.IsNullOrEmpty(LanguageAbbrevation))
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation);
}
HttpCookie cookie = new HttpCookie("Language");
cookie.Value = LanguageAbbrevation;
Response.Cookies.Add(cookie);
return Redirect(returnurl);
}
그리고 마지막으로 내 Application_BeginRequest
에서 Global.asax.cs
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"];
if (cookie != null && cookie.Value != null)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value);
}
else
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
}
}
내가 디버깅 및 언어를 변경, 그것은에 쿠키를 설정 언어 컨트롤러 올바른 값 (dk 또는 en)이지만 자원 값을 절대로 변경하지 마십시오.
내가 뭘 잘못하고 있니?