Asp.Net Mvc çoklu dil desteği

2

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.

EceKoc EceKoc (834)
6 yıl önce sordu

Toplam 1 Cevap


1

[Display(ResourceType = typeof(UzmanimNet.Resources.Home.DuzYazilar), Name="Ad")]
[Required(ErrorMessageResourceName = "AdBosHatasi", ErrorMessageResourceType = typeof(UzmanimNet.Resources.Hatalar.Hatalar) )]
public string Ad { get; set; }

"ErrorMessageResourceName" alanına yazdırmak istediğiniz yazıya verdiğiniz ismi (sorudan yola çıktığımızda bu Hatalar.resx dosyasındaki "AdBosHatasi" isimli yazı olacaktır.),
"ErrorMessageResourceType" alanına da yazının bulunduğu dosyanın adını yazıyoruz (sorudan yola çıktığımızda bu "Hatalar" klasörünün altındaki "Hatalar.resx" dosyasının adı olacaktır.).

EceKoc EceKoc (834)
6 yıl önce cevaplandı

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol