« Geri
Yorumlar
Makaleyi Sakla
Arkadaşıma Gönder
Yazdır
| Yazar |
: Tuğrul UĞURLU |
| Okunma Sayısı |
: 4632 |
| 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