Home

Awesome

Persian DataAnnotations

Gitter

Persian DataAnnotations as DataAnnotations localizer library, is a localization of System.ComponentModel.DataAnnotations for Persian (Farsi) language. It's useful for Persian ASP.NET Core MVC & ASP.NET MVC based applications. The localization of built-in resource of DataAnnotations is a bit hard to work (specialy in ASP.NET MVC) and this library helps your project for localization error messages just with single call a method. Fork and Translate RESX resources for your language ;-)

🌟 If you ❤️ library, please star it! 🌟

‫اعتبار سنجی کنترل ها در .NET با Data Annotation ها

‫استفاده از DataAnnotation ها و افزودن [Required] یا [DataType(DataType.Password)] یا دیگر Attribute ها، کار اعتبارسنجی سمت کلاینت را بسیار ساده کرده است. برای فارسی سازی مقادیر پیش فرض کافی است این کتابخانه را با استفاده نیوگت / NuGet یا به صورت دستی به پروژه اضافه کنید.

‫ شیوه استفاده در ASP.NET Core MVC

1- ‫ با استفاده از نیوگت / NuGet به سادگی می توانید این کتابخانه را به پروژه خود اضافه کنید

  PM> Install-Package PersianDataAnnotationsCore

2- ‫ فقط همین یک خط را اضافه کنید و کار تمام میشود

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options => options.ModelMetadataDetailsProviders.Add(new PersianDataAnnotationsCore.PersianValidationMetadataProvider()));
}

‫ شیوه استفاده در ASP.NET MVC

1- ‫ با استفاده از نیوگت / NuGet به سادگی می توانید این کتابخانه را به پروژه خود اضافه کنید

  PM> Install-Package PersianDataAnnotations -Version

2- ‫ یعنی فقط همین یک خط را اضافه کنید و کار تمام میشود

protected void Application_Start()
{
    PersianDataAnnotations.PersianDataAnnotations.Register();
}

3- ‫ فارسی سازی خطاهای مربوط به رمز عبور و قسمت ثبت نام

public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
{
    ...
    manager.PasswordValidator = new PasswordValidator 
    /// جایگزین شود با خط زیر
  	manager.PasswordValidator = new PersianPasswordValidator
    ...
}

دمو

برای مشاهده دمو می توانید به فرم عضویت یا ورود کاربران در طراحی وب ایران مراجعه کنید

<img alt="screencapture-webdesigniran" src="https://cloud.githubusercontent.com/assets/6195199/7538227/bfcb8226-f5b3-11e4-9bcc-b13baef6a4b7.png" width="320">

نمونه فارسی سازی خطاهای مربوط به رمز عبور

<img alt="screencapture-webdesigniran" src="https://cloud.githubusercontent.com/assets/6195199/7716477/dd77299a-fea7-11e4-8b85-695e9f919f00.png" width="320">

ترجمه

‫‫هنوز احتمال دارد که خطاهایی فارسی نشده باشند. در نسخه های مربوط به پروژه های ASP.NET MVC یک متد استاتیک ترجمه نظیر به نظیر خطا هم اضافه شده که خطاها را می تواند قبل از نمایش تا حد امکان ترجمه کند.

private void AddErrors(IdentityResult result)
{
  foreach (var error in result.Errors)
	{
	  ModelState.AddModelError("", PersianDataAnnotations.TranslateError.Translate(error));
	}
}

‫ متد بالا در کلاس های پیش فرض AccountController یا مشابه آن وجود دارد فقط به آن ترجمه متن خطا اضافه شده است

‫‫البته مشابه این متد استاتیک برای نسخه های ASP.NET Core MVC هم ارائه شده است

var result = PersianDataAnnotationsCore.PersianValidationMetadataProvider.ToPersian(value)

نکات

پشتیبانی

لطفا اگر ترجمه بهتری برای یک عبارت یافته اید لطفا اگر مشکلی مشاهده کردید لطفا اگر پیشنهادی دارید

<a name="license"></a> License

The project is dedicated to public and is free for all uses, commercial or otherwise. Supported by Web Design Iran

این پروژه تحت حمایت طراحی وب ایران بوده و برای استفاده تجاری یا غیر تجاری، رایگان است