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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user