diff options
| author | Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> | 2024-02-11 02:09:18 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-11 03:09:18 +0100 |
| commit | f06d22d6f01e657ebbc0c8ef082739cd468e47b5 (patch) | |
| tree | c10a566438d3801b33c1d7b4eff73ea62b2f1a63 /src/Ryujinx.UI.LocaleGenerator | |
| parent | 84d6e8d121a1b329d26cc0e462aadd1108d99a04 (diff) | |
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
Diffstat (limited to 'src/Ryujinx.UI.LocaleGenerator')
| -rw-r--r-- | src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs | 33 | ||||
| -rw-r--r-- | src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj | 18 |
2 files changed, 51 insertions, 0 deletions
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<string> 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()); + }); + } + } +} diff --git a/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj b/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj new file mode 100644 index 00000000..05cbc764 --- /dev/null +++ b/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj @@ -0,0 +1,18 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netstandard2.0</TargetFramework> + <Nullable>enable</Nullable> + <LangVersion>latest</LangVersion> + <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.CodeAnalysis.Analyzers"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <PackageReference Include="Microsoft.CodeAnalysis.CSharp" /> + </ItemGroup> + +</Project> |
