Automatic Open tests (#1142)

* auto eng obt

* Update CP14RoundEndSystem.CBT.cs

* Update CP14EdSystem.cs

* cbt cbt!

* Update CP14RoundEndSystem.CBT.cs
This commit is contained in:
Ed
2025-04-15 23:09:49 +03:00
committed by GitHub
parent c61a76fa69
commit b40cbfb5d7
10 changed files with 141 additions and 45 deletions

View File

@@ -1,6 +1,8 @@
using System.Globalization;
using System.Linq;
using System.Text.RegularExpressions;
using Content.Shared.CCVar;
using Robust.Shared.Configuration;
using Robust.Shared.Utility;
namespace Content.Shared.Localizations
@@ -8,10 +10,7 @@ namespace Content.Shared.Localizations
public sealed class ContentLocalizationManager
{
[Dependency] private readonly ILocalizationManager _loc = default!;
// If you want to change your codebase's language, do it here.
//public const string Culture = "en-US";
public const string Culture = "ru-RU";
[Dependency] private readonly IConfigurationManager _cfg = default!;
/// <summary>
/// Custom format strings used for parsing and displaying minutes:seconds timespans.
@@ -26,14 +25,9 @@ namespace Content.Shared.Localizations
public void Initialize()
{
var culture = new CultureInfo(Culture);
_loc.LoadCulture(culture);
// Uncomment for Ru localization
var fallbackCulture = new CultureInfo("en-US");
_loc.LoadCulture(fallbackCulture);
_loc.SetFallbackCluture(fallbackCulture);
//
var culture = new CultureInfo(_cfg.GetCVar(CCVars.Language));
_loc.LoadCulture(culture);
_loc.AddFunction(culture, "PRESSURE", FormatPressure);
_loc.AddFunction(culture, "POWERWATTS", FormatPowerWatts);
_loc.AddFunction(culture, "POWERJOULES", FormatPowerJoules);
@@ -44,7 +38,6 @@ namespace Content.Shared.Localizations
_loc.AddFunction(culture, "NATURALPERCENT", FormatNaturalPercent);
_loc.AddFunction(culture, "PLAYTIME", FormatPlaytime);
_loc.AddFunction(culture, "MANY", FormatMany); // TODO: Temporary fix for MANY() fluent errors. Remove after resolve errors.
/*
* The following language functions are specific to the english localization. When working on your own
@@ -53,13 +46,22 @@ namespace Content.Shared.Localizations
*/
var cultureEn = new CultureInfo("en-US");
if (!_loc.HasCulture(cultureEn))
_loc.LoadCulture(cultureEn);
_loc.SetFallbackCluture(cultureEn); // I don't think there's any reason to change the fallback culture.
_loc.AddFunction(cultureEn, "MAKEPLURAL", FormatMakePlural);
_loc.AddFunction(cultureEn, "MANY", FormatMany);
_loc.AddFunction(cultureEn, "NATURALFIXED", FormatNaturalFixed);
_loc.AddFunction(cultureEn, "LOC", FormatLoc);
_loc.AddFunction(cultureEn, "NATURALPERCENT", FormatNaturalPercent);
_loc.AddFunction(cultureEn, "POWERJOULES", FormatPowerJoules);
_loc.AddFunction(cultureEn, "TOSTRING", args => FormatToString(cultureEn, args));
_cfg.OnValueChanged(CCVars.Language, OnCultureUpdate, true);
}
private void OnCultureUpdate(string value)
{
var culture = new CultureInfo(value);
if (!_loc.HasCulture(culture))
_loc.LoadCulture(culture);
_loc.DefaultCulture = culture;
_loc.ReloadLocalizations();
}
private ILocValue FormatMany(LocArgs args)
@@ -80,7 +82,7 @@ namespace Content.Shared.Localizations
{
var number = ((LocValueNumber) args.Args[0]).Value * 100;
var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value);
var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(Culture)).Clone();
var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(_cfg.GetCVar(CCVars.Language))).Clone();
formatter.NumberDecimalDigits = maxDecimals;
return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator)) + "%");
}
@@ -89,7 +91,7 @@ namespace Content.Shared.Localizations
{
var number = ((LocValueNumber) args.Args[0]).Value;
var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value);
var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(Culture)).Clone();
var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(_cfg.GetCVar(CCVars.Language))).Clone();
formatter.NumberDecimalDigits = maxDecimals;
return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator)));
}
@@ -159,7 +161,6 @@ namespace Content.Shared.Localizations
/// </summary>
public static string FormatPlaytime(TimeSpan time)
{
time = TimeSpan.FromMinutes(Math.Ceiling(time.TotalMinutes));
var hours = (int)time.TotalHours;
var minutes = time.Minutes;
return Loc.GetString($"zzzz-fmt-playtime", ("hours", hours), ("minutes", minutes));