1. I18n e l10n em angularjs
1. O que são i18n e l10n?
A internacionalização, referida como I18N, é um padrão para o desenvolvimento de produtos de uma maneira que eles possam simplesmente localizar a linguagem e a cultura do produto. A localização, conhecida como L10N, é um padrão que permite que aplicativos e textos se adaptem aos mercados culturais ou de idiomas especiais. Para os desenvolvedores de aplicativos, internacionalizar um programa significa que todas as cordas e outras áreas precisam ser extraídas do programa onde são mais especiais (como formatos de data e moeda). Localizar um programa significa fornecer tradução e formato de localização de blocos extraídos da I18N.
2. Quais níveis de I18N e L10N são atualmente suportados pelo Angular?
Atualmente, o Angular fornece suporte a I18N e L10N para filtros de tempo, número e moeda.
Além disso, o Angular suporta localização diversificada através da Diretiva Ngpluralize (http://docs.angularjs.org/api/ng.directive:ngplurize).
Todos os controles localizáveis dependem do conjunto de regras de recurso de configuração do local gerenciado através do Serviço $ Locale.
Para permitir que os leitores vejam exemplos reais, o funcionário preparou alguns exemplos de páginas da web para mostrar como usar filtros angulares para coletar variáveis por meio de regras da região. Podemos encontrar exemplos correspondentes no github (https://github.com/angular/angular.js/tree/master/i18n/e2e) ou em i18n/e2e no pacote de desenvolvimento angular.
3. O que é um ID regional?
A localidade é uma região geográfica, política e cultural específica. O ID do local mais usado consiste em duas partes: código de idioma e código de país. Por exemplo, en-us, en-Au e ZH-CN são todos IDs de localidade válidos, todos contendo códigos de idiomas e códigos de país. Como a codificação do país especificada no ID da localidade é opcional, os IDs de localidade como EN, ZH e SK são todos válidos. Confira o site UTI (http://userguide.icu-project.org/locale), onde há mais informações sobre o ID do localidade.
4. Local de suporte angular
O Angular separa o conjunto de regras para números, formatos de data e hora em diferentes arquivos, cada arquivo tem uma área exclusiva. Podemos encontrar a lista de localidade atualmente suportada aqui (https://github.com/angular/angular.js/tree/master/i18n/locale)
2. Personalize as regras de localidade em angular
Existem duas maneiras de personalizar a localidade no Angular:
1. Conjuntos de regras pré-conceituados
Podemos implementar o arquivo de localidade esperado conectando o arquivo específico do localidade ao angular.js ou angular.min.js.
Por exemplo, em *nix, podemos criar um arquivo angular.js contendo as regras de localização regional alemã através do seguinte comando:
gat angular.js i18n/angular-cale_de-ge.js> angular_de-ge.js
Quando o aplicativo usa o script angular_de-ge.js em vez do script general angular.js, o Angular começa automaticamente as regras de localização pré-configuradas (pré-configuradas) na Alemanha.
2.
Também podemos incluir arquivos JS na área especificada na página. Por exemplo, se um cliente exigir um arquivo regional alemão, podemos fornecer uma página como a seguinte:
<html ng-app> <head> ... <script src = "angular.js"> </script> <script src = "i18n/angular-locale_de-ge.js"> </script> ... </head> ... </html>
Ambos os métodos acima exigem que forneçamos diferentes páginas de índice.html ou arquivos JS em cada região para localização. Também precisamos configurar nosso servidor para fornecer os arquivos de localidade corretos e desejados.
No entanto, o segundo método (incluindo arquivos de localidade na página) será mais lento, porque mais um script é necessário para carregar. (-_- !!!).
3. Trap ("Getchas")
1. Armadilha de símbolo de moeda
O filtro de moeda da Angular nos permite usar o símbolo da moeda padrão do serviço de localidade e também podemos fornecer símbolos de moeda personalizada. Se nosso aplicativo for usado apenas em uma região, podemos confiar (definir) o símbolo da moeda padrão. No entanto, se esperamos que os usuários de outras regiões também usem nosso aplicativo, devemos fornecer nossos símbolos de moeda personalizada para garantir que o usuário entenda o valor real.
Por exemplo, se queremos vincular o filtro de moeda para exibir o saldo da conta de RMB 1.000: {{1.000 | Moeda}} e nosso aplicativo está atualmente usando o Locale EN-US, então "US $ 1.000,00" será exibido. No entanto, se os usuários de outras regiões (como a China continental) visitarem nosso aplicativo, o navegador do usuário especificará a configuração da região para a "China continental", e o saldo será exibido como "¥ 1000.00" (um erro muito triste, taxa de câmbio ...).
Neste exemplo, quando precisamos definir o filtro, precisamos reescrever o símbolo da moeda padrão, fornecendo símbolos de moeda como parâmetros para filtro de moeda (http://docs.angularjs.org/api/ng.filter:currency), o parâmetro como: USD $. Dessa forma, o Angular ignorará quaisquer alterações no local e continuará mostrando o saldo como "US $ 1000,00".
2. Armadilha de comprimento de tradução
Lembre -se, ao traduzir cordas e formatos de eventos, o comprimento pode variar bastante. Por exemplo, "3 de junho de 1977" se torna "3 de Junio de 1977" quando traduzido para o espanhol. Obviamente, pode haver situações mais extremas. Portanto, quando internacionalizamos a aplicação, precisamos configurar as regras CSS correspondentes e realizar testes abrangentes para garantir que os componentes da interface do usuário não entrem em colapso (variantes).
3. Fuso horário
Lembre -se de que o filtro DateTime da Angular usa o fuso horário definido pelo navegador. Portanto, o mesmo aplicativo exibirá informações de tempo diferentes de acordo com as configurações de fuso horário do computador executando o aplicativo, em vez do fuso horário especificado pelo desenvolvedor em javascript ou angular.