/// <summary> /// Add handlebars for Cosmos.I18N /// </summary> /// <param name="services"></param> /// <returns></returns> public static II18NServiceCollection AddHandlebars(this II18NServiceCollection services) { Handlebars.RegisterHelper("A", AnonymousHelperRegister.Register); Handlebars.RegisterHelper("T", TranslateHelperRegister.Register); return(services); }
/// <summary> /// Add AbpFx Resource /// </summary> /// <param name="services"></param> /// <param name="virtualPath"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static II18NServiceCollection AddAbpResourceFrom(this II18NServiceCollection services, string virtualPath) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (string.IsNullOrWhiteSpace(virtualPath)) { throw new ArgumentNullException(nameof(virtualPath)); } var path = PathHelper.Combine(services.ExposeOptions, virtualPath, true); try { foreach (var filePath in PathHelper.GetSeveralPathList(path)) { using (var bridgeAdapter = new AbpJsonFileAdapter(filePath)) { if (bridgeAdapter.Process()) { var speaker = bridgeAdapter.Speak(); services.ExposeOptions.AddResource(speaker.PackageKey, TranslateResourceFactory.Create(speaker)); } } } } catch (Exception exception) { InternalLogger.WriteLine($"Thrown exception when add json resource from {path}, message: {0}", exception.Message); } return(services); }
public static void AppendOrOverride(this II18NServiceCollection services) { services.AddDependency(s => { s.AddSingleton <ICoreScopedLanguageTagFactory, HostedLanguageTagFactory>(); s.AddScoped <IRequestedLanguageTagAccessor, RequestedLanguageTagAccessor>(); }); }
internal static void AllDone(II18NServiceCollection services) { if (services is I18NServiceCollection serviceImpl) { var translationManager = serviceImpl.ExposeTranslationManager; var translationSetter = translationManager as ITranslationManSetter; foreach (var package in serviceImpl.ExposeOptions.TranslationPackages) { var translationPackage = package.Value; translationSetter.RegisterPackage(translationPackage); serviceImpl.AddDependency(s => s.AddSingleton(translationPackage)); } serviceImpl.AddDependency(s => { s.AddSingleton(translationManager); s.AddSingleton <ITranslationManager>(translationManager); s.AddSingleton <ITextProvider, TextProvider>(); s.AddSingleton <ILanguageServiceProvider, ConsoleLanguageServiceProvider>(); s.AddSingleton(provider => new TranslationProcessor(provider.GetServices <ITranslatePackage>().ToDictionary(package => package.PackageKey.GetHashCode()))); }); SetResolver(serviceImpl.Build()); } }
/// <summary> /// Add xml format anonymous resource from path... /// </summary> /// <param name="services"></param> /// <param name="path"></param> /// <param name="referenceToBasePath"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static II18NServiceCollection AddXmlAnonymousResourceFrom(this II18NServiceCollection services, string path = "Anonymous.*", bool referenceToBasePath = true) { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException(nameof(path)); } if (!path.ToLower().EndsWith(".xml")) { path += ".xml"; } if (PathHelper.IsSeveralPath(path)) { foreach (var file in PathHelper.GetSeveralPathList(services.ExposeOptions, path)) { AddXmlAnonymousResourceFromOnce(services, file, false); } return(services); } return(AddXmlAnonymousResourceFromOnce(services, path, referenceToBasePath)); }
private static void RegisterTranslationProviders(this II18NServiceCollection services) { services.AddDependency(s => { s.AddSingleton <ITextProvider, TextProvider>(); s.AddSingleton <ILanguageServiceProvider, ConsoleLanguageServiceProvider>(); }); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <typeparam name="TRegister"></typeparam> /// <typeparam name="TService"></typeparam> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentException"></exception> public static TRegister Done <TRegister, TService>(this II18NServiceCollection services) where TRegister : DependencyProxyRegister <TService> { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (services is DefaultI18NServiceCollection <TRegister, TService> serviceImpl) { var register = serviceImpl.OriginalRegister; if (!StaticFlag.HasInit) { var options = services.ExposeOptions; services.RegisterAllPackages(options); services.RegisterTranslationProcessor(); services.RegisterTranslationProviders(); services.RegisterTranslationAccessor(); } return(register); } throw new ArgumentException("Unknown type of II18NServiceCollection"); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static IServiceCollection Done(this II18NServiceCollection services) { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (services is StandardI18NServiceCollection serviceImpl) { var builder = serviceImpl.OriginalServices; if (!StaticFlag.HasInit) { using (serviceImpl) { serviceImpl.RegisterAllPackages(); serviceImpl.RegisterTranslationProcessor(); serviceImpl.RegisterTranslationProviders(); serviceImpl.RegisterTranslationAccessor(); } } return(builder); } throw new ArgumentException("Unknown type of II18NServiceCollection"); }
private static void RegisterTranslationAccessor(this II18NServiceCollection services) { var tagFactory = new DefaultLanguageTagFactory(LanguageTag.Current.ToString); services.AddDependency(register => register.AddSingleton <ICoreScopedLanguageTagFactory>(tagFactory)); services.AddDependency(register => register.AddScoped <ITranslationAccessor, DefaultTranslationAccessor>()); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static ContainerBuilder Done(this II18NServiceCollection services) { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (services is AutofacServiceCollection serviceImpl) { var builder = serviceImpl.OriginalServices; if (!StaticFlag.HasInit) { using (serviceImpl) { var options = serviceImpl.ExposeOptions; serviceImpl.RegisterAllPackages(options); serviceImpl.RegisterTranslationProcessor(); serviceImpl.RegisterTranslationProviders(); serviceImpl.RegisterTranslationAccessor(); serviceImpl.RegisterPostBuiltAction(); } } return(builder); } throw new ArgumentException("Unknown type of II18NServiceCollection"); }
/// <summary> /// Add historical country support /// </summary> /// <param name="services"></param> /// <param name="config"></param> /// <returns></returns> public static II18NServiceCollection AddHistoricalSupport(this II18NServiceCollection services, IConfigurationSection config) { var models = config.GetValue <IEnumerable <HistoricalCountryModel> >("Historical"); HistoricalCountryStarter.AppendConfiguredCountries(models); return(services); }
public static void UpdateState(this II18NServiceCollection services) { if (services is DefaultI18NServiceCollection <MicrosoftProxyRegister, IServiceCollection> serviceImpl) { serviceImpl.AddPostRegisterAction("FlagState", s => { StaticFlag.HasInit = true; StaticFlag.ExpectedServiceName = "HostImpl"; }); } }
/// <summary> /// Options to global /// </summary> /// <param name="services"></param> /// <param name="optionsAct"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static II18NServiceCollection ToGlobal(this II18NServiceCollection services, Action <I18NOptions> optionsAct) { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (optionsAct is null) { throw new ArgumentNullException(nameof(optionsAct)); } services.AppendOptionsAction(optionsAct); return(services); }
private static void RegisterAllPackages(this II18NServiceCollection services, I18NOptions options) { var translationManager = new TranslationManager(); var translationSetter = (ITranslationManSetter)translationManager; foreach (var package in options.TranslationPackages) { var translationPackage = package.Value; translationSetter.RegisterPackage(translationPackage); services.AddDependency(register => register.AddSingleton(translationPackage)); } services.AddDependency(register => register.AddSingleton(translationManager)); services.AddDependency(register => register.AddSingleton <ITranslationManager>(translationManager)); }
private static void RegisterAllPackages(this II18NServiceCollection services) { var translationManager = services.ExposeTranslationManager; var translationSetter = (ITranslationManSetter)translationManager; foreach (var package in services.ExposeOptions.TranslationPackages) { var translationPackage = package.Value; translationSetter.RegisterPackage(translationPackage); services.AddDependency(s => s.AddSingleton(translationPackage)); } services.AddDependency(s => { s.AddSingleton(translationManager); s.AddSingleton <ITranslationManager>(translationManager); }); }
private static II18NServiceCollection AddXmlAnonymousResourceFromOnce(II18NServiceCollection services, string path, bool referenceToBasePath) { try { using (var adapter = new AnonymousXmlFileAdapter(PathHelper.Combine(services.ExposeOptions, path, referenceToBasePath))) { if (adapter.Process()) { var speaker = adapter.Speak(); services.ExposeOptions.AddAnonymousResource(TranslateResourceFactory.Create(speaker)); } } } catch (Exception exception) { InternalLogger.WriteLine($"Thrown exception when add json resource from {path}, message: {0}", exception.Message); } return(services); }
internal static void AllDone(II18NServiceCollection services) { if (!StaticFlag.HasInit && services is I18NServiceCollection serviceImpl) { using (serviceImpl) { serviceImpl.RegisterAllPackages(); serviceImpl.RegisterTranslationProcessor(); serviceImpl.RegisterTranslationProviders(); serviceImpl.RegisterTranslationAccessor(); } SetResolver(serviceImpl.Build()); StaticFlag.HasInit = true; StaticFlag.ExpectedServiceName = "ConsoleImpl"; } }
/// <summary> /// Add xml format resource /// </summary> /// <param name="services"></param> /// <param name="originContext"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static II18NServiceCollection AddXmlResource(this II18NServiceCollection services, string originContext) { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (string.IsNullOrWhiteSpace(originContext)) { throw new ArgumentNullException(nameof(originContext)); } using (var adapter = new XmlContentAdapter(originContext)) { if (adapter.Process()) { var speaker = adapter.Speak(); services.ExposeOptions.AddResource(speaker.PackageKey, TranslateResourceFactory.Create(speaker)); } } return(services); }
public static II18NServiceCollection AddJsonResource(this II18NServiceCollection services, string originContext) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (string.IsNullOrWhiteSpace(originContext)) { throw new ArgumentNullException(nameof(originContext)); } using (var adapter = new JsonContentAdapter(originContext)) { if (adapter.Process()) { var speaker = adapter.Speak(); var language = speaker.Language; services.ExposeOptions.AddResource(language, LanguageResourceFactory.Create(speaker)); } } return(services); }
internal static void AllDone(II18NServiceCollection services) { if (services is I18NServiceCollection serviceImpl) { var languageManager = serviceImpl.ExposeLanguageManager; foreach (var lang in serviceImpl.ExposeOptions.RegisteredLanguages) { languageManager.RegisterUsedLangage(lang); } foreach (var package in serviceImpl.ExposeOptions.LanguagePackages) { serviceImpl.AddDependency(s => s.AddSingleton(package.Value)); } serviceImpl.AddDependency(s => { s.AddSingleton(languageManager); s.AddSingleton <ILanguageServiceProvider, ConsoleLanguageServiceProvider>(); s.AddSingleton(provider => new TranslationProcessor(provider.GetServices <ILanguagePackage>().ToDictionary(package => package.Language))); }); } SetResolver(services.Build()); }
public static II18NServiceCollection AddJsonResourceFrom(this II18NServiceCollection services, string path, bool referenceToBasePath = true) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException(nameof(path)); } if (PathHelper.IsSeveralPath(path)) { foreach (var file in PathHelper.GetSeveralPathList(services.ExposeOptions, path)) { AddJsonResourceFromOnce(services, file, false); } return(services); } return(AddJsonResourceFromOnce(services, path, referenceToBasePath)); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static IServiceCollection Done(this II18NServiceCollection services) { using var register = services.Done <MicrosoftProxyRegister, IServiceCollection>(); return(register.RawServices); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static IServiceContext Done(this II18NServiceCollection services) { using var register = services.Done <AspectCoreProxyRegister, IServiceContext>(); return(register.RawServices); }
/// <summary> /// Done /// </summary> /// <param name="services"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static ContainerBuilder Done(this II18NServiceCollection services) { using var register = services.Done <AutofacProxyRegister, ContainerBuilder>(); return(register.RawServices); }
private static void RegisterTranslationProviders(this II18NServiceCollection services) { services.AddDependency(register => register.AddSingleton <ITextProvider, TextProvider>()); services.AddDependency(register => register.AddSingleton <ILanguageServiceProvider, AspectCoreLanguageServiceProvider>()); }
private static void RegisterTranslationProcessor(this II18NServiceCollection services) { services.AddDependency(s => s.AddSingleton <TranslationProcessor>()); }
/// <summary> /// ALl done /// </summary> /// <param name="services"></param> public static void AllDone(this II18NServiceCollection services) { SoloDependencyContainer.AllDone(services); }