Eu estou querendo saber como lidar com a internacionalização em JavaScript. Pesquisei no Google, mas não estou obtendo respostas convincentes para:
- O JavaScript tem suporte nativo para internacionalização?
- O que é i18n em JavaScript?
- Como lidar com calendários, moedas, datas etc.?
Eu já li Internacionalização dentro de JavaScript .
javascript
internationalization
rajakvk
fonte
fonte
Respostas:
O suporte à localização em navegadores herdados é ruim. Originalmente, isso se devia a frases na
ECMAScript
especificação do idioma que se parecem com isso:Todo método de localização definido na especificação é definido como "dependente da implementação", o que resulta em muitas inconsistências. Nesse caso, o Chrome Opera e o Safari retornariam a mesma coisa que
.toString()
. O Firefox e o IE retornarão seqüências de caracteres no formato local e o IE ainda inclui um separador de milhar (perfeito para seqüências de moeda). O Chrome foi atualizado recentemente para retornar uma string separada por milhares, embora sem decimal fixo.Para ambientes modernos , a especificação da API de internacionalização do ECMAScript , um novo padrão que complementa a especificação da linguagem do ECMAScript, fornece suporte muito melhor para comparação de cadeias, formatação de números e formatação de data e hora; também corrige as funções correspondentes na especificação de idioma. Uma introdução pode ser encontrada aqui . As implementações estão disponíveis em:
Há também uma implementação de compatibilidade, Intl.js , que fornecerá a API em ambientes onde ela ainda não existe.
Determinar o idioma preferido do usuário continua sendo um problema, pois não há especificação para obter o idioma atual. Cada navegador implementa um método para obter uma sequência de idiomas, mas isso pode se basear no idioma do sistema operacional do usuário ou apenas no idioma do navegador:
Uma boa solução para isso é despejar o cabeçalho Accept-Language do servidor para o cliente. Se formatado como JavaScript, ele pode ser passado para os construtores da API de internacionalização, que escolherão automaticamente o melhor local (ou o primeiro suportado).
Em suma, você deve dedicar muito do seu trabalho ou usar uma estrutura / biblioteca , porque não pode confiar no navegador para fazer isso por você.
Várias bibliotecas e plugins para localização:
Sinta-se livre para adicionar / editar.
fonte
A Mozilla lançou recentemente o incrível L20n ou localização 2.0. Em suas próprias palavras, L20n é
Sua implementação js está no repositório github L20n.
fonte
Alguns deles são nativos, o restante está disponível através de bibliotecas.
Por exemplo, Datejs é uma boa biblioteca de datas internacional.
Quanto ao resto, trata-se de tradução de idiomas e o JavaScript é nativamente compatível com Unicode (assim como todos os principais navegadores).
fonte
Você também pode tentar outra biblioteca - https://github.com/wikimedia/jquery.i18n .
Além da substituição de parâmetros e de várias formas plurais, ele suporta o gênero, um recurso bastante exclusivo das regras gramaticais personalizadas necessárias para alguns idiomas.
fonte