![]() |
|
|
#1 | ||
|
Senior Member
Üyelik tarihi: 29-07-2008
Mesajlar: 1.000
|
ASP.NET'te içsel yapıda (internally) birleşik kod (unicode) kullanılmaktadır. Bunun yanında, Temel Sınıf Kütüphanesi'nin dizilim (string) sınıfı ve bunla ilişkili işlevler de birleşik kodla çalışmaktadır. Böylece ASP.NET sayfalarında dış ortamla etkileşim amacıyla istenilen herhangi bir kodlamayı (encoding) etkinleştirmek için birkaç farklı yolla yapılandırma gerçekleştirilebilir.
Yerelleştirme için kodlama işlemleri, ASP.NET sayfasının kendisi, gönderilecek veri (response data) ve alınacak veri (request data) için ayrı ayrı yapılabilmektedir. Böylece, sayfanın kendisi birleşik kodla yazılıp depolanırken sayfanın HTML çıktısı "ISO-8859-9" gibi bir "ANSI kod" sayfasına dönüştürülebilmektedir. Yerelleştirme Desteği ASP.NET sayfalarında yerel desteklere CultureInfo sınıfı ile erişilir. Buna ek olarak, ASP.NET her bağlantı ve istek için farklı altkültürlere destek verebilmektedir. CurrentCulture: Yerele bağımlı işlevlerine varsayılan değeri için, CurrentUICulture: Yerele özel kaynak verileri incelemek için. Aşağıdaki kod parçası, Web sunucu üzerindeki mevcut değerleri görüntülemek için kullanılabilir (CultureInfo sınıfının tam olarak nitelenmiş olmasına dikkat ediniz.) : <%@Import Namespace="System.Globalization"%> ... <%=CultureInfo.CurrentCulture.NativeName%><BR> <%=CultureInfo.CurrentUICulture.NativeName%> Sayfanın çıktısı aşağıdaki gibi olacaktır: English (United States) English (United States) Tarih/saat veya para birimi gibi yerele bağımlı veri biçimleri için, ASP.NET, NET çalıştırıcısındaki Temel Sınıf Kütüphanesinin desteğini sağlamaktadır. ASP.NET sayfasındaki kod, DateTime.Format'a benzer yerele bağımlı biçimleme yordamları kullanabilir. Aşağıdaki kod, günün tarihini uzun tarih biçiminde görüntüler. Örnek kodun ilk satırı sistem yereline, ikincisi Türkiye ("tr") yereline, üçüncüsü Fransa ("fr") ve sonuncusu ise Alman ("de") yereline göre görüntüleme yapmaktadır. ... <%=DateTime.Now.Format("f", null)%><BR> <%=DateTime.Now.Format("f", new System.Globalization.CultureInfo("tr"))%><BR> <%=DateTime.Now.Format("f", new System.Globalization.CultureInfo("fr"))%><BR> <%=DateTime.Now.Format("f", new System.Globalization.CultureInfo("de"))%><BR> ... Sonuç: Tuesday, January 02, 2001 4:41 PM 02 Ocak 2001 Sali 16:41 mardi 2 janvier 2001 16:41 Dienstag, 2. Januar 2001 16:41 Yapılandırma Ayarlarları ASP.NET sayfası veya arkasında yer alan kodlar yazılırken, her sayfa için ayrı ayrı sayfa yerine uygulamanın tamamına ilişkin (yani sitedeki tüm sayfalar için) genel bir dil desteği ya da yerelleştirme yapılabilmektedir. Ayrıca, herhangi bir dizin için yapılan ayarlama bu dizinin altındaki tüm alt-dizinler için de geçerli olabilmektedir. Dahası, alt-dizinlerin herbiri için ayrı birer yerelleştirme tanımı da yapılabilmektedir. Herbir ASP.NET uygulaması için uygulamanın başlangıç klasörüne bir Config.Web dosyası yerleştirilir. Uygulamanın başlangıç klasörüne (root directory) konulan Config.Web dosyası o uygulamanın tümü yani alt dizinler için de geçerli olur. Ancak, yukarıda da değinildiği gibi alt-dizinlere özgü yapılandırmalar isteniyorsa, herbir alt-dizinde ayrı birer Config.Web dosyası oluşturulmalıdır. Config.Web dosyaları basit birer metin türünde dosya olup yerel destek ayarları bu dosya içindeki küresellik yani globalization kesiminde yapılmaktadır. ... <configuration> <globalization fileencoding="utf-8" requestencoding="utf-8" responseencoding="utf-8" culture="tr" uiculture="tr" /> </configuration> ... Config.Web'te yapılan ayarlar bir klasörde bulunan tüm uygulama sayfaları için geçerli olurken, herhangi bir aspx sayfasının başına yazılacak <%@Page ...%> direktifinde belirtilen değerler yalnızca yazıldığı sayfa için geçerli olur ve böyle bir sayfa için Config.Web'teki tanımlar dikkate alınmaz. Aşağıda, Türkçe olarak kodlanan ve dış ortama veri gönderiminde "UTF-8" kodlaması kullanan bir sayfa örneklenmiştir. <%@Page Culture="tr" UICulture="tr" ResponseEncoding="utf-8"%> ASP.NET sayfalarında, yerel kültür tanımları Thread.CurrentCulture ve Thread.UICulture atamaları aracılığıyla programlama yoluyla değiştirilebilir. |
||
|
|
|