From 2355c2af62282ff36e56106495c09ed5cfcc3672 Mon Sep 17 00:00:00 2001 From: Ac_K Date: Wed, 11 Jan 2023 01:29:22 +0100 Subject: ava: Generate Locale menu automatically (#4243) Currently in `MenuMainBarView.axaml` we list all available languages and hardcode the language name with the language key. It's a bit bad beause if we want to add a new language, we have to edit the `csproj` and the `axaml` with the translated language name and the language code. I've put all translations in their respective locale files, add code into `MainMenuBarView` constructor to generate the menu automatically. Now we just have to edit the `csproj` if we want to add a new language. --- Ryujinx.Common/Utilities/EmbeddedResources.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Ryujinx.Common/Utilities') diff --git a/Ryujinx.Common/Utilities/EmbeddedResources.cs b/Ryujinx.Common/Utilities/EmbeddedResources.cs index 286d2c5c..e7c8d7d7 100644 --- a/Ryujinx.Common/Utilities/EmbeddedResources.cs +++ b/Ryujinx.Common/Utilities/EmbeddedResources.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Linq; using System.Reflection; using System.Threading.Tasks; @@ -127,6 +128,13 @@ namespace Ryujinx.Common return stream; } + public static string[] GetAllAvailableResources(string path, string ext = "") + { + return ResolveManifestPath(path).Item1.GetManifestResourceNames() + .Where(r => r.EndsWith(ext)) + .ToArray(); + } + private static (Assembly, string) ResolveManifestPath(string filename) { var segments = filename.Split('/', 2, StringSplitOptions.RemoveEmptyEntries); -- cgit v1.2.3