Как использовать Local_resources с помощью Global.asax? - PullRequest
2 голосов
/ 08 февраля 2012

Я занимаюсь разработкой многоязычного приложения. сейчас есть 2 языка. Турецкий и английский. Все хорошо в глобальных ресурсах. Но местные ресурсы не работают хорошо. Позволяет показать вам мои коды. Мои коды global.asax и login.aspx. Также файл resx как глобальный, так и локальный.

enter image description here

в моем логине.aspx:

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


    }

Все в порядке. если я использую глобальный resx:

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

1 Ответ

0 голосов
/ 16 марта 2012

Я также использовал глобальный ресурс в своем проекте. это работает, я никогда не пользуюсь местными. но я обнаружил проблему при инициализации культуры. Я думаю, вы должны сделать это на базовой странице с переопределением метода initializeCulture. в приложении. это изменит всю культуру пользователей, которые используют сайт.

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