All-in-one NuGet пакет для .NET/WPF проектов, которые хранят переводы в .resx.
Lizerium.Localization.Core;Generated.Localization.Localization;.resx записей;{loc:Loc Key};<PackageReference Include="Lizerium.Localization.Toolkit" Version="1.0.0" />
Resources/
Localization/
Strings.en.resx
Strings.ru.resx
<ItemGroup>
<AdditionalFiles Include="Resources\Localization\*.resx" />
<Content Include="Resources\Localization\*.resx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
using Lizerium.Localization.Core;
using L = Generated.Localization.Localization;
LocalizationService.Instance.Configure(
Path.Combine(AppContext.BaseDirectory, "Resources", "Localization"));
LocalizationService.Instance.ChangeLanguage("ru");
var title = L.MainWindow.Title();
Analyzer предлагает CodeFix на строках:
var text = "Hello World";
var details = $"Log directory: {AppContext.BaseDirectory} | {5}";
Для NuGet analyzer настройки AI задаются через переменные окружения:
LIZERIUM_OLLAMA_URL
LIZERIUM_OLLAMA_MODEL
LIZERIUM_OLLAMA_GENERATE_ENDPOINT
LIZERIUM_LIBRETRANSLATE_URL
Если Ollama запущен на http://localhost:11434, можно оставить значения по умолчанию.
Для runtime XAML:
xmlns:loc="clr-namespace:Lizerium.Localization.Core;assembly=Lizerium.Localization.Core"
<Button Content="{loc:Loc MainWindow_Button_English}" />
Для лампочки в XAML editor используйте Lizerium.Localization.Xaml.Vsix.
Для подсказок в C# файлах соберите и установите Lizerium.Localization.EditorHints.
src\Lizerium.Localization.EditorHints\bin\Release\net472\Lizerium.Localization.EditorHints.1.0.4.vsix
Расширение показывает значения .resx рядом с вызовами вроде L.MainWindow.Title() и пишет диагностику в %TEMP%/Lizerium.Localization.EditorHints.log.