From 199e05fb341a68ea1cf499f9e3c35b6c0cd5e22f Mon Sep 17 00:00:00 2001 From: KrasnoshchekovPavel <119816022+KrasnoshchekovPavel@users.noreply.github.com> Date: Mon, 29 Apr 2024 07:52:35 +0300 Subject: [PATCH] fixed formatting of floating point numbers during localization (#27441) --- Content.Shared/Localizations/ContentLocalizationManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Localizations/ContentLocalizationManager.cs b/Content.Shared/Localizations/ContentLocalizationManager.cs index 3c311f4382..7d40182f6c 100644 --- a/Content.Shared/Localizations/ContentLocalizationManager.cs +++ b/Content.Shared/Localizations/ContentLocalizationManager.cs @@ -69,7 +69,7 @@ namespace Content.Shared.Localizations var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value); var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(Culture)).Clone(); formatter.NumberDecimalDigits = maxDecimals; - return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd('.') + "%"); + return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator)) + "%"); } private ILocValue FormatNaturalFixed(LocArgs args) @@ -78,7 +78,7 @@ namespace Content.Shared.Localizations var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value); var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(Culture)).Clone(); formatter.NumberDecimalDigits = maxDecimals; - return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd('.')); + return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator))); } private static readonly Regex PluralEsRule = new("^.*(s|sh|ch|x|z)$");