Runtime-библиотека для чтения и записи .resx, переключения языка и WPF XAML локализации через {loc:Loc Key}.
<PackageReference Include="Lizerium.Localization.Core" Version="1.0.0" />
using Lizerium.Localization.Core;
LocalizationService.Instance.Configure(
Path.Combine(AppContext.BaseDirectory, "Resources", "Localization"));
LocalizationService.Instance.ChangeLanguage("ru");
Добавьте namespace:
xmlns:loc="clr-namespace:Lizerium.Localization.Core;assembly=Lizerium.Localization.Core"
Используйте ключи прямо в XAML:
<Button Content="{loc:Loc MainWindow_Button_English}" />
<TextBlock Text="{loc:Loc MainWindow_Title}" />
Сервис можно использовать из инструментов, VSIX или собственных команд:
var xaml = new XamlLocalizationService();
xaml.LocalizeText(
"MainWindow.xaml",
"English",
"MainWindow_Button_English",
"Resources/Localization");
Он заменяет Content="English" на {loc:Loc ...}, добавляет xmlns:loc и пишет ключи в Strings.en.resx / Strings.ru.resx.