From d03c91e28cea8e9a002db2352f09d1f758136213 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 11 Sep 2022 20:57:22 +0200 Subject: [PATCH] use Dalamud language for Localizer fixes https://github.com/Pilzinsel64/PlayerTags/issues/12 --- PlayerTags/Localizer.cs | 16 +++++++++++++++- PlayerTags/Plugin.cs | 9 +++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/PlayerTags/Localizer.cs b/PlayerTags/Localizer.cs index afc110c..41a3f72 100644 --- a/PlayerTags/Localizer.cs +++ b/PlayerTags/Localizer.cs @@ -1,11 +1,25 @@ using Dalamud.Logging; +using Dalamud.Plugin; using PlayerTags.Resources; using System; +using System.Globalization; namespace PlayerTags { public static class Localizer { + private static CultureInfo culture = null; + + public static void SetLanguage(string langCode) + { + SetLanguage(new CultureInfo(langCode)); + } + + public static void SetLanguage(CultureInfo cultureInfo) + { + culture = cultureInfo; + } + public static string GetName(TEnum value) { return $"{typeof(TEnum).Name}_{value}"; @@ -37,7 +51,7 @@ namespace PlayerTags public static string GetString(string localizedStringId) { - string? value = Strings.ResourceManager.GetString(localizedStringId, Strings.Culture); + string? value = Strings.ResourceManager.GetString(localizedStringId, culture ?? Strings.Culture); if (value != null) { return value; diff --git a/PlayerTags/Plugin.cs b/PlayerTags/Plugin.cs index fd98d98..4b3384e 100644 --- a/PlayerTags/Plugin.cs +++ b/PlayerTags/Plugin.cs @@ -28,6 +28,9 @@ namespace PlayerTags m_PluginData = new PluginData(m_PluginConfiguration); m_PluginConfigurationUI = new PluginConfigurationUI(m_PluginConfiguration, m_PluginData); + Localizer.SetLanguage(PluginServices.DalamudPluginInterface.UiLanguage); + PluginServices.DalamudPluginInterface.LanguageChanged += DalamudPluginInterface_LanguageChanged; + PluginServices.DalamudPluginInterface.UiBuilder.Draw += UiBuilder_Draw; PluginServices.DalamudPluginInterface.UiBuilder.OpenConfigUi += UiBuilder_OpenConfigUi; PluginServices.CommandManager.AddHandler(c_CommandName, new CommandInfo((string command, string arguments) => @@ -46,11 +49,17 @@ namespace PlayerTags m_NameplatesTagTargetFeature.Dispose(); m_CustomTagsContextMenuFeature.Dispose(); m_LinkSelfInChatFeature.Dispose(); + PluginServices.DalamudPluginInterface.LanguageChanged -= DalamudPluginInterface_LanguageChanged; PluginServices.CommandManager.RemoveHandler(c_CommandName); PluginServices.DalamudPluginInterface.UiBuilder.OpenConfigUi -= UiBuilder_OpenConfigUi; PluginServices.DalamudPluginInterface.UiBuilder.Draw -= UiBuilder_Draw; } + private void DalamudPluginInterface_LanguageChanged(string langCode) + { + Localizer.SetLanguage(langCode); + } + private void UiBuilder_Draw() { if (m_PluginConfiguration.IsVisible)