Мы разработали приложение, которое загружает определенные c .dll файлы, которые затем используются в качестве плагинов. Само приложение имеет несколько .resx-файлов, которые используются для локализации.
Titles.resx
Titles.de-DE.resx
Titles.it-IT.resx
Эти файлы загружаются через Prism и LightInject
_container.RegisterSingletonFluent<TitlesLocalizer>();
public class TitlesLocalizer : LocalizerBase
{
public TitlesLocalizer()
{
ResourceManagerStringLocalizerFactory factory = new ResourceManagerStringLocalizerFactory(new OptionsWrapper<LocalizationOptions>(new LocalizationOptions()), new NullLoggerFactory());
Localizer = factory.Create(typeof(Properties.Titles));
}
}
public class TitlesLocalizer<T> : LocalizerBase<T>
{
public TitlesLocalizer()
{
ResourceManagerStringLocalizerFactory factory = new ResourceManagerStringLocalizerFactory(new OptionsWrapper<LocalizationOptions>(new LocalizationOptions()), new NullLoggerFactory());
Localizer = factory.Create(typeof(T));
}
}
Локализация самого приложения работает как положено , Все плагины поставляются с собственными ресурсами локализации, которые загружаются через общую локализацию c:
_container.RegisterSingletonFluent<TitlesLocalizer<Properties.Titles>>();
Проблема в том, что внутри плагина загружается только нейтральный язык. Я проверил культуру через точку останова, и я все еще хочу использовать ее (например, немецкий). Я не знаю, что мешает правильной локализации, поэтому, возможно, кто-то понял, что я могу сделать неправильно. Заранее благодарю за любую помощь! PS: если вам нужно больше кода, просто скажите мне. Я предоставлю столько, сколько мне разрешено,
EDIT1: После многих испытаний я обнаружил проблему. При создании проекта плагина он создает папки для "de-DE", "it-IT", .... Внутри находятся локализационные библиотеки. Сам плагин будет скопирован в каталог сборки приложений в «App / Plugins / PluginX». Проблема в том, что приложение может загружать файлы локализации только в том случае, если они находятся внутри «App / de-DE /».
Так есть ли способ загрузить эти файлы .dll, даже если они находятся внутри подпапки, такой как «App / Plugins / PluginX / de-DE /»?