17 Eylül 2013 Salı

Asp.Net Mvc çoklu dil desteği

Asp.Net Mvc çoklu dil desteği


Asp.Net Mvc'de Türkçe yayınlanacak bir web sitesi hazırladım. Fakat şimdi İngilizce dil desteği de verilecek. Modellerimin içindeki hata mesajlarını ve View'da görüntülecek adını string olarak kendim yazıyordum. (Türkçe)    
[Display(Name = "Ad")]
[Required(ErrorMessage = "Bu alan gereklidir.")]
public string Ad { get; set; }
gibi. 
Mesela anasayfada hoşgeldiniz yazdırmak için View içerisine    
UzmanimNet.Resources.Shared.Genel.Hosgeldiniz
yazdığımda seçili dil ne ise ona uygun olarak Hoşgeldiniz veya Welcome yazıyor.
Çözüm olarak 
[Display(Name = UzmanimNet.Resources.Home.DuzYazilar.Ad)]
[Required(ErrorMessage = UzmanimNet.Resources.Hatalar.Hatalar.AdBosHatasi)]
public string Ad { get; set; }
şeklinde denediğimde "An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type" hatası veriyor.
Dil İngilizce ise hata mesajını İngilizce olarak nasıl yazdıracağım?
Not: 
Hataları tutmak için Resources klasörünün altında Hatalar isimli bir klasör açtım. Onun içerisinde "Hatalar.resx" ve "Hatalar.en.resx" dosyaları var. 
Alanların isimlerini tutmak için ise Resources klasörünün altında Home isimli bir klasör açtım. Onun içerisinde "DuzYazilar.resx" ve "DuzYazilar.en.resx" dosyaları var.

Hiç yorum yok:

Yorum Gönderme