Microsoft.Extensions.FileProvider
.AddAvalancheLocalizationToUseFileProvider() adapts IFileProvider service to ILocalizationFileSystem for access to localization resources.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationToUseFileProvider()
.AddSingleton(typeof(IFileProvider), new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory))
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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."
.AddAvalancheLocalizationFileProvider(fileprovider) adds specific file provider as ILocalizationFileSystem for access to localization resources.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileProvider(new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory))
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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."
.AddAvalancheLocalizationFileSystemApplicationRoot() adds application root as source of localization resources without file provider.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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 Microsoft.Extensions.FileProviders;
using static System.Console;
class microsoft_extensions_fileprovider
{
public static void Run()
{
{
// <01>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationToUseFileProvider()
.AddSingleton(typeof(IFileProvider), new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory))
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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>
}
{
// <02>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileProvider(new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory))
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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."
// </02>
}
{
// <03>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// 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."
// </03>
}
}
}