C A R R E G A N D O
Capa do post Múltiplos idiomais em .NET Tutorial

Múltiplos idiomas em .NET

Caso tenha interesse em garantir que o seu website possa ser acessível em diversos idiomas de maneira automatizada, convido-o a prosseguir com a leitura. Além disso, sugiro considerar a implementação do exemplo aqui apresentado.

Olá a todos! No artigo de hoje, gostaria de discutir e demonstrar como é possível implementar suporte a múltiplos idiomas em um site utilizando a funcionalidade de Globalização da plataforma Web. A capacidade de oferecer conteúdo em diferentes línguas é crucial, uma vez que o mundo está cada vez mais conectado e acessível a uma ampla gama de usuários de diversas origens linguísticas.

Tecnologias Utilizadas

  • Visual Studio 2022
  • .NET 8
  • Aplicação MVC

O que é o Resources?

No contexto de desenvolvimento de software, um “resource” (recurso, em português) é um elemento utilizado por um programa durante sua execução. Esse termo pode abranger uma variedade de tipos de dados, como texto, imagens, áudio, vídeos, ícones, arquivos de configuração, entre outros. Os recursos são incorporados ao aplicativo ou disponibilizados externamente, geralmente para fornecer funcionalidades ou conteúdo específicos para o programa.

Em sistemas .NET, os “resources” muitas vezes se referem a arquivos ou classes que contêm informações localizadas, como strings de texto, imagens e outros elementos visuais, que são utilizados para internacionalização e localização de aplicativos. Esses recursos permitem que um aplicativo seja adaptado para diferentes idiomas e culturas, facilitando sua utilização por uma audiência global.

Como vamos criar?

1 - Criar um projeto padrão MVC no Visual Studio.
2 - Dentro da estrutura do projeto, vai ser preciso criar uma pasta chamada Resources
3 - Criar uma classe chamada Resources.cs, dentro da classe não iremos codificar nada, pois isso é apenas nível de organização. Futuramente se precisar personalizar basta utilizar a classe que foi criada.
4 - Criar dois arquivos Resx.
- Resources.en-US.resx => Para texto da língua Inglesa.
- Resources.pt-BR.resx => Para texto BR

imagem da estrutura de resources

Notem que o visual studio reconhece automaticamente os arquivos .resx e os incorpora à estrutura da classe, conforme ilustrado na imagem acima.

5. Depois de ter criado a estrutura de pasta, precisamos configurar nosso serviço dentro do program.cs

6. Dentro da program vamos definir o seguinte código:

builder.Services.AddLocalization();
builder.Services.Configure<RequestLocalizationOptions>(
    options =>
    {
        var supportedCultures = new List<CultureInfo>
        {
            new CultureInfo("en-US"),
            new CultureInfo("pt-BR")
        };

        options.DefaultRequestCulture = new RequestCulture(culture: "en-US", uiCulture: "en-US");
        options.SupportedCultures = supportedCultures;
        options.SupportedUICultures = supportedCultures;
    });

No código inicial, foi incluído o método AddLocalization() na configuração. Posteriormente, foram especificadas duas culturas para o site: Inglês (“en-US”) e Português (“pt-BR”). É relevante notar que o DefaultRequestCulture foi configurado como “en-US”, o que significa que, caso alguém esteja acessando o site de USA, a língua inicial exibida será o Inglês.

Para finalizar devemos chamar o serviço criado utilizando o códio abaixo. 👇

app.UseRequestLocalization(app.Services.GetRequiredService<IOptions<RequestLocalizationOptions>>().Value);
Imagem final de como ficaria o resultado da tradução

Abaixo deixo o vídeo de apoio do meu canal.


WhatsApp