Pergunta

Eu estou trabalhando em um jogo de memorização javascript que requer que os caracteres japoneses a ser exibido. Existe uma maneira cross browser (s) de detectar o suporte para idiomas asiáticos, ou japonês, especificamente?

window.navigator.language será definido como o idioma do navegador, mas perde-se pessoas que não definidas japonês como língua navegadores (?).

Foi útil?

Solução

Existe uma maneira cross browser (s) de detectar o suporte para idiomas asiáticos, ou japonês, especificamente?

Você apenas média “há uma fonte japonesa instalada”? Porque o único outro aspecto de “suporte para idiomas asiáticos” que a moderna OSs pode ter configurado é fazer com o fato de codificação de caracteres como Shift-JIS são conhecidos (aka página de código 932 no Windows). Mas você geralmente não precisa isso de qualquer maneira, pois você pode apenas usar UTF-8, que é muito mais limpo e apoiado em todos os lugares.

Em geral, você não pode dizer diretamente se uma fonte para uma variedade caráter particular está instalado ou não, mas existem maneiras rotunda. Como por exemplo a medição do tamanho processado de texto on-page:

var half= document.createElement('span');
var full= document.createElement('span');
half.appendChild(document.createTextNode('\uFF71'));
full.appendChild(document.createTextNode('\u30A2'));
document.body.insertBefore(half, document.body.firstChild);
document.body.insertBefore(full, document.body.firstChild);
var havejapanesefont= half.offsetWidth!=full.offsetWidth;
document.body.removeChild(half);
document.body.removeChild(full);

Isso cria temporariamente elementos contendo meia largura e de largura total variantes do katakana ‘a’. Se uma fonte japonês está disponível seria de esperar que eles sejam diferentes larguras. Se não existe tal fonte, eles provavelmente irão ser processado como glifos semelhantes ‘unrenderable caráter’ com a mesma largura.

Outras dicas

O seu servidor pode ser capaz de verificar o Accept-Charset cabeçalho, se é um que não inclui caracteres japoneses, redirecionamento para uma página de aviso. Infelizmente, como esta discussão indica , os cabeçalhos não estão disponíveis para javascript.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top