2015-07-22 12 views
5

I wprowadziły wielu języków Wsparcie w moim ASP.NET C#, a następnie this tutorialu i ustawiony po angielsku do mojego domyślnego języka, jak można zobaczyć tutaj:Przełączanie Język C# .NET nie ma wpływu na miejscu

?lang=en is Default setting

Po przełączeniu na niemieckim nic się nie dzieje: switched to german has no impact

W moim App_GlobalResource Folder muszę plików: de.language.resx i en.language.resx

Plik

Moi mls.cs (w tutorialu o nazwie BasePage.cs) zawiera następujący kod:

public class mls : System.Web.UI.Page 
{ 
    public void setLang() { 
     InitializeCulture(); 
    } 
    protected override void InitializeCulture() 
    { 
     if (!string.IsNullOrEmpty(Request["lang"])) 
     { 
      Session["lang"] = Request["lang"]; 
     } 
     string lang = Convert.ToString(Session["lang"]); 
     string culture = string.Empty; 
     // In case, if you want to set vietnamese as default language, then removing this comment 
     if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture)) 
     { 
      culture = "en-US"; 
     } 
     if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture)) 
     { 
      culture = "en-US"; 
     } 
     if (lang.ToLower().CompareTo("de") == 0) 
     { 
      culture = "de-AT"; 
     } 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture); 

     base.InitializeCulture(); 
    } 
} 

i tu jest moja strona Login.aspx:

public partial class WebForm3 : mls 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!string.IsNullOrEmpty(Convert.ToString(Session["lang"]))) 
     { 
      if (Convert.ToString(Session["lang"]) == "en") 
      { 
       lbl_Debug.Text = "lang=en"; 
       Session["lang"] = null; 
       Session["lang"] = "en"; 
      } 
      else if(Convert.ToString(Session["lang"]) == "de") 
      { 
       lbl_Debug.Text = "lang=de"; 
       Session["lang"] = null; 
       Session["lang"] = "de"; 
      } 
     } 
     else 
     { 
      lbl_Debug.Text = "nothing"; 
     } 

    } 
} 

Oto mój kod aspx :

<asp:Content ID="Content2" ContentPlaceHolderID="ph_RowMain" runat="server"> 
<div class="login-box"> 
    <div class="login-logo"> 
     <a href="Start.aspx"><b> 
      <asp:Literal ID="lt_adminInterfaceHeader" runat="server" Text="<%$Resources:en.language, lt_adminHeader%>"></asp:Literal></b></a> 
    </div> 
    <!-- /.login-logo --> 
    <div class="login-box-body"> 
     <p class="login-box-msg"> 
      <asp:Literal ID="lt_adminInterfaceBox" runat="server" Text="<%$Resources:en.language, lt_adminBox%>"></asp:Literal> 
     </p> 

     <div class="form-group has-feedback"> 
      <asp:TextBox ID="tb_email" runat="server" type="email" class="form-control" placeholder="<%$Resources:en.language,tb_email%>"></asp:TextBox> 
      <span class="glyphicon glyphicon-envelope form-control-feedback"></span> 
     </div> 
     <div class="form-group has-feedback"> 
      <asp:TextBox ID="tb_password" runat="server" type="password" class="form-control" placeholder="<%$Resources:en.language, tb_password%>"></asp:TextBox> 
      <span class="glyphicon glyphicon-lock form-control-feedback"></span> 
     </div> 
     <div class="row"> 
      <div class="col-xs-12"> 
       <asp:Button ID="btn_signIn" runat="server" Text="<%$Resources:en.language, btn_signIn%>" type="submit" class="btn btn-primary btn-block btn-flat" /> 
      </div> 
      <!-- /.col --> 
     </div> 
    </div> 
    <!-- /.login-box-body --> 
</div> 
<!-- /.login-box --> 

nadzieję, że ktoś może pomóc.

+0

można pokazać znaczników aspx? –

+0

@brainlesscoder post zaktualizowany – Hack4Life

+1

Myślę, że nazwa plików jest błędna. masz 'de.lanuage.rex' ale zgodnie z artykułem wymaga to formatu' anyname.language.de.resx' –

Odpowiedz

2

Masz błędne nazwy plików. masz de.lanuage.rex, ale zgodnie z artykułem, który poleciłeś, wymaga to formatu anyname.language.de.resx.

0

Kiedy próbujesz zlokalizować swoją stronę, nazwa plików resourse ma duże znaczenie. imię i nazwisko pliki resourse należy postępować zgodnie z poniższą formatu
FileNameYouWant.language-culture.resx

w przypadku, gdy nie określić język kultura czyli jeśli nazwa pliku jest jak ten FileNameyouWant.resx następnie przez domyślnie będzie to język angielski (language-culture = 'en').

przykład: język niemiecki nazwa pliku resourse = FileNameYouWant.de.resx
język francuski nazwa pliku resourse = FileNameYouWant.fr.resx

Powiązane problemy