aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.Extensions/StringExtensions.cs
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2024-10-08 09:34:34 +0000
committerJPVenson <github@jpb.email>2024-10-08 09:34:34 +0000
commitd3a3d9fce3b891eb0be274a0cdc45a989e557652 (patch)
treebd232ef477c259f1fafa204016f6efd4dcb8691f /src/Jellyfin.Extensions/StringExtensions.cs
parentee1bdf4e222125ed7382165fd7e09599ca4bd4aa (diff)
parentaaf20592bb0bbdf4f0f0d99fed091758e68ae850 (diff)
Merge remote-tracking branch 'jellyfinorigin/master' into feature/EFUserData
Diffstat (limited to 'src/Jellyfin.Extensions/StringExtensions.cs')
-rw-r--r--src/Jellyfin.Extensions/StringExtensions.cs19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/Jellyfin.Extensions/StringExtensions.cs b/src/Jellyfin.Extensions/StringExtensions.cs
index 8cfebd594..4b9677d9f 100644
--- a/src/Jellyfin.Extensions/StringExtensions.cs
+++ b/src/Jellyfin.Extensions/StringExtensions.cs
@@ -9,8 +9,21 @@ namespace Jellyfin.Extensions
/// </summary>
public static partial class StringExtensions
{
- private static readonly Lazy<Transliterator> _transliterator = new(() => Transliterator.GetInstance(
- "Any-Latin; Latin-Ascii; Lower; NFD; [:Nonspacing Mark:] Remove; [:Punctuation:] Remove;"));
+ private static readonly Lazy<string> _transliteratorId = new(() =>
+ Environment.GetEnvironmentVariable("JELLYFIN_TRANSLITERATOR_ID")
+ ?? "Any-Latin; Latin-Ascii; Lower; NFD; [:Nonspacing Mark:] Remove; [:Punctuation:] Remove;");
+
+ private static readonly Lazy<Transliterator?> _transliterator = new(() =>
+ {
+ try
+ {
+ return Transliterator.GetInstance(_transliteratorId.Value);
+ }
+ catch (ArgumentException)
+ {
+ return null;
+ }
+ });
// Matches non-conforming unicode chars
// https://mnaoumov.wordpress.com/2014/06/14/stripping-invalid-characters-from-utf-16-strings/
@@ -108,7 +121,7 @@ namespace Jellyfin.Extensions
/// <returns>The transliterated string.</returns>
public static string Transliterated(this string text)
{
- return _transliterator.Value.Transliterate(text);
+ return (_transliterator.Value is null) ? text : _transliterator.Value.Transliterate(text);
}
}
}