Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Plataforma com múltiplas traduções

Qual o melhor jeito para traduzir um projeto em Angular para Inglês, Espanhol? (e talvez mais idiomas)

OBS: O projeto tem textos fixos da aplicação Angular e textos que vêm da API / BD.

6 respostas

Eduardo, na API e BD vc terá de resolver BD mesmo, tipo ho header da requisição poderia enviar o Locale ou algo que represente a lingua do usuário, e terias o dado com as devidas traduções, por exemplo, se fosse uma tabela de Produtos ,teria as informações do produto em outras línguas (usando outros campos ou ainda outras tabelas).

Para a parte estática, o Angular tem recurso de I18N, dá uma olhada em => https://angular.io/guide/i18n

Att.

solução!

Fala Eduardo,

cara uma lib que particularmente acho muito boa é a ngx-translate:

http://www.ngx-translate.com/

https://github.com/ngx-translate

Ela é muito simples tanto para usar quanto para configurar, é bastante flexível, e o html nao fica poluído. voce define aquivos JSON onde irão os textos que vc deseja internacionalizar e no JSON basta chamar

{{'home.titulo' | translate}}

dá para passar parâmetos tb

{{ 'financeiro.preco' | translate:{valor:100} }}

e mais um monte de possibilidades

Interessante mesmo Jefferson.

Seria possível utilizá-la para carregar traduções provenientes do BD, ou seja, que não trata-se de "labels". Já trabalhei em um projeto que era utilizado em alguns países da Europa, então no cadastro de produto (por exemplo), vc tinha a tabela principal de Produto e outras tabelas para as devidas traduções.

Seria possível que o Pipe translate utilizasse um Service para obter a tradução do dado proveniente do Backend.

Isto me parece atender, o que achas?

Att.

Cara, sendo sincero não posso te garantir isso, mas a princípio eu chuto que nao pois ao configurar o módulo de internacionalização você deve apontar a pastas onde estão todos JSON's a serem utilizados. mas vou dar uma analisada na documentação deles para ver se existe essa possibilidade, o que seria bem interessante por sinal

Adorei a dica, e realmente se der para utilizar também no Back seria perfeito!!!

Eduardo, caso não seja possível e eu tenha que gravar as traduções no banco de dados, baseado em sua experiência você acha melhor ter campos adicionais na tabela, ou melhor ter tabelas adicionas para cada língua? Ao meu ver acho q com tabelas diferentes fica mais organizado e limpo, principalmente caso escale para 5 línguas por exemplo.

Concordo plenamente Santos, principalmente quando existem vários campos, como por exemplo: Nome, Descrição, Informações Técnicas, etc.

Pode acontecer situação com poucos campos e apenas 1 ou 2 línguas adicionais, tipo apenas o campo Nome do Produto e em Inglês. Neste cenário um campo adicional como NOME_INGLES seria suficiente e evitaria JOINS entre as tabelas de traduções, contribuindo com a performance.

O caso em que citei anteriormente, numa experiência a alguns anos atrás se encaixada no primeiro cenário (vários campos a serem traduzidos e várias línguas - mais de 6 se não me engado).

Att.

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