use Dalamud language for Localizer

fixes https://github.com/Pilzinsel64/PlayerTags/issues/12
This commit is contained in:
2022-09-11 20:57:22 +02:00
parent cd4ccac194
commit d03c91e28c
2 changed files with 24 additions and 1 deletions

View File

@@ -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>(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;

View File

@@ -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)