2016-06-07 5 views
0

나는 지금 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)이지만 자원 값을 절대로 변경하지 마십시오.

내가 뭘 잘못하고 있니?

답변

0

LanguageAbbrevation=dkLanguageAbbrevation=da-DK에 변경 시도 또한 이름을 변경하여 HomeText.dk.resx-HomeText.da-DK.resx