Runtime library for Lizerium.Localization.Toolkit.
This package contains:
LocalizationService for loading .resx files at runtime;.resx read/write helpers used by the toolkit and editor;LocExtension for XAML values;XamlLocalizationService for converting XAML literals to localization keys.<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("en");
var title = LocalizationService.Instance.GetString("MainWindow_Title");
var message = LocalizationService.Instance.Format("MainWindow_Message_Format", "value");
For WPF projects targeting net8.0-windows, add the namespace:
xmlns:loc="clr-namespace:Lizerium.Localization.Core;assembly=Lizerium.Localization.Core"
Then bind literal UI text to RESX keys:
<Button Content="{loc:Loc MainWindow_Button_English}" />
<TextBlock Text="{loc:Loc MainWindow_Title}" />
LocExtension resolves keys through LocalizationService.Instance.GetString.
XamlLocalizationService can update a XAML file and create matching RESX entries:
var xaml = new XamlLocalizationService();
xaml.LocalizeText(
xamlPath: "MainWindow.xaml",
text: "English",
key: "MainWindow_Button_English",
resourcesDirectory: "Resources/Localization");
It replaces localizable attributes such as Content, Text, Header, Title, and ToolTip with {loc:Loc Key} and writes Strings.en.resx and Strings.ru.resx.
The Visual Studio extension project Lizerium.Localization.Xaml.Vsix uses this runtime format to provide a XAML light bulb action.
For strongly typed access, install Lizerium.Localization.Toolkit or combine this package with Lizerium.Localization.Generator.
Project repository: https://github.com/Lizerium/Lizerium.Localization.Toolkit