diff --git a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs
index 2979bee..6dc2fe0 100644
--- a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs
+++ b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs
@@ -25,6 +25,24 @@ public IActionResult Index(TestEmailNewsletterViewModel viewModel)
return View();
}
+ [HttpGet]
+ public IActionResult Localization()
+ {
+ return View();
+ }
+
+ [ValidateRecaptcha]
+ [HttpPost]
+ public IActionResult Localization(TestEmailNewsletterViewModel viewModel)
+ {
+ if (ModelState.IsValid)
+ {
+ return RedirectToAction(nameof(ThankYou), new { name = viewModel.Name });
+ }
+
+ return View();
+ }
+
[HttpGet]
public IActionResult DarkTheme()
{
diff --git a/sample/TestWebApp/Views/Shared/_Layout.cshtml b/sample/TestWebApp/Views/Shared/_Layout.cshtml
index 759623c..5bc9aa9 100644
--- a/sample/TestWebApp/Views/Shared/_Layout.cshtml
+++ b/sample/TestWebApp/Views/Shared/_Layout.cshtml
@@ -26,7 +26,8 @@
Dark theme
Compact size
Audio type
- Jqyery validation disabled
+ Message localization
+ Jquery validation disabled
diff --git a/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml
new file mode 100644
index 0000000..accbbfe
--- /dev/null
+++ b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml
@@ -0,0 +1,41 @@
+@{
+ ViewBag.Title = "Signup for our awesome newsletter";
+}
+@model TestEmailNewsletterViewModel
+@using PaulMiami.AspNetCore.Mvc.Recaptcha
+
+
+
+
+@section Scripts {
+
+}
diff --git a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs
index c537b10..098cb25 100644
--- a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs
+++ b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs
@@ -20,6 +20,7 @@ public class RecaptchaScriptTagHelper : TagHelper
private const string JqueryValidationAttributeName = "jquery-validation";
private const string ValidationMessageElementIdAttributeName = "validation-message-element-id";
+ private const string ValidationMessageAttributeName = "validation-message";
public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpContextAccessor contextAccessor)
{
@@ -36,6 +37,9 @@ public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpCon
[HtmlAttributeName(ValidationMessageElementIdAttributeName)]
public string ValidationMessageElementId { get; set; }
+ [HtmlAttributeName(ValidationMessageAttributeName)]
+ public string ValidationMessage { get; set; }
+
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (!_service.Enabled)
@@ -63,7 +67,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output)
var script = new TagBuilder("script");
script.TagRenderMode = TagRenderMode.Normal;
script.InnerHtml.AppendHtml(string.Format(_scriptSnippet,
- RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, _service.ValidationMessage));
+ RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, ValidationMessage ?? _service.ValidationMessage));
output.PostElement.AppendHtml(script);
}