Mar
15

Resx (Resource) dosyalarının içeriğini düzenlemek veya yenisini oluşturmak – Bölüm 1

Yazıma başlamadan önce ilk bölümde bazı terimleri açıklayacağım ve resx dosyasını oluşturma kısmını anlatacağım. 2. bölümde oluşturduğumuz resx dosyalarını sayfalara entegre etmeyi anlatacağım. 3. bölümde ise kod yardımıyla resx dosyasını düzenlemek ve oluşturulmasını anlatacağım.

Doğal olarak bu yazıyı okuyacak olan bazı arkadaşlarımızın konuyla alakalı bilgileri olmayabilir. Şimdi aşağıda bir durum sunarak, konuyu en başından anlatmaya başlayacağım. 🙂

Şöle bir durum düşünelim :

Asp.Net’ de site yapmanızı isteyen kişi bu sitenin çoklu dil desteği sağlamasını ve sayfalarda sabit yazılan yazıları da kodda değişiklik yapmadan değiştirebilmesini istemektedir. (Sabit derken veritabanından gelmeyen yazılar.)

Çözüm yolunu yazmak istersek :

Asp.Net bu konuda bize acayip kolaylıklar sunmaktadır. Çok kasmamıza gerek bile yoktur çünkü asp.net yazarları bu durumu çok güzel düşünüp, bizim kolayca kullanmamızı sağlayacak özellikler koymuşlardır.

Bazı kavramları açıklamak istersek ;

Resource dosyaları nedir?

Adı üstünde kaynak dosyasıdır.  Yani çoklu dil desteği sunmak istediğimizde oluşturmamız gereken dosyalardır. Bu dosyaların uzantısı “.resx” ‘dir. Bu dosyaları daha değişik bi şekilde anlatmam  gerekirse, bu dosyalar aslında birer xml dosyalarıdır.

Şimdi gelelim bu dosyaları nereye oluşturup nasıl kullanmamız gerektiğine…

Bu dosyaları iki farklı Asp.Net klasörüne koyup o şekilde kullanabiliriz.

Bunlar ;

  • App_GlobalResources
  • App_LocalResources

İlk olarak “App_GlobalResources” klasörünün niçin oluşturup kullanmamızı açıklayalım.

App_GlobalResources :

Bu klasörün adından da anlaşılacağı üzere “global” yani evrenseldir. Bu demek oluyorki bu klasöre koyacağımız dosyalara herhangi bir oluşturacağımız aspx sayfasında kullanabiliriz. Bu klasör bir projede ancak bir tane olabilir ve sadece projenin kök (root) dizinine koyabilirsiniz.

Bu klasörü oluşturmak için ;

global_resx

“Solution Explorer” ‘un üzerine gelelim. Sonra Projemizin üzerine gelip mouse ile sağ tıklayalım yukarıda ekranda göründüğü gibi ilk önce “Add ASP.NET Folder” sekmesinin üzerinden “App_GlobalResources” sekmesine tıklayalım. Böylece “App_GlobalResources” klasörünü oluşturmuş bulunuyoruz.

App_LocalResources:

Bu klasörün adından da anlaşılacağı üzere “local” yani yereldir. Bu demek oluyor ki bu klasöre koyacağımız dosyaları sadece ilgili sayfada yada “Web User Control” (.ascx) dosyalarında kullanabilirsiniz. Bu klasörden birden çok oluşturabilirsiniz. Tabi bundaki kural şudur :

Siz mesela “Admin” adlı klasör eklendiniz ve oraya Default.aspx adlı dosya oluşturdunuz. Şimdi sizin bu sayfaya özel bir resource eklemeniz gerekmektedir (Yani App_LocalResources klasörüne dosya oluşturmak). Burada dikkat edilecek husus “App_LocalResources” adlı Asp.Net klasörünü sayfayı nerede oluşturudunuz ise oraya oluşturmaktır. Yani örneğimizde olduğu gibi “Admin” adlı klasör içine  “App_LocalResources” adlı klasörünü oluşturmanız gerekmektedir. Eğer sayfamız kök (root)’ da ise oraya oluşturmamız gerekecektir.

Yukarıdaki resimde görülen yerde “App_LocalResources” sekmesine tıklarsanız bu klasörüde oluşturursunuz.

App_GlobalResources ve App_LocalResources Klasörlerine Resource adlı dosyalar oluşturulurken dikkat edilmesi gereken hususlar :

App_GlobalResources adlı klasöre resource oluşturmak istersek ;

resource_1

App_GlobalResources klasörün üstüne gelip sağ tıklayalım. sonra yukarıdaki şekildeki gibi “Add New Item…” a tıklayalım.

resource_2

Karşımıza yukarıdaki pencere çıkacaktır. Oradan görüldüğü üzere “Resource File” ‘ ı seçelim. “Name” adlı yere istediğimiz klasör ismini yazabiliriz. Ben “Resources.resx” dosya adını yazdım. Sonişlem olarak da “Add” butonuna tıklayıp dosyamı oluşturuyorum.

resource_3

Yukarıdaki resime baktığımızda “Resources.resx” adlı dosyanın iç tarafını görmekteyiz. “Name” kısmına kod kısmında çağıracağınız değişken görülmektedir. “Value” kısmınada yazacağımız değerler kullanıcıya göstereceğimiz değeri göstermektedir.

Son bilgi daha vermek gerekirse, eğer biz mesela ingilizce resx dosyası oluşturmak istersek, daha önce dosya adını “Resources.resx” vermiştik. Bu sefer ingilizce için “Resources.en.resx” adlı dosya adını vermemiz gerekmektedir. ve ingilizce dosyada değiştireceğimiz tek şey “Value” değerleridir. Yani dosya adı mantığı şöyledir [DosyaAdı].[Dil Türü].resx şeklindedir. İşte bu kadar basittir.

App_LocalResources adlı klasöre resource oluşturmak istersek ;

“App_LocalResources” klasörün üstüne gelip sağ tıklayalım. sonra  daha önce vermiş olduğum yukarıdaki şekildeki gibi “Add New Item…” a tıklayalım. App_GlobalResources yaptığımız gibi resx dosyası oluşturcaz ancak tek fark var. Bu sefer dosya ismini kafamıza göre bişi veremeyeceğiz. Buradaki mantık şöyledir [Sayfa Adı].[Dil Türü].resx örnek verirsem eğer, sayfamızın ismi “Default.aspx” ise resx dosya adı “Default.aspx.resx” olmalıdır ve mesela ingilizce sayfasıda yapsak “Default.aspx.en.resx” dir.

Bir diğer farklılık ise resx dosyasının içerisidir;

resource_4

Globalde yaptığımız dosyadan farklı olarak “Name” alanını şu şekilde yapmamız gerekmektedir. Benim “Default.aspx” sayfamda “Ltext” adı altında Label bileşimim bulunmaktadır ve ben yukarıda diyorumki Ltext Adlı labelimin “Text” (Yazısı) ‘nın değeri “Value” ‘ da yazan değerdir diyorum. bu kısmın daha iyi anlaşılabilmesi için şöle bir örnek vereyim. Gene “Name” kısmına  Ltext.Width yazarsam , Ltext adlı Label bileşimimin Width (Genişliği)  “Value” da yazan değer kadardır mesela Value değerimiz “100%” olsun 🙂

Bu yazımızın sonuna gelmiş bulunuyoruz. Diğer yazımda resx dosyalarını sayfalara entegre etmeyi anlatacağım…

Bölüm 2 ‘ yi okumak için aşağıdaki linke tıklayınız;
Resx (Resource) dosyalarının içeriğini düzenlemek veya yenisini oluşturmak – Bölüm 2

Yorum Yapın

 

Twitter'dan Takip Et! Twitter'dan Takip Et!

Etiketler

Son Yazılar

Son Yorumlar

Bağlantılar

Arşivler