diff --git a/zero/Extensions/StringExtensions.cs b/zero/Extensions/StringExtensions.cs index b6afa800..b1b23d29 100644 --- a/zero/Extensions/StringExtensions.cs +++ b/zero/Extensions/StringExtensions.cs @@ -2,6 +2,7 @@ using System.Net; using System.Text; using System.Text.RegularExpressions; +using Microsoft.AspNetCore.Html; namespace zero.Extensions; @@ -271,4 +272,21 @@ public static class StringExtensions yield return text.Substring(i, groupSize); } } + + + public static IHtmlContent ToHtmlEntities(this string text) + { + StringBuilder sb = new(); + + foreach (char ch in text) + { + sb.Append("&#"); + sb.Append((int)ch); + sb.Append(';'); + } + + HtmlContentBuilder builder = new(); + builder.SetHtmlContent(sb.ToString()); + return builder; + } } diff --git a/zero/Localization/LocalizerExtensions.cs b/zero/Localization/LocalizerExtensions.cs index 256cd417..c5e35150 100644 --- a/zero/Localization/LocalizerExtensions.cs +++ b/zero/Localization/LocalizerExtensions.cs @@ -22,4 +22,14 @@ public static class LocalizerExtensions builder.SetHtmlContent(value); return builder; } + + + public static IHtmlContent HtmlEntities(this ILocalizer localizer, string key, Dictionary tokens = null) + { + string value = localizer.Text(key, tokens); + + HtmlContentBuilder builder = new(); + builder.SetHtmlContent(value.ToHtmlEntities()); + return builder; + } } \ No newline at end of file