From f06d22d6f01e657ebbc0c8ef082739cd468e47b5 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> Date: Sun, 11 Feb 2024 02:09:18 +0000 Subject: Infra: Capitalisation Consistency (#6296) * Rename Ryujinx.UI.Common * Rename Ryujinx.UI.LocaleGenerator * Update in Files AboutWindow * Configuration State * Rename projects * Ryujinx/UI * Fix build * Main remaining inconsistencies * HLE.UI Namespace * HLE.UI Files * Namespace * Ryujinx.UI.Common.Configuration.UI * Ryujinx.UI.Common,Configuration.UI Files * More instances --- src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs (limited to 'src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs') diff --git a/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs b/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs new file mode 100644 index 00000000..bb4918d5 --- /dev/null +++ b/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs @@ -0,0 +1,33 @@ +using Microsoft.CodeAnalysis; +using System.Linq; +using System.Text; + +namespace Ryujinx.UI.LocaleGenerator +{ + [Generator] + public class LocaleGenerator : IIncrementalGenerator + { + public void Initialize(IncrementalGeneratorInitializationContext context) + { + var englishLocaleFile = context.AdditionalTextsProvider.Where(static x => x.Path.EndsWith("en_US.json")); + + IncrementalValuesProvider contents = englishLocaleFile.Select((text, cancellationToken) => text.GetText(cancellationToken)!.ToString()); + + context.RegisterSourceOutput(contents, (spc, content) => + { + var lines = content.Split('\n').Where(x => x.Trim().StartsWith("\"")).Select(x => x.Split(':')[0].Trim().Replace("\"", "")); + StringBuilder enumSourceBuilder = new(); + enumSourceBuilder.AppendLine("namespace Ryujinx.Ava.Common.Locale;"); + enumSourceBuilder.AppendLine("internal enum LocaleKeys"); + enumSourceBuilder.AppendLine("{"); + foreach (var line in lines) + { + enumSourceBuilder.AppendLine($" {line},"); + } + enumSourceBuilder.AppendLine("}"); + + spc.AddSource("LocaleKeys", enumSourceBuilder.ToString()); + }); + } + } +} -- cgit v1.2.3