Update extractors to preserve indentation

(cherry picked from commit 48d5b3c8d946ca71b6d52ead70f0f706db06957e)
This commit is contained in:
Gustas
2024-12-13 15:18:02 +02:00
committed by Pavel Penev
parent e2821933a4
commit 0566b6f787
2 changed files with 25 additions and 7 deletions

View File

@@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
foreach (var layout in chromeLayouts) foreach (var layout in chromeLayouts)
{ {
var fluentFolder = layout.Key + "|languages"; var fluentFolder = layout.Key + "|fluent";
var fluentPackage = modData.ModFiles.OpenPackage(fluentFolder); var fluentPackage = modData.ModFiles.OpenPackage(fluentFolder);
var fluentPath = Path.Combine(fluentPackage.Name, "chrome.ftl"); var fluentPath = Path.Combine(fluentPackage.Name, "chrome.ftl");
@@ -262,12 +262,23 @@ namespace OpenRA.Mods.Common.UtilityCommands
&& !UpdateUtils.IsAlreadyExtracted(childNode.Value.Value) && !UpdateUtils.IsAlreadyExtracted(childNode.Value.Value)
&& childNode.Value.Value.Any(char.IsLetterOrDigit)) && childNode.Value.Value.Any(char.IsLetterOrDigit))
{ {
var value = childNode.Value.Value var replaced = false;
.Replace("\\n", "\n ") var value = childNode.Value.Value;
if (value.Contains("\\n"))
{
value = value.Replace("\\n", "\n ");
replaced = true;
}
value = value
.Replace("{", "<") .Replace("{", "<")
.Replace("}", ">") .Replace("}", ">")
.Trim().Trim('\n'); .Trim().Trim('\n');
// Preserve indentation
if (replaced)
value = "\n " + value;
validChildTypes.Add((childNode, childType.ToLowerInvariant(), value)); validChildTypes.Add((childNode, childType.ToLowerInvariant(), value));
} }
} }

View File

@@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
var fluentPackage = modData.ModFiles.OpenPackage(modData.Manifest.Id + "|languages"); var fluentPackage = modData.ModFiles.OpenPackage(modData.Manifest.Id + "|fluent");
ExtractFromFile(Path.Combine(fluentPackage.Name, "rules.ftl"), modRules, traitInfos); ExtractFromFile(Path.Combine(fluentPackage.Name, "rules.ftl"), modRules, traitInfos);
modRules.Save(); modRules.Save();
@@ -307,9 +307,16 @@ namespace OpenRA.Mods.Common.UtilityCommands
if (string.IsNullOrEmpty(propertyValue) || UpdateUtils.IsAlreadyExtracted(propertyValue) || !propertyValue.Any(char.IsLetterOrDigit)) if (string.IsNullOrEmpty(propertyValue) || UpdateUtils.IsAlreadyExtracted(propertyValue) || !propertyValue.Any(char.IsLetterOrDigit))
continue; continue;
var value = propertyValue var replaced = false;
.Replace("\\n", "\n ") var value = propertyValue;
.Trim().Trim('\n'); if (value.Contains("\\n"))
{
value = value.Replace("\\n", "\n ");
replaced = true;
}
// Preserve indentation
value = (replaced ? "\n " : "") + value.Trim().Trim('\n');
var actorName = ToLowerActor(actor.Key); var actorName = ToLowerActor(actor.Key);
var key = traitInfo; var key = traitInfo;