domingo, 12 de maio de 2013

“Internacionalização”

“Internacionalização” Isso quer dizer: torná-lo acessível para outras nacionalidades e idiomas. Um sistema internacional é um padrão reconhecido e compreendido por diversos países do globo. O famoso S.I. - Sistema Internacional de Medidas - por exemplo. Um software internacional é um software acessível por diversos países do globo, principalmente no aspecto do idioma.


O que há de novo

Os recursos de Internacionalização do Django  permanecem como estavam. É uma solução pioneira e vencedora, e as alterações foram apenas melhorias aqui ou ali. Mas agora entraram as novas funções de Localização a começar pelas novas settings:
  • DATE_INPUT_FORMATS - determina uma tupla com os formatos aceitos para campos de data em formulários. O primeiro item da tupla será usado como default;
  • DATETIME_INPUT_FORMATS - determina uma tupla com os formatos aceitos para campos de data/hora em formulários. O primeiro item da tupla será usado como default;
  • DECIMAL_SEPARATOR - determina qual é o separador decimal para valores monetários (nos EUA o padrão é o ponto e no Brasil é uma vírgula);
  • FIRST_DAY_OF_WEEK - determina qual é o primeiro dia da semana (em alguns países o padrão é a segunda-feira - 1);
  • FORMAT_MODULE_PATH - determina o pacote em Python que contém os módulos para customização das demais settings desta lista. Isto é importante para mudar as configurações padrão e acredite: você vai precisar;
  • NUMBER_GROUPING - determina o intervalo de algarismos que deve-se usar um separador de milhar em valores monetários. Normalmente são 3;
  • SHORT_DATE_FORMAT - formato “curto” padrão para data em templates;
  • SHORT_DATETIME_FORMAT - formato “curto” padrão para data/hora em templates;
  • THOUSAND_SEPARATOR - caractere separador de milhar para valores monetários (nos EUA o padrão é uma vírgula e no Brasil é um ponto);
  • TIME_INPUT_FORMATS - determina uma tupla com os formatos aceitos para campos de hora em formulários. O primeiro item da tupla será usado como default;
  • USE_L10N - caso seja True, determina que o seu projeto habilite a localização (para sistemas brasileiros, é necessário, da mesma forma como o USE_I18N, mas para softwares estritamente americanos, pode ser False para tornar o projeto mais leve);
  • USE_THOUSAND_SEPARATOR - caso seja True, determina que o projeto deve formatar e aceitar valores monetários com separador de milhar.
Settings antigas, mas que eram praticamente ignoradas pelo Django em termos práticos, também foram corrigidas e adaptadas às novas funções. São elas:
  • DATE_FORMAT
  • DATETIME_FORMAT
  • TIME_FORMAT
Todas as três settings acima agora funcionam com o propósito que sempre alegaram em sua documentação, ou seja: são usadas para formatar data, data/hora e hora em templates.

Habilitando a Localização em seu projeto

A setting USE_L10N é desabilitada por padrão, e deve ser declarada no arquivo settings.py como True.
Somente isso é suficiente para que tudo funcione em 99%.
O padrão para datas ainda prioriza o formato “%Y-%m-%d“ acima do mais habitual “%d/%m/%Y“. Para corrigir isso você deve fazer os seguintes passos:
  1. Criar arquivos e pastas na seguinte estrutura:
    seu_projeto/
      formats/
        __init__.py
        pt_BR/
          __init__.py
          formats.py
    
  2. O arquivo “formats.py” deve conter o seguinte:
    DATE_INPUT_FORMATS = ('%d/%m/%Y', '%d/%m/%y', '%Y-%m-%d',)
    
  3. Definir a setting FORMAT_MODULE_PATH com o valor 'formats';
Feito isso, seus forms vão trabalhar naturalmente com o formato de data “dia/mês/ano”.
http://www.marinhobrandao.com/media/uploads/gallery-file/exemplo-localizacao.png








Nenhum comentário:

Postar um comentário