2012-02-08 4 views
2

私は多言語アプリケーションを開発しています。今は2つの言語があります。トルコ語と英語。グローバルなリソースはすべて大丈夫です。しかし、ローカルリソースはうまく動作していません。私のコードを見せることができます。私のコードglobal.asaxとlogin.aspx。グローバルとローカルのresxファイル。私のlogin.aspxの中Local.resourcesをGlobal.asaxで使用する方法?

enter image description here

protected void btnEng_Click(object sender, ImageClickEventArgs e) 
    { 


     HttpCookie cookie = Request.Cookies["language"]; 

     if (cookie == null) cookie = new HttpCookie("language"); 

     cookie.Value = "en-US"; 

     Response.SetCookie(cookie); 

     Response.Redirect("Login.aspx"); 
    } 

    protected void btnTurk_Click(object sender, ImageClickEventArgs e) 
    { 

     HttpCookie cookie = Request.Cookies["language"]; 

     if (cookie == null) cookie = new HttpCookie("language"); 

     cookie.Value = "tr-TR"; 

     Response.SetCookie(cookie); 

     Response.Redirect("Login.aspx"); 
    } 

Global.asaxのは:

 protected void Application_BeginRequest(object sender, EventArgs e) 
    { 

     // Dil ayarları cookie'den okunuyor. 

     string lang = "tr-TR"; // Dil varsayılan olarak Türkçe 

     System.Web.HttpCookie cookie = new System.Web.HttpCookie("language"); 

     cookie = Request.Cookies["language"]; 

     if (cookie != null && cookie.Value != null) 

      lang = cookie.Value; 

     Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang); 

     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang); 


    } 

Everyhingはokです。

<ext:TextField 
       ID="txtUsername" 
       runat="server" 
       FieldLabel="<%$ Resources: ResourceMetrics , kullanici %>" 
       AllowBlank="false" 
       BlankText="Your username is required." 
       Text="Demo" 
       AnchorHorizontal="100%" 
       /> 

しかし、私は、ローカルリソースを使用する場合、

<ext:Label ID="Label1" runat="server" meta:resourcekey="LabelResource1" Text="vxvccccccccccccccccccccccccccccc"> 

が機能していない:私はグローバルRESXを使用している場合!ローカルリソースresxを使用するには?

答えて

0

私もプロジェクトでグローバルリソースを使用しました。それは働く、私は地元のものを使用しません。私はあなたが文化を初期化するときに問題を発見した。 initializeCultureメソッドをオーバーライドしてベースページで行うべきだと思います。アプリケーションで。サイトを使用するユーザーのすべての文化を変更します。

protected override void InitializeCulture() 
{ 
    System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US"); 
    Thread.CurrentThread.CurrentUICulture = culture; 
    base.InitializeCulture(); 
} 
関連する問題