Tenho uma aplicação web que roda num servidor linux. Estou tendo alguns problemas de acentuação e datas na aplicação, pois o idioma do linux é inglês. Alguém sabe alguma forma, ou se existe alguma maneira de setar alguma variável no sistema operacional linux colocando a linguagem do sistema em português?
Você pode iniciar seu servidor de aplicações (se ele for Java, é claro) incluindo as seguintes opções para o Java: -Duser.language=pt -Duser.country=BR
(Como não sei o que você está usando, não posso lhe dizer com detalhes onde é que você tem de pôr essas opções de inicialização do Java.)
Ou você pode reconfigurar seu Linux para usar o “locale” português-Brasil. Para isso, consulte seu administrador de sistemas.
Estou usando java 5, com o tomcat 5.5.17. Onde coloco esta configuração “-Duser.language=pt -Duser.country=BR” que você disse?
Já tentamos colocar um export LANG=pt_BR, mas não funcionou.
Fiz um teste na minha máquina, que possui windows, configurei o idioma do meu sistema operacional para inglês e acontece o mesmo do servidor, que é em inglês. Queria achar alguma configuração no linux que faz a função de setar o idioma do sistema operacional.
Seu problema pode estar relacionado com os charsets. O java herda o charset em uso na plataforma e, por default, acaba sendo o UTF-8 em sistemas mais recentes.
Altere seu script de startup do TOMCAT para definir as variáveis de ambiente LC_ALL e LANG para variantes que não usem UTF, e sim ISO-8859-1.
Tá quase dando certo…
Agora a data é que não está no formato desejado, por exemplo 01/01/2007, está assim: 01-jan-2007.
Isso é alguma coisa no sistema operacional ou na JVM que tem que configurar. Fiz alguns testes rodando na minha máquina e quando mudo o formato da data no meu windows, consequentemente muda também na aplicação.
Essa formatação não é default (dd/MM/yyyy) e deve ser alterada na sua aplicação. (A formatação que você usou - MEDIUM - é d-MMM-yyyy no caso português-Brasil, e MMM-d-yyyy no caso inglês-Estados Unidos.)