From 228b52ca3d6ffa716ccb12ac9a0ff07f7fda8f93 Mon Sep 17 00:00:00 2001 From: Anna Date: Sat, 1 May 2021 22:24:11 -0400 Subject: [PATCH] fix(loc): make localisation actually work --- Peeping Tom/FodyWeavers.xml | 1 + Peeping Tom/Peeping Tom.csproj | 17 ++---------- Peeping Tom/Plugin.cs | 1 - Peeping Tom/Util.cs | 48 +--------------------------------- 4 files changed, 4 insertions(+), 63 deletions(-) diff --git a/Peeping Tom/FodyWeavers.xml b/Peeping Tom/FodyWeavers.xml index 0e5b339..e3168e2 100644 --- a/Peeping Tom/FodyWeavers.xml +++ b/Peeping Tom/FodyWeavers.xml @@ -1,5 +1,6 @@  + diff --git a/Peeping Tom/Peeping Tom.csproj b/Peeping Tom/Peeping Tom.csproj index b6389da..39a7000 100755 --- a/Peeping Tom/Peeping Tom.csproj +++ b/Peeping Tom/Peeping Tom.csproj @@ -46,10 +46,10 @@ - - + + @@ -58,17 +58,4 @@ Language.resx - - - - - - - diff --git a/Peeping Tom/Plugin.cs b/Peeping Tom/Plugin.cs index 19fb919..c15e774 100644 --- a/Peeping Tom/Plugin.cs +++ b/Peeping Tom/Plugin.cs @@ -28,7 +28,6 @@ namespace PeepingTom { this.Watcher = new TargetWatcher(this); this.Ui = new PluginUi(this); - Util.PreLoadResourcesFromMainAssembly("PeepingTom.Resources.Language."); OnLanguageChange(this.Interface.UiLanguage); this.Interface.OnLanguageChanged += OnLanguageChange; diff --git a/Peeping Tom/Util.cs b/Peeping Tom/Util.cs index 833f0e0..b605366 100644 --- a/Peeping Tom/Util.cs +++ b/Peeping Tom/Util.cs @@ -1,50 +1,4 @@ -using System; -using System.Collections; -using System.Globalization; -using System.Reflection; - -namespace PeepingTom { - internal static class Util { - internal static void PreLoadResourcesFromMainAssembly(string resourcesPrefix, string resourcesExtension = ".resources") { - // get loaded resource sets from resource manager - var resourceManager = Resources.Language.ResourceManager; - - if (( - resourceManager.GetType().GetField("_resourceSets", BindingFlags.Instance | BindingFlags.NonPublic) ?? - // ReSharper disable once PossibleNullReferenceException - resourceManager.GetType().GetField("ResourceSets", BindingFlags.Instance | BindingFlags.NonPublic) - ).GetValue(resourceManager) is not IDictionary resourceSetByCulture) { - return; - } - - var resourceAssembly = typeof(PeepingTomPlugin).Assembly; // get assembly with localization resources - foreach (var embeddedResourceName in resourceAssembly.GetManifestResourceNames()) { - if (embeddedResourceName.StartsWith(resourcesPrefix, StringComparison.Ordinal) == false || - embeddedResourceName.EndsWith(resourcesExtension, StringComparison.Ordinal) == false) { - continue; // not localized resource - } - - var locale = embeddedResourceName.Substring(resourcesPrefix.Length, Math.Max(0, embeddedResourceName.Length - resourcesPrefix.Length - resourcesExtension.Length)); - if (string.IsNullOrEmpty(locale)) { - continue; // default locale - } - - var resourceStream = resourceAssembly.GetManifestResourceStream(embeddedResourceName); - if (resourceStream == null) { - continue; // no resource stream - } - - var resourceSet = new System.Resources.ResourceSet(resourceStream); - var culture = CultureInfo.GetCultureInfo(locale); - if (resourceSetByCulture is Hashtable) { - resourceSetByCulture.Add(culture, resourceSet); - } else { - resourceSetByCulture.Add(culture.Name, resourceSet); - } - } - } - } - +namespace PeepingTom { [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1716:Identifiers should not match keywords")] public class Optional where T : class { public bool Present { get; }