26 Kas 2006 ASP.NET 2.0 ile Localization (Yerelleştirme) Kategori: ASP.NET Etiketler: ASP.NETASP.NET 2.0 2 Yorum Merhaba arkadaşlar bu makalemizde ASP.NET içerisinde Localization (Yerelleştirme) işleminin nasıl yapıldığına göz atacağız. Localization Farklı kültür özelliklerine göre tasarlanmış web siteleri oluşturmamıza sağlayan Framework’un bir özelliğidir.Visual Studio da Localization Visual Studio 2005 herhangi bir Kaynak dosyası (Resource file *.resx) içinde herhangi bir kaynagı eklememize ve düzenlememize izin veren yeni bir kaynak editörü sundu. Web formumuz dizayn zamanındayken(Design time) basit adımlarla yeni kaynak dosyaları olusturmamızı saglıyor. Bu kaynak dosyaları, içerisinde ekleyecegimiz özelliklerin kullanıcı kültür özelliklerine göre sayfaya uygulanmasını saglar. Kaynak editörü bir grid gibidir. Name, value ve comment olmak üzere 3 sütundan olusur. Name belirleyecegimiz kaynagın adını, value kaynakta görüntüleyecegimiz degeri ve comment'de açıklama satırıdır. Visual studio 2005 WebForm'larını Localize etmek için 2 yol sunar. Birincisi Lokal kaynaklar (Local Resources), ikinciside Global kaynaklar(Global Resources). Lokal kaynak dosyalarında, kaynak dosyalar asp.net sayfaları içerisine eklenir. Global kaynaklarda ise ortak ayarların tutuldugu tek bir kaynak dosya olusturulur. Kısaca özetlersek; Web Uygulamaları için kaynak dosyaları olusturmamızı, Kaynaklara erismek için Çalısma zamanında yeni tanımlamalar yapmamızı, Kullanıcı istekleri için geçerli kültür özelliklerini otomatik olarak uygulamamızı saglar. (Tarih-saat, para birimi, web formlardaki bilgiler) Özellikle çok uluslu firmalar için düsünürsek, örnegin Microsoft için her dil için ayrı ayrı uygulama gelistirmek hem zaman kaybı hemde gereksiz is yüküdür. Bu durumda local kaynak dosyalarını kullanarak uygulamanın çalısacagı kültür özelliklerine gore tarih-saat, para birimi, kullanıcı formlarındaki bilgilerin vb. gibi bilgilerin otomatik olarak ayarlanmasını saglayabiliriz. Küçük çaplı projeler için düsünürsek projeyi compile etmeden kaynak dosyaları degistirerek site üzerinde güncelleme islemleri yapılabilir. Örnek Uygulama Localization özelliklerini anlatan bir örnek yapalım. Örnegimizde Tarih-saat, para birimi ve kullanıcı ara yüzlerini dil seçeneklerine göre otomatik olarak uygulandıgını görecegiz. Ilk olarak visual studio 2005 içinde Localize Adında bir proje açalım. Açılan web formumuza bir adet label ekleyelim. Text özelligini silelim ve adını lblHosgeldiniz olarak belirleyelim. Daha sonra Solution Explorerdan, Add Asp.NET Folder diyerek projemize Local Kaynak klasörü ekleyelim. Bu klasör üzerinde sag tıklayarak projemize bir adet kaynak dosyası ekleyelim ve adını "default.aspx.resx" olarak belirleyelim. Açılan sayfa da kaynagımızın adı(name) ve içerisinde tutacagımız deger saklanacaktır(Value). Kültür özelliklerimiz Türkçe oldugunu için bu kaynak dosyası içerisine Türkçe bilgiler girecegiz. Evet, simdi Ingilizce için kaynak dosyamızı olusturalım adını "default.aspx.en.resx" yapalım ve özelliklerimizi belirleyelim. Kültür özelliklerimizi belirledik. Simdi web formumuza gidip sayfamızın Kültür ayarlarını yapalım. <Page Language ="VB" AutoEventWireup ="false" CodeFile ="Default.aspx.vb" Inherits ="_Default" Culture="Auto" UICulture="Auto" > <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns ="http://www.w3.org/1999/xhtml" > < head runat ="server"> < title > Untitled Page</ title > </ head > < body > < form id ="form1" runat ="server"> < div > < asp : Label ID ="lblHosgeldiniz" runat ="server" Font-Names ="Verdana" Font-Size ="X-Large" meta:resourceKey="lblHosgeldiniz"></ asp : Label >< br /> < br /> </ div > </ form > </ body > </ html > Ilk olarak kültür özelliklerini Auto özelligi verdik. Label'ın meta:resourcekey özelligini belirttik. Simdi sayfamızı çalıstırabiliriz. Evet sayamızı çalıstırdık ve "Selam Türk" Diye Bizi Karsıladı. Simdi sayfamızın dil ayarını ingilizce yapalım. Sayfamızı Refresh edelim. Karsılama mesajı bu kez "Selam Ingiliz" oldu. Projemizi biraz daha genisletelim. Sayfamıza bir adet DropdownList, bir adet calendar ve bir adet label ekleyelim. Dropdown içerisinde Dil seçenekleri olacak ve seçtigimiz dile göre de Tarih-Saat, Para Birimi, ve Karsılama Mesajı degisecek. Dropdown dilleri ekleyelim. < asp : DropDownList ID ="DropDownList1" runat ="server" AutoPostBack ="True" OnSelectedIndexChanged ="DropDownList1_SelectedIndexChanged" meta : resourcekey ="DropDownList1Resource1"> < asp : ListItem Selected ="True" Value ="Auto" Text ="Lütfen Dil Seçiniz"></ asp : ListItem > < asp : ListItem Value ="Auto" Text ="Türkçe"></ asp : ListItem > < asp : ListItem Value ="en-US" Text ="Ingilizce"></ asp : ListItem > < asp : ListItem Value ="fr-FR" Text ="Fransızca"></ asp : ListItem > < asp : ListItem Value ="ar-EG" Text ="Arapça"></ asp : ListItem > </ asp : DropDownList > < asp : DropDownList ID ="DropDownList1" runat ="server" AutoPostBack ="True" OnSelectedIndexChanged ="DropDownList1_SelectedIndexChanged" meta : resourcekey ="DropDownList1Resource1"> < asp : ListItem Selected ="True" Value ="Auto" Text ="Lütfen Dil Seçiniz"></ asp : ListItem > < asp : ListItem Value ="Auto" Text ="Türkçe"></ asp : ListItem > < asp : ListItem Value ="en-US" Text ="Ingilizce"></ asp : ListItem > < asp : ListItem Value ="fr-FR" Text ="Fransızca"></ asp : ListItem > < asp : ListItem Value ="ar-EG" Text ="Arapça"></ asp : ListItem > </ asp : DropDownList > Ekledigimiz label içerisinde de para degerini tutacak kodumuzu yazalım. Burada da kültür özelliklerine göre para formatı ve para birimi gelecek. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim parabirimi As Double = 575757.57 Label1.Text = String.Format("{0:c}", parabirimi) End Sub Dropdownd da listeledigimiz dillerden seçtigimiz dile göre istedigimiz ayarları vermesini isteyelim. Bunun için InitializeCulture() metodunu ezelim. Protected Overrides Sub InitializeCulture() Dim dil As String = Request("DropDownList1")' dropdowndan gelen deger If String.IsNullOrEmpty(dil) Then dil = "Auto" ' eger dil bossa otamatik olarak belirle UICulture = dil Culture = dil End Sub Simdi Dropdownumuzda Dil Seçimi yapıldıgında çalısacak kodu yazalım. Burada Seçilen Dile Göre InitializeCulture() metodu çalısacak ve seçilen dile göre Kültür özelliklerini uygulacak. Projemizi çalıstıralım. Simdi dillerden ingilizce Seçelim. Listeden bu kezde Arapçayı seçelim. Evet, Arapça seçenegini seçtik ve sayfamızın Arapça kültür ayarlarına geldigini gördük. Bu sekilde tüm kullanıcı ekranlarımızı kaynak dosyalarımız içerisinden belirleyebilir çok kolay bir sekilde projemize birçok dil seçenegi ile çalısma imkânı saglayabiliriz. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTSKaynaklarhttp://msdn.com http://www.codeproject.com http://aspalliance.com Yorum (2) umut / 18.11.2009 11:51:19 teşekkurler güzel bi yazı olmus.. Başarılar. murat / 1.7.2012 06:22:33 bu çoklu dil asp.net 4.0 nasıl yapılıyor yardımcı olurmusunuz Yorum Yaz * Ad Soyad: * Email: * Message:
Yorum (2) umut / 18.11.2009 11:51:19 teşekkurler güzel bi yazı olmus.. Başarılar. murat / 1.7.2012 06:22:33 bu çoklu dil asp.net 4.0 nasıl yapılıyor yardımcı olurmusunuz