mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
feat(i18n): able to finetune transliterator (#12378)
This commit is contained in:
parent
c67b78bc68
commit
81aca67745
@ -9,8 +9,21 @@ namespace Jellyfin.Extensions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static partial class StringExtensions
|
public static partial class StringExtensions
|
||||||
{
|
{
|
||||||
private static readonly Lazy<Transliterator> _transliterator = new(() => Transliterator.GetInstance(
|
private static readonly Lazy<string> _transliteratorId = new(() =>
|
||||||
"Any-Latin; Latin-Ascii; Lower; NFD; [:Nonspacing Mark:] Remove; [:Punctuation:] Remove;"));
|
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
|
// Matches non-conforming unicode chars
|
||||||
// https://mnaoumov.wordpress.com/2014/06/14/stripping-invalid-characters-from-utf-16-strings/
|
// 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>
|
/// <returns>The transliterated string.</returns>
|
||||||
public static string Transliterated(this string text)
|
public static string Transliterated(this string text)
|
||||||
{
|
{
|
||||||
return _transliterator.Value.Transliterate(text);
|
return (_transliterator.Value is null) ? text : _transliterator.Value.Transliterate(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user