Reconhecer caracteres em Chinês

8 respostas
Lauricio

Para alguém que já tenha convertido o seu sistema para chinês Tradicional ou Simplificado.
Já tenho internacionalizado o sistema para os idiomas Inglês, Espanhol (Espanha) Espanhol (México) e agora preciso passar para chinês.
No meu arquivo Login_zh_TW.properties, tenho os caracteres UNICODE que traduzem corretamente para o chinês.
No JDialog, aparece corretamente a palavra (em chinês), porém no JLabel, não reconhece.
Alguém saberia explicar porquê o JDialog reconhece o caracter o JLabel não?

8 Respostas

T

Inscreva-se no Sun Developer’s Connection e acesse o fórum de Internationalization.

http://forum.java.sun.com/forum.jspa?forumID=16

Lá deve haver alguém que possa resolver o seu problema.

T

Dica: parece que o seu JLabel está com a fonte Tahoma, mas que eu saiba, Tahoma não tem os caracteres chineses - tem em hebraico, árabe, mas não em chinês… Veja se dá para usar uma outra fonte que mostre os caracteres. Talvez usando uma das fontes genéricas do JDK (Dialog?) ele mostre os caracteres chineses.

Lauricio

Setando a fonte Cyberbit eu já havia testado e funciona. Porém, minha dúvida é que no JDialog eu não setei essa fonte e funcionou. Minha procura, é tentar solucionar o problema do JLabel sem precisar setar a fonte, que provavelmente o JDialog faz. Aceito sugestões.

fcmartins

Qual JRE e SO você está usando? Testei aqui com a 1.5 update 4 e apareceu perfeito, tanto com o Ocean quanto com o look&feel do Windows.

Nesse bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4615396, é relatado o problema com a fonte Tahoma do Windows 2000, que não suporta chinês simplificado. Eu testei no Windows XP, onde o problema foi corrigido.

Experimente imprimir no console o método getFont().getFontName() do JDialog e do JLabel p/ ver se estão usando as mesmas fontes.

Lauricio

JRE: 1.4.2_08
SO: Win2000
JDialog=Dialog.plain
JLabel=Tahoma
Tudo indica que possa ser isso. Estou procurando onde está setando essa fonte tahoma (mesmo que seja somente para testes) e que eu possa alterá-la mas não estou localizando.

fcmartins

Lauricio:
JRE: 1.4.2_08
SO: Win2000
JDialog=Dialog.plain
JLabel=Tahoma
Tudo indica que possa ser isso. Estou procurando onde está setando essa fonte tahoma (mesmo que seja somente para testes) e que eu possa alterá-la mas não estou localizando.

Essa é a fonte padrão p/ labels, p/ mudar só alterando via código.

Você pode atualizar a fonte Tahoma do seu computador, experimente instalar o IE com a opção de suporte a chinês.

Só uma questão, se esse software vai rodar em computadores com o Windows 2000 chinês, provavelmente a fonte padrão será alguma que exiba corretamente os caracteres, você já testou isso?

Lauricio

Sim, já mudei meu Win2000 para trabalhar com os 3 idiomas (Português, Chinês Tradicional-GB2312 e Chinês Simplificado-Big5). Tanto que no exemplo que enviei, no título da JDialog já apareceram os caracteres chineses (palavra login). Para ativar os idiomas em chinês, utiliza uma sequência de teclas que ativa o PINYIN (conversor de caracteres), neste momento você digita a palavra em chinês e converte para os caracteres. Fica uma bagunça para programar desta maneira, mas vamos lá.
Obrigado pelo auxílio. Vou ver o que faço.

Lauricio

Pessoal, para deixar a solução: o caminho é mudar o LookAndFeel, ou seja, setar diretamente o meu LnF, alterando a fonte do Button, Label, para a fonte chinês. Assim, na entrada do sistema, já seto a fonte para SimSun (para que apareçam os caracteres logo na entrada (o sistema possui uma lista de seleção de idiomas).
Exemplo:

mudaFonte(new Font("SimSun", Font.PLAIN, 12));
private void mudaFonte(Font fonte) {
   UIManager.put("Button.font", fonte);
   UIManager.put("Label.font", fonte);
}

Abraço e obrigadão a todos que auxiliaram.

Criado 12 de julho de 2005
Ultima resposta 13 de jul. de 2005
Respostas 8
Participantes 3