Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 08 - JSTL – Internacionalização, Taglib functions e expression language

A taglib I18N

A biblioteca I18N implementa funcionalidades que nos ajuda a construir sistemas Web internacionalizáveis, ou seja, cujas mensagens mostradas são configuradas de acordo com a localidade ou preferências do usuário. Essas funcionalidades são importantes, quando se deseja construir uma aplicação que será usada em diferentes idiomas, como veremos nos exemplos mais adiante.

O quadro a seguir mostra as principais funções da I18N.

Área Funcionalide Tags Prefixo
I18N Definição de Localidade setLocale fmt
Mensagens bundle
message
param
setBundle
Formatação formatNumber
formatDate
Quadro 1 - Principais funções definidas pela I18N.

Curiosidade

O nome I18N vem de Internationalization (em português, internacionalização), que começa com I, termina com N e tem 18 letras intermediárias. Nome grande, não é?

Comecemos nossos estudos pela tag de definição de localidade fmt:setLocale. Essa tag permite definir qual locale (combinação de idioma e região) será usado para exibir os itens sensíveis à localidade. O Locale será definido dentro dos seguintes escopos: a página (escopo padrão); a requisição; a sessão; ou a aplicação. A tag fmt:setLocale sobrescreve o Locale definido pelo browser do usuário, ou seja, mesmo que o browser do usuário esteja configurado com o Locale en_US (inglês dos Estados Unidos), por exemplo, nós podemos usar a tag fmt:setLocale para definir a localidade para pt_BR (português do Brasil) e a configuração do browser será ignorada. Note que a String da localidade é formada por 5 caracteres, dois que indicam o idioma, um separador “_” e o país. Isso é necessário, pois o mesmo idioma pode variar de país para país (português do Brasil e de Portugal, inglês dos Estados Unidos e da Inglaterra, etc.).

A Listagem 1 apresenta o uso da tag fmt:setLocale da taglib fmt

Listagem 1 - Código JSP que define o idioma da página JSP para inglês americano.

Um detalhe que vale a pena mencionar é que a tag fmt:setLocale é uma tag de configuração, logo, o seu corpo deve ser deixado vazio e seu escopo pode ser mais abrangente que apenas uma página. Note também que é necessário utilizar no início da página o código: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> para indicar que também se deseja utilizar a taglib “fmt”, necessária para o i18N.

Uma vez que explicamos a funcionalidade dessa tag, vamos, agora, mostrar e explicar cada um dos seus atributos.


Atributo Descrição Obrigatório Valor default
value String ou expressão que, quando avaliada, resulta em uma String ou java.util.Locale. Sim
scope Escopo onde a variável que representa o Locale será armazenada. Não Página
Quadro 2 - Atributos da tag fmt:setLocale

Na Listagem 1, vimos o uso do atributo value que pode ser uma String, como, por exemplo, pt_BR, ou uma expressão que será avaliada para Java.lang.String ou Java.util.Locale. O atributo scope já é um velho conhecido nosso e tem a mesma característica que vimos antes.

Versão 5.3 - Todos os Direitos reservados