Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Page.UICulture ve Page.Culture

Merhaba arkadaşlar, bu yazıda öncelikle başlıkta belirttiğim iki kavram arasındaki farkı açıklamaya çalışacağım. Page.Culture : kültüre bağlı işlemler için kullanılır. Örneğin tarih,sayılar,parasal formatlar vs. Örneğin Page.Culture’ı Türkçe’ye set ederseniz artık tarih formatı dd/MM/YYYY ve parasal ifadelerin sonuna TL gelir vs.  UICulture ise sayfaya hangi resource dosyası yüklenecek bununla ilgilenir. Örneğin Default.aspx sayfanız için UICulture Türkçe seçilirse Default.aspx.tr-TR.resx resource dosyası sayfaya yüklenecektir.

UICulture ve Culture’ı web.config dosyasından global olarak set edebiliriz.

< globalizationuiculture=”tr”culture=”tr-TR” />

Ya da her sayfada page direktifi ile ayrı ayrı set edilebilir

<% @PageUICulture=”tr”Culture=”tr-TR” %>

Son olarak da bunu kod yazarak set edebiliriz.Ancak burada dikkat etmemiz gereken nokta komutun page life cycle’da uygun yerde çağırılması. Bunun için özelleşen InitializeCulture metodunu override ederek kullanabiliriz. Aşağıdaki örnekte bir dropdownlistte diller listeleniyor ve her değiştiğinde sayfanın da dilinin değişmesini bekliyoruz. Burada dikkat etmemiz gereken diğer bir nokta ise ddlLanguage nesnesine direk SelectedValue diyerek erişemememiz çünkü InitializeCulture metodu page life cycle’da nesneler yaratılmadan önce çağrılıyor ve bizde bu değeri Request.Form collection’ının içinden okuyoruz.

ASPX

CS

protected override void InitializeCulture(){

        if (Request.Form[“ddlLanguage”] != null)
        {
            String selectedLanguage = Request.Form[“ddlLanguage”];
            UICulture = selectedLanguage;
            Culture = selectedLanguage;
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(selectedLanguage);
            Thread.CurrentThread.CurrentUICulture = new
                CultureInfo(selectedLanguage);
        }
        base.InitializeCulture();
    }

ASP.NET page life cycle da InitializeCulture metodunun yeri

1.    Construct

2.    ProcessRequest

3.    FrameworkInitialize

4.    InitializeCulture

5.    If child controls are present

1.    AddParsedSubObject

2.    CreateControlCollection

3.    AddedControl

4.    ResolveAdapter

6.    DeterminePostBackMode

7.    OnPreInit

8.    OnInit

9.    TrackViewState

10.  OnInitComplete

11.  OnPreLoad

12.  OnLoad

13.  OnLoadComplete

14.  EnsureChildControls

1.    CreateChildControls

15.  OnPreRender

16.  OnPreRenderComplete

17.  SaveViewState

18.  OnSaveStateComplete

19.  CreateHtmlTextWriter

20.  RenderControl

21.  Render

1.    RenderChildren

2.    VerifyRenderingInServerForm

22.  OnUnload

23.  Dispose

November 2, 2011 - Posted by | ASP.NET | , , ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s