csharp-xlocalizer

Localización simplificada en .NET con XLocalizer

XLocalizer es una biblioteca de código abierto para la localización y globalización de aplicaciones .NET. Proporciona una forma sencilla y eficaz de traducir contenido en aplicaciones ASP.NET Core y Blazor, integrándose con los mecanismos de localización de .NET.

La localización (traducción) de una aplicación es un aspecto fundamental para llegar a un público global. Sin embargo, siempre es un auténtico peñazo proceso complejo y tedioso. Es por eso que surgió xLocalizer, una librería para simplificar la traducción y localización de aplicaciones ASP.NET Core.

xLocalizer se integra fácilmente en una aplicación ASP.NET Core existente. Una vez configurado, puede utilizar los recursos de localización existentes o crear nuevos. Los recursos se almacenan en archivos de recursos (.resx) y se pueden editar fácilmente utilizando herramientas estándar de desarrollo como Visual Studio.

Características de XLocalizer,

  • Traducción automática: Utiliza servicios de traducción automática como Google Translate y Microsoft Translator.
  • Integración con ASP.NET Core y Blazor: Soporte nativo para frameworks populares de .NET.
  • Gestión de recursos: Facilita la creación y gestión de archivos de recursos para múltiples idiomas.
  • Personalización: Permite la personalización de las claves y valores de los recursos de localización.
  • Cacheo: Implementa mecanismos de cacheo para mejorar el rendimiento de la localización.

xlocalizar-workflow

Instalación de XLocalizer

Para instalar XLocalizer en tu proyecto, puedes utilizar el paquete NuGet correspondiente. Abre el terminal o consola de administración de paquetes de Visual Studio y ejecuta el siguiente comando:

dotnet add package XLocalizer
dotnet add package XLocalizer.Xml
dotnet add package XLocalizer.Routing

Configuración Básica

Configuración en ASP.NET Core

Para configurar XLocalizer en una aplicación ASP.NET Core, primero necesitas añadir los servicios de localización en Startup.cs.

services.Configure<RequestLocalizationOptions>(ops =>
{
	var cultures = new CultureInfo[] { new CultureInfo("en"), new CultureInfo("es") };
	ops.SupportedCultures = cultures;
	ops.SupportedUICultures = cultures;
	ops.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en");
});

services.AddHttpClient<ITranslator, MyMemoryTranslateService>();
services.AddSingleton<IXResourceProvider, XmlResourceProvider>();

services.AddControllers();
services.AddRazorPages()
	.AddXLocalizer<LocSource, MyMemoryTranslateService>(ops =>
	{
		ops.ResourcesPath = "LocalizationResources";
		ops.AutoAddKeys = true;
		ops.AutoTranslate = true;
		ops.UseExpressMemoryCache = true;
	});

Uso en vistas en Blazor

Puedes utilizar XLocalizer en tus vistas Razor para traducir contenido de manera dinámica. Aquí hay un ejemplo de cómo utilizar XLocalizer en una vista Razor:

@page "/"

<h1>@_loc["Hello, world!"]</h1>

@_loc["Welcome to your new app."]

<SurveyPrompt Title="How is Blazor working for you?" />

<XLocalizerPrompt />

Xlocalizer es una librería muy potente, con muchas opciones de configuración. Afortunadamente proporciona uno repo muy bompleto con ejemplos para distintas tecnologías GitHub - LazZiya/XLocalizer.Samples: Sample projects to demonstrate XLocalizer functionalities.