Skip to content

Localizer package for Asp.Net Core web applications, powered by online translation and auto resource creating.

Notifications You must be signed in to change notification settings

borahanarslan/XLocalizer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XLocalizer for Asp.Net Core

Say bye-bye to manually creating localization resources...!

- Online Translation : Auto translation of missed localized values.

- Auto Key Adding : Auto adding missing keys to the resources files.

- Multiple Resource Type Support : Built-in localization support based on .RESX, .XML, DB. Extendable localization support based on any custom file/db type.

- Export to Resx : Resources from any source type can be exported to .RESX files via built-in exporters.

- Do it Fast : Custom cache support for speeding up the process of getting localized values from sources.

- Standard interfaces : Easy to use due to using the standard localization interfaces: IStringLocalizer, IHtmlLocalizer, IStringLocalizerFactory and IHtmlLocalizerFactory.

Setup

Install from nuget :

Install-Package XLocalizer

Add localization settings in startup.cs:

using XLocalizer;
using XLocalizer.Xml;
using XLocalizer.Routing;
using XLocalizer.Translate;
using XLocalizer.Translate.GoogleTranslate;

public void ConfigureServices(IServiceCollection services)
{
    // Register a translation service
    services.AddHttpClient<ITranslator, GoogleTranslateService>();
    
    // Define supported cultures
    var cultures = new CultureInfo[]
    {
        new CultureInfo("en"),
        new CultureInfo("tr"),
        new CultureInfo("ar")
    };
    
    // Configure request localization options
    services.Configure<RequestLocalizationOptions>(ops =>
    {
        ops.SupportedCultures = cultures;
        ops.SupportedUICultures = cultures;
        ops.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en");
        ops.RequestCultureProviders.Insert(0, new RouteSegmentRequestCultureProvider(cultures));
    });
    
    // Register the built-in Xml resource provider
    services.AddSingleton<IXResourceProvider, XmlResourceProvider>();   

    // Add XLocalizer
    services.AddRazorPages()
            .AddRazorPagesOptions(ops => { ops.Conventions?.Insert(0, new RouteTemplateModelConventionRazorPages()); })
            .AddXLocalizer<LocSource, GoogleTranslateService>((x) =>
            {
                x.ResourcesPath = "LocalizationResources";
                x.AutoTranslate = true;
                x.AutoAddKeys = true;
            });
}

Then configure the app to use RequestLocalization middleware :

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // Other codes...
    
    // Add localization middleware to the app
    app.UseRequestLocalization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
    });
}

For more details goto DOCS.Ziyad.info

Step by step tutorial

  • coming soon...

Sample projects

License

MIT

About

Localizer package for Asp.Net Core web applications, powered by online translation and auto resource creating.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%