2016-06-07 12 views
0

Ich habe ein paar Stunden jetzt verbringen, durch stackoverflow suchen und ich kann keine Antwort finden, die mein Problem beheben.Ändern der Sprache nicht "Trigger" Ressource-Datei

Ich versuche, mehrere Sprachen Unterstützung für die Website hinzufügen, und das ist der Code, den ich habe.

<a class="heading-line" href="/">@ISmile.Resources.HomeText.Home</a> 
<a class="heading-line" href="/shop">@ISmile.Resources.HomeText.All_brands</a> 

Meine Ressourcendateien benannt HomeText.resx und HomeText.dk.resx

Bisher enthalten sie dies:

Name  -  Value 
Home   Home 
All_brands  AllBrands 

Das Gleiche gilt für HomeText.dk.resx aber OFC die Wertfelder in dänisch.

Wenn ich in mein Drop-down-Menü klicke und eine Sprache auswähle, löst dies eine Aktion in meinem Controller aus.

<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> 

Sprachsteuerung

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); 

    } 

Und schließlich mein Application_BeginRequest In 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"); 
      } 
     } 

Wenn ich die Sprache debuggen und ändern, ist es das Cookie gesetzt der richtige Wert (entweder dk oder en), aber es ändert nie den Wert der Ressource.

Was mache ich falsch?

Antwort

0

Versuchen Sie, die LanguageAbbrevation=dk-LanguageAbbrevation=da-DK ändern Und auch benennen Sie Ihre HomeText.dk.resx-HomeText.da-DK.resx