Microsoft.Extensions.DependencyInjection
.AddAvalancheLocalizationService() adds ILocalization service to dependency injection.
// 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."
.AddAvalancheLocalizationInstance(localization) adds an existing ILocalization instance to dependency injection.
// Assign fallback provider
Localization.Default.FallbackCultureProvider = FallbackCultureProvider.En;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationInstance(Localization.Default);
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
.AddAvalancheLocalizationResourceManagerProvider() adds providers that load ResourceManagers from .dll files based on the requested key.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationResourceManagerProvider();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "docs.Resources.Resource1.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 })); // "You've got 2 apple(s)."
// Get localizable file
ILocalizable<ILocalizationFile> localizableFile = localization.LocalizableFileCached["docs.Resources.Resource1.logo"];
// Localize to invariant ""
ILocalizationFile? localizationFile = localizableFile.Localize("")?.Value;
// Read file
byte[] data = localizationFile!.ReadFully();
ResourceManager instance can be added to service collection.
// Get ResourceManager
ResourceManager resourceManager = docs.Resources.Resource1.ResourceManager;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddSingleton(typeof(ResourceManager), resourceManager)
.AddAvalancheLocalizationService();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "docs.Resources.Resource1.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 }));
ResourceManager instance with overriding namespace can be added with ResourceManagerLineProvider and ResourceManagerFileProvider.
// Get ResourceManager
ResourceManager resourceManager = docs.Resources.Resource1.ResourceManager;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddSingleton(typeof(IProvider<(string? culture, string? key), IEnumerable<IEnumerable<KeyValuePair<string, MarkedText>>>>), new ResourceManagerLineProvider(resourceManager, "Namespace"))
.AddSingleton(typeof(IProvider<(string? culture, string? key), IEnumerable<ILocalizationFile>>), new ResourceManagerFileProvider(resourceManager, "Namespace"))
.AddAvalancheLocalizationService();
// 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 }));
.AddAvalancheLocalizationFileSystemApplicationRoot() adds a file system that locates localization resources at application root.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
ILocalizationFileSystem adds service for a file system that locates localization resources.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton(typeof(ILocalizationFileSystem), LocalizationFileSystem.ApplicationRoot)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
.AddAvalancheLocalizationToUseFileProvider() adds adapter that adapts IFileProvider to ILocalizationFileSystem to add 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);
ITemplateFormat can be added to service collection.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(ITemplateFormat), DashTemplateFormat.Instance)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
Explicit lines can be added to service collection.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton(typeof(IEnumerable<KeyValuePair<string, MarkedText>>), new Dictionary<string, MarkedText> { { "TemplateFormat", "BraceNumeric" }, { "Culture", "" }, { "Key", "Namespace.Example" }, { "Text", "Example: {0}." } });
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Example")];
// Print text
WriteLine(localizedText.Print(new object[] { "Hello world" })); // "Example: Hello world."
.AddLine(culture, key, templateFormat, text, pluralRules?, plurals?) adds service descriptor for an explicit line.
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddLine(templateFormat: "BraceNumeric", culture: "", key: "Namespace.Example", text: "Example: {0}.");
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Example")];
// Print text
WriteLine(localizedText.Print(new object[] { "Hello world" })); // "Example: Hello world."
Plural rule provider can be assigned to service collection.
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(IProvider<PluralRuleInfo, IPluralRule[]>), Avalanche.Localization.CLDRs.CLDR41.RulesCached)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
ILocalizationFileFormat can be added to service collection.
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddSingleton(typeof(ILocalizationFileFormat), new LocalizationFileFormat(".html"));
ILocalizationFilePatterns can be added to service collection to describe folders that are to be searched for localization resources.
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddSingleton(typeof(ILocalizationFilePatterns), new LocalizationFilePatterns("Localization/{Key}", "Localization/{Culture}/{Key}"));
LocalizationServiceDescriptors.Instance.LocalizationFilePatterns describe resource folders "Resources/{Key}", "Resources/{Culture}/{Key}". They can be removed if needed.
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(ILocalizationFilePatterns), new LocalizationFilePatterns("Localization/{Key}", "Localization/{Culture}/{Key}"));
// Removes service descriptors for "Resources/{Key}", "Resources/{Culture}/{Key}"
serviceCollection.Remove(LocalizationServiceDescriptors.Instance.LocalizationFilePatterns);
.AddAvalancheLocalizationEmbeddedResourceProviderDefault() adds service descriptor for default embedded resources paths "*/*.Resources.{Key}", "*/*.Resources.{Culture}.{Key}", "*/{Key}", "*/{Key}.{Culture}".
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddAvalancheLocalizationEmbeddedResourceProviderDefault();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Print
ILocalizedText text = localization.LocalizableTextCached["Namespace.Apples"];
string print = text.Print(CultureInfo.GetCultureInfo("sv"), new object[] { 1 });
WriteLine(print);
.AddAvalancheLocalizationEmbeddedResourceProvider(path?) adds service descriptor for embedded resources at specific paths.
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddAvalancheLocalizationEmbeddedResourceProvider("*/*.Resources.{Key}", "*/*.Resources.{Culture}.{Key}", "*/{Key}", "*/{Key}.{Culture}");
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Print
ILocalizedText text = localization.LocalizableTextCached["Namespace.Apples"];
string print = text.Print(CultureInfo.GetCultureInfo("sv"), new object[] { 1 });
WriteLine(print);
Full Example
Full example
using System.Globalization;
using System.Net;
using System.Resources;
using Avalanche.Localization;
using Avalanche.Localization.Pluralization;
using Avalanche.Message;
using Avalanche.Template;
using Avalanche.Utilities;
using Avalanche.Utilities.Provider;
using Microsoft.AspNetCore.Mvc.ViewComponents;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Logging;
using YamlDotNet.RepresentationModel;
using static System.Console;
class microsoft_extensions_dependencyinjection
{
public static void Run()
{
{
// <00>
// 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."
// </00>
}
{
// <01>
// Assign fallback provider
Localization.Default.FallbackCultureProvider = FallbackCultureProvider.En;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationInstance(Localization.Default);
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// </01>
// 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>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationResourceManagerProvider();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "docs.Resources.Resource1.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 })); // "You've got 2 apple(s)."
// Get localizable file
ILocalizable<ILocalizationFile> localizableFile = localization.LocalizableFileCached["docs.Resources.Resource1.logo"];
// Localize to invariant ""
ILocalizationFile? localizationFile = localizableFile.Localize("")?.Value;
// Read file
byte[] data = localizationFile!.ReadFully();
// </02>
}
{
// <02B>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationInstance(Localization.Default)
.AddAvalancheLocalizationResourceManagerProvider();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "docs.Resources.Resource1.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 })); // "You've got 2 apple(s)."
// Get localizable file
ILocalizable<ILocalizationFile> localizableFile = localization.LocalizableFileCached["docs.Resources.Resource1.logo"];
// Localize to invariant ""
ILocalizationFile? localizationFile = localizableFile.Localize("")?.Value;
// Read file
byte[] data = localizationFile!.ReadFully();
// </02B>
}
{
// <03>
// Get ResourceManager
ResourceManager resourceManager = docs.Resources.Resource1.ResourceManager;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddSingleton(typeof(ResourceManager), resourceManager)
.AddAvalancheLocalizationService();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "docs.Resources.Resource1.Apples")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 }));
// </03>
}
{
// <03B>
// Get ResourceManager
ResourceManager resourceManager = docs.Resources.Resource1.ResourceManager;
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddSingleton(typeof(IProvider<(string? culture, string? key), IEnumerable<IEnumerable<KeyValuePair<string, MarkedText>>>>), new ResourceManagerLineProvider(resourceManager, "Namespace"))
.AddSingleton(typeof(IProvider<(string? culture, string? key), IEnumerable<ILocalizationFile>>), new ResourceManagerFileProvider(resourceManager, "Namespace"))
.AddAvalancheLocalizationService();
// 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 }));
// </03B>
}
{
// <04>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// </04>
// 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 }));
}
{
// <04A>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton(typeof(ILocalizationFileSystem), LocalizationFileSystem.ApplicationRoot)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// </04A>
// 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 }));
}
{
// <04B>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationToUseFileProvider()
.AddSingleton(typeof(IFileProvider), new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory))
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// </04B>
// 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 }));
}
{
// <05>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(ITemplateFormat), DashTemplateFormat.Instance)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// </05>
// 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 }));
}
{
// <06>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton(typeof(IEnumerable<KeyValuePair<string, MarkedText>>), new Dictionary<string, MarkedText> { { "TemplateFormat", "BraceNumeric" }, { "Culture", "" }, { "Key", "Namespace.Example" }, { "Text", "Example: {0}." } });
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Example")];
// Print text
WriteLine(localizedText.Print(new object[] { "Hello world" })); // "Example: Hello world."
// </06>
}
{
// <06B>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddLine(templateFormat: "BraceNumeric", culture: "", key: "Namespace.Example", text: "Example: {0}.");
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Namespace.Example")];
// Print text
WriteLine(localizedText.Print(new object[] { "Hello world" })); // "Example: Hello world."
// </06B>
}
{
// Add service descriptors
// <07>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(IProvider<PluralRuleInfo, IPluralRule[]>), Avalanche.Localization.CLDRs.CLDR41.RulesCached)
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En);
// </07>
// 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 }));
}
{
// Add service descriptors
// <08>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddSingleton(typeof(ILocalizationFileFormat), new LocalizationFileFormat(".html"));
// </08>
// 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 }));
}
{
// Add service descriptors
// <09>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(ILocalizationErrorHandler), new LocalizationErrorHandler(e => WriteLine(e)));
// </09>
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Example.ErrorExample")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 }));
}
{
// <10>
// Add service descriptors
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddLogging(loggingBuilder => loggingBuilder.SetMinimumLevel(LogLevel.Trace).AddConsole());
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Get text
ILocalizedText localizedText = localization.LocalizedTextCached[("", "Example.ErrorExample")];
// Print text
WriteLine(localizedText.Print(new object[] { 2 }));
// </10>
}
{
// <11>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddSingleton(typeof(ILocalizationFilePatterns), new LocalizationFilePatterns("Localization/{Key}", "Localization/{Culture}/{Key}"));
// </11>
// 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 }));
}
{
// <12>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddAvalancheLocalizationFileSystemApplicationRoot()
.AddSingleton(typeof(ILocalizationFilePatterns), new LocalizationFilePatterns("Localization/{Key}", "Localization/{Culture}/{Key}"));
// Removes service descriptors for "Resources/{Key}", "Resources/{Culture}/{Key}"
serviceCollection.Remove(LocalizationServiceDescriptors.Instance.LocalizationFilePatterns);
// </12>
}
{
ILocalizationFileSystem fs = LocalizationFileSystemEmbedded.AppDomain;
WriteLine(fs.PrintTree("", format: LocalizationFileSystemPrintTreeExtensions.PrintFormat.DefaultLong));
// <21>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddAvalancheLocalizationEmbeddedResourceProviderDefault();
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Print
ILocalizedText text = localization.LocalizableTextCached["Namespace.Apples"];
string print = text.Print(CultureInfo.GetCultureInfo("sv"), new object[] { 1 });
WriteLine(print);
// </21>
}
{
ILocalizationFileSystem fs = LocalizationFileSystemEmbedded.AppDomain;
WriteLine(fs.PrintTree("", format: LocalizationFileSystemPrintTreeExtensions.PrintFormat.DefaultLong));
// <22>
IServiceCollection serviceCollection = new ServiceCollection()
.AddAvalancheLocalizationService()
.AddSingleton<IProvider<string, string[]>>(FallbackCultureProvider.En)
.AddAvalancheLocalizationEmbeddedResourceProvider("*/*.Resources.{Key}", "*/*.Resources.{Culture}.{Key}", "*/{Key}", "*/{Key}.{Culture}");
// Build service
using ServiceProvider service = serviceCollection.BuildServiceProvider();
// Get Localization
ILocalization localization = service.GetService<ILocalization>()!;
// Print
ILocalizedText text = localization.LocalizableTextCached["Namespace.Apples"];
string print = text.Print(CultureInfo.GetCultureInfo("sv"), new object[] { 1 });
WriteLine(print);
// </22>
}
}
}