Zemin Zemin
bos
         Makalelerde Haberlerde Gruplarda
Arama Göstergesi
Site içi arama Site içi arama
Anasayfam Yap Favorilerime Ekle Bize Ulaşın IE7 Provider
BETA 2.1
IE6.0+, FireFox 2.0'ı destekler
 
   
bos bos bos
bos
Kapat
Bu kadar koda gerek yokki ilhan doğan [17.04.2007 19:12:39]
Direkt kod mantığıyla kaynakları istediğimiz dile ayarlayabiliyoruz.Ornek yada İşte bu kadar.

Tüm Yorumları Oku

Başlık
Yorum
« Geri Yorumlar Makaleyi Sakla Arkadaşıma Gönder Yazdır

Yazar : Tuğrul UĞURLU
Okunma Sayısı : 13104
Tarih : 17.02.2007 20:26:53
Kategori : ASP.NET
Konu : Resources ve Localization
Açıklama : CLR , herhangi bir uygulama ile kaynakları paketlemek ve yayınlamak için bir mekanizmayı destekler. Kaynakları yönetmek ve erişmek için sunduğu sınıflar System.Resources ve System.Globalization ‘dur.

RESOURCES VE LOCALIZATION

CLR , herhangi bir uygulama ile kaynakları paketlemek ve yayınlamak için bir mekanizmayı destekler. Kaynakları yönetmek ve erişmek için sunduğu sınıflar System.Resources ve System.Globalization ‘dur.

.NET Uygulamalarında Resources :

Uygulamalar, menü ikonları, menü başlıkları, vs çok sayıda image ve string kullanır. Bu string ve image ‘leri doğrudan kaynak koda dahil etmek pek iyi bir fikir değil. Değişiklik yapmak için kodu tarayıp adını değiştirmek zorunda kalmadan hepsini dosyalara koymak ve tek bir yerden değiştirmek daha esnektir.

  • .NET Framework ve CLR buna destek veriyor : Her string, image ve diğer tip datayı buraya koyabiliriz. Uygulama binary ‘lerin içine derlenir ve başka deployement adımlara gerek kalmaz.
  • Resources tanımlamaları .resx dosyalarında tanımlanır ve XML dosyalardır. String değerler ya da harici dosyalar için referanse içerirler. Bu string ve referanse edilmiş dosyalar, uygulama assembly ‘lerine embedded olarak derlenir.
  • Resources ‘in kullanılabileceği birincil konu “localization”. Resources ‘i kullanarak, control property ‘leri için (mesela Label ‘in text ‘i) farklı kaynak dosyaları kullanabiliriz. Bunu uygulamanın destekleyeceği her culture için bir resource sayfası ile gerçekleştirebiliriz.

Her Resources dosyası key / value çiftleri içerir. Bu çiftler localized property ‘lerin ilgili culture ‘lerine çevrilirken kullanılır. Çalışma Zamanında, CLR İlişkili .resx dosyalarından uygun olanını yükler ve kontrol property ‘lerine set eder.

Web Uygulaması Localization :

Uygulamanın destekleyeceği her culture için kaynaklar yaratılır. Culture – Spesific Information belirtilmediği sürece default – culture ‘den okur.

CLR culture – spesific resources bulmak için davranış tanımlar. Buna göre, her kaynak set ‘i resorces file ‘ın adının ilk parçası doğrultusunda bir base name tanımlamak zorundadır. İsmin 2. parçası ise culture ‘ı tanımlar. Eğer belirtilmezse default culture kullanılır.

Örnek Uygulama : (Web Sayfalarında Localization Kullanımı)

Control Name Control ID Control Text
Label lblAnasayfa Anasayfa
DropDownList ddlLanguage
Text Value
Türkçe Tr-tr
English En-us

DropDownList ‘in AutoPostBack özelliğini true yapın.
Yukarıdaki tabloda bulunan bilgilere göre Web Form oluşturunuz ve gerekli bilgileri ekleyiniz

Kod kısmında InitializeCulture() override edelim.

protected override void InitializeCulture()
{
    string lang = Request["ddlLanguage"];
     if (string.IsNullOrEmpty(lang))
       kultur = "auto";
     //Seçtiğimiz Dille İlgili Bilgilerin Yüklenmesi İçin Culture Dili Belirtiyoruz.
    this.Culture = lang;
    //Kullanacağımız Resources Dosyasının Adını Belirtiyoruz. Örn : Anasayfa.aspx.en-us.resx
    this.UICulture = lang;base.InitializeCulture();
}

Localleşirme işlemini yapmak için Tools > Generate Local Resources tıklayın. İşlem tamamlandıktan sonra projemize App_LocalResources eklenmiştir ve WebFormAdı.Uzantısı. resx adında bir dosya vardır. Solution Explorer ‘dan projemizi kontrol ediniz ve dosyayı açınız çıkan sonuç aşağıdaki gibidir ben kendi Web Form ‘mumun adını Anasayfa.aspx verdim.

Şimdi gelelim english ayarlarını ayarlamaya.

App_LocalResources ‘a > Add New Item > Resource File seçiniz.
Adını WebFormAdı.Uzantısı.ddlLanguagedekiEngValuesi.resx (Anasayfa.aspx.en-us.resx) olarak verin. Anasayfa.aspx.resx ‘deki bütün alanları kopyalayıp Anasayfa.aspx.en-us.resx yapıştırın. Value ‘leri aşağıdaki gibi değiştirin.

Örnek uygulamayı indirmek için tıklayın

Tuğrul UĞURLU
 
Şifremi Unuttum
Üye Ol

ASP.NET AJAX
ASP.NET AJAX Kitabı

Röportaj Dr. Arzu Baloğlu ile Türkiye ve Bilişim üzerine keyifli bir röportaj...


isarayan.org
Yenibiriş Logo
 
bos bos bos
bos Hakkımızda