Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

@HtmlHelper - ValidationMessageFor(Tradução)

Na última aula me veio uma pequena curiosidade...

É possível traduzir as respostas automáticas vindas dessas funções do @HtmlHelper do Razor, ou quem sabe, até ter como inserir nossas próprias mensagens de "Alerta", ainda usando este padrão de Form?

Se o caso for automático (vários idiomas) é o próprio navegador que reconhece a linguagem padrão do cliente e envia a requisição para o banco de dados do Razor?

Não quero prolongar muito a ideia para não ficar confusa, mas ela pode ser usada de forma manual (inserir as mensagens em português) e de forma automática (talvez uma API) para traduções de mensagens de alertas, entre outros setores que por padrão o site gera como resposta ao cliente?

Ou essa função pode ser gerada no C#? ficaria bem grande, em criar um Built-in né?

4 respostas
solução

Oi Anthony!

Sobre customização de Html Helper, você pode consultar a postagem no blog do nosso amigo Gabriel Ferreira:

http://gabsferreira.com/criando-html-helpers-customizados/

O que acha? É por aí?

Um abraço

Pô professor, eu dei uma lida mas não sei ao certo se é isso.

vou tentar explicar de uma outra forma.

  • Eu tenho um site onde existem vários setores que é necessária uma tradução ao idioma do cliente.

primeira dúvida : A tradução pode ser ativada automaticamente por geolocalização? No caso de um marketplace, utilizar uma API do Google Translator?

  • Neste setores a quantidade e variedade de informação é muita, e também tem o caso das informações adicionadas dos próprios usuários ( comentários dos clientes e descrição do produto dos vendedores ). Nessa situação (imagino eu) que a quantidade de "adicionais" onde haverá traduções para os idiomas ( X,Y,Z) terá uma sobre carga na estrutura dos códigos.

segunda dúvida : Nessa situação, como foi demonstrado no curso na parte da internacionalização, é uma forma legal até em adicionar (3 ou 5 idiomas) e ter setores onde a tradução é controlada pelo languages. Mas e quando temos esse cenário, é somente por este caminho que teremos a possibilidade de efetuar a internacionalização?

  • no caso, criando o dictionary e disponibilizando a tradução das palavras.

um exemplo de caso

(Amazon, AliExpress, Ebay)

E para finalizar

  • as respostas geradas pelo HtmlHelper - (na página de login por ex) É possível fazer a tradução destas respostas?

  • incorrect email or password, pleasy type the current e-mail and password again.

  • the name of the field should be at least 20 characters, please type a stronger password to create your account

...

Olá, Anthony!

O melhor a fazer é deixar o Asp.NET detectar a cultura do browser e decidir quais dos resources (arquivos .resx) ele deve usar para exibir as mensagens.

Para isso, você deve definir o UICulture e o Culture da diretiva Page como auto, por exemplo:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" UICulture="auto" Culture="auto" %>

Assim, se o cliente do site for brasileiro com um browser em português, ao rodar a aplicação, o valor da propriedade System.Threading.Thread.CurrentThread.CurrentUICulture.Name será pt-BR. Isso porque a requisição do browser informa ao servidor qual é a cultura da interface do usuário. Assim, vários arquivos .resx podem atender as necessidades de vários idiomas diferentes.

Sobre a tradução automática dos conteúdos adicionados pelos clientes e vendedores da sua aplicação: pelo jeito, o seu sistema é alimentado frequentemente com comentários dos usuários. Eu acho complicado utilizar uma API de tradução nesse caso, porque pode gerar custos imprevistos. Serviços como Cloud Translation API do Google e o Bing Translator da Microsoft tem planos de pagamentos para tradução de um certo número de palavras, e você não sabe quantas palavras vão ser postadas pelos clientes e vendedores. Se atingir o limite de palavras traduzidas, você pode ter que pagar para traduzir um volume maior.

Sobre a sua dúvida com ValidationMessageFor, o próprio instrutor Victor Harada publicou uma postagem sobre como customizar mensagens de validação, espero que ajude:

http://blog.caelum.com.br/validacoes-customizadas-no-asp-net-mvc/

Um abraço

marcelo

Nossa!!!! Só essa de deixar UICulture / Culture em - auto já é o suficiente.

Por isso também que os comentários também são traduzidos para o PT BR. Pois vários idiomas são traduzidos para o português. Claro que possui alguns erros, mas no geral da para ver que ele tenta pegar o maior número de comentários disponível na página e traduz conforme a linguagem do navegador do usuário. Então era isso! Euréka! Pois não possuo configurado nenhuma tradução agendada conforme idioma, e mesmo assim, ele me apresenta em PT BR.

Marcelo \o/ esse mode [auto] veio como música. Obrigado cara Pô vou seguir esse blog da Caelum, não tinha conhecimento que existia postagem desse tipo. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software