Como obter a renderização de fonte japonesa adequada usando o idioma inglês no Windows

4

Alguns aplicativos estão mostrando um comportamento estranho ao renderizar fontes em japonês. A fonte usada para kanji é chinesa e parece realmente estranha, especialmente em tamanhos pequenos, onde não é anti-aliased.

Se eu definir meu idioma de exibição como japonês, sair e entrar novamente, o problema desapareceu.

A fonte solicitada (selecionada na interface do usuário do aplicativo) é Segoe UI. As fontes reais usadas para renderização são "MS Mincho" para hiragana e "SimSun" para kanji.

Eu olhei para o registro em Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

E o Segoe UI tem a entrada correta:

TAHOMA.TTF,Tahoma
MEIRYO.TTC,Meiryo UI,128,96
MEIRYO.TTC,Meiryo UI
MSGOTHIC.TTC,MS UI Gothic
MSJH.TTC,Microsoft JhengHei UI,128,96
MSJH.TTC,Microsoft JhengHei UI
MSYH.TTC,Microsoft YaHei UI,128,96
MSYH.TTC,Microsoft YaHei UI
MALGUN.TTF,Malgun Gothic,128,96
MALGUN.TTF,Malgun Gothic
MINGLIU.TTC,PMingLiU
SIMSUN.TTC,SimSun
GULIM.TTC,Gulim
YUGOTHM.TTC,Yu Gothic UI,128,96
YUGOTHM.TTC,Yu Gothic UI
SEGUISYM.TTF,Segoe UI Symbol

O SimSun está listado, mas o MS UI Gothic e o YaHei possuem esses caracteres.

Algumas referências que verifiquei:

Renderização incorreta:

resultar em bloco de notas e emclient

Nicolas Goy
fonte
Uniscribe não tem contexto para o texto e, portanto, não tem idéia de qual fonte "deveria" ser a correta.
Ignacio Vazquez-Abrams
A coisa é, tudo funciona bem usando o japonês como o Windows exibido idioma, por isso deve haver algumas configurações afetadas.
Nicolas Goy

Respostas:

3

O problema pode estar nos aplicativos que você está usando, escolhendo a fonte incorreta porque sua localidade é o inglês ou pode estar com o Windows armazenando em cache a fonte incorreta.

Uma solução muito antiga, que ainda pode funcionar, é criar um arquivo chamado 火.txt(ou similar se não for japonês, já que não conheço nenhum deles) e salvá-lo em sua área de trabalho e depois reinicializá-lo. A lógica aqui é que, quando o Windows for inicializado, ele armazenará em cache a fonte correta.


Outro método antigo é alterar a localidade do sistema para japonês e depois para o inglês, sem reinicializar, o que provavelmente funciona ao invalidar o cache de fontes.


Uma solução mais moderna é induzir os aplicativos a pensar que eles foram lançados no idioma japonês. Um utilitário que simplifica isso é o Emulador de Locale gratuito .

Emulador de localização

harrymc
fonte
Nenhuma dessas soluções mudou nada. Eu estava esperançoso com o emulador de localidade, já que o problema não está em todas as aplicações, mas também não funcionou.
Nicolas Goy
Aqui estão mais dois: Ntlea e thcrap . Parece que muitas pessoas tiveram esse mesmo problema.
harrymc
Na verdade eu sou um idiota, a solução de emulador de localidade funciona, mas o aplicativo com o qual eu estava testando tinha um processo em segundo plano. Depois que o processo em segundo plano é interrompido e o aplicativo é reiniciado com o emulador de localidade, ele funciona.
Nicolas Goy
Estou feliz que isso tenha funcionado para você.
harrymc