Microsoft.Extensions
Avalanche.Localization.Extensions.dll contains extension methods for adding ILocalization to dependency injection.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddAvalancheLocalizationEmbeddedResourceProviderDefault()
.AddAvalancheLocalizationResourceManagerProvider()
.AddSingleton<IProvider<string, string[]>>(new FallbackCultureProvider("en"))
.AddSingleton<ICultureProvider>(CultureProvider.CurrentCulture.Instance)
.AddAvalancheStringLocalizer();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 })); // "You've got 2 apples."
Full Example
Full example
using Avalanche.Localization;
using Avalanche.Utilities.Provider;
using Microsoft.Extensions.DependencyInjection;
using static System.Console;
class microsoft_extensions
{
public static void Run()
{
{
// <01>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddAvalancheLocalizationEmbeddedResourceProviderDefault()
.AddAvalancheLocalizationResourceManagerProvider()
.AddSingleton<IProvider<string, string[]>>(new FallbackCultureProvider("en"))
.AddSingleton<ICultureProvider>(CultureProvider.CurrentCulture.Instance)
.AddAvalancheStringLocalizer();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 })); // "You've got 2 apples."
// </01>
}
}
}
namespace Namespace
{
public class Apples { }
}