Considerando que o propósito do Javascript é oferecer um conteúdo interativo em um panorama internacional, seria esperado ver funcionalidades que nos ajudassem nessa tarefa estejam elas implicítas na linguagem ou amplamente disponível em bibliotecas. Mas, surpreendentemente, até o recente anúncio do jQuery e da Microsoft não havia nada disponível.
Bem, essa última afirmação não é totalmente verdade, a IBM tem a patente sobre a globalização JavaScript usando web services. Mas, provavelmente, não fará um round-trip no servidor somente para determinarsse “10/1/2010” refere-se a 10 de janeiro ou 1º de outubro, então é duvidoso que essa patente será aplicada.
A Biblioteca jQuery’s Globalization, desenvolvida em conjunto com a Microsoft, fornece total integração do lado cliente. Com aproximadamente 350 culturas na lista, ela fornece a formatação e análise que a maioria dos websites internacionais precisem.
As atuais funcionalidades no jQuery’s Globalization são pouco modestas. Depois de configurar o campo jQuery.culture para especificar a linguagem ou a linguagem/país, você tem acesso as funcões de análise e formatação de datas e de números inteiros e de pontos flutuantes.
Outro recurso diferenciado é o jQuery.localize. Ele é usado para criar dicionários baseado no par chave/país. Os valores você pode armazenar no formato que desejar, não apenas strings como na maioria dos dicionários. Quando buscamos os valores, a engine procura pela melhor correspondência para o país. Por exemplo, você pode armazenar strings de localização para a França (“fr”) e então substituir pela especialização da cultura como para o Canadá (“fr-CA”). Em tempo de execução irá procurar pela cultura-país em primeiro lugar, e depois verificar apenas se a cultura corresponde a procura.
Por padrão o jQuery traz a cultura Inglês. Culturas adicionais estão separadas em arquivos Javascript que precisam ser referenciados separadamente. Verificar a cultura do usuário ao invés de baixar todas as culturas pode reduzir significativamente a carga.
jQuery Globalization está disponível no GitHub.