i18n é uma abreviação para internacionalização, um processo que visa tornar um software adaptável a diferentes idiomas e culturas, sem a necessidade de grandes reestruturações. Em outras palavras, é preparar um software para ser utilizado em qualquer parte do mundo. A i18n envolve a separação do texto do código, a formatação de datas, números e moedas de acordo com cada cultura, e o suporte a diferentes conjuntos de caracteres. Ao internacionalizar um software, você amplia seu alcance, melhora a experiência do usuário e aumenta sua competitividade no mercado global.
Neste post irei te ensinar como iniciar o processo de internacionalização em um projeto webapi .net 8. Tenho aqui um projeto recém iniciado que usarei como exemplo e deixarei o link do github caso queira conferir o
Podemos começar a criar nosso primeiro texto para ser traduzido:
E também altere a classe Resource para ter seu modificador de acesso para Public
public class Resource {...}
Na controller iremo injetar o IStringLocalizer que vem de Microsoft.Extensions.Localization. E o Resource é o que criamos então faça também o using de Common.Resources;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
using Common.Resources;
namespace Api.Controllers;
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private readonly IStringLocalizer<Resource> _localizer;
public WeatherForecastController(IStringLocalizer<Resource> localizer)
{
_localizer = localizer;
}
[HttpGet(Name = "GetWeatherForecast")]
public IActionResult Get()
{
return Ok($"Sucesso na traducao: {_localizer["msg_sucesso"]}");
}
}
O uso do _localizer fica assim: _localizer["chave"].
Para testar nossa aplicação utilizaremos o postman:
E quando não colocamos nada, permanece aquele que configuramos como padrão:
E isso é tudo, pessoal! Fiquem à vontade para comentar qualquer equívoco ou sugestão. Espero que tenha te ajudado!

SOCIAL SHARE CARD GENERATOR