Pregunta

Estoy trabajando en un juego de memorización de JavaScript que requiere que se muestren los caracteres japoneses. ¿Hay alguna (s) forma (s) de navegador para detectar la compatibilidad con idiomas asiáticos o específicamente con el japonés?

window.navigator.language se establecerá en el idioma del navegador, pero omite a las personas que no configuran el japonés como idioma de su navegador (?).

¿Fue útil?

Solución

  

¿Hay una o varias formas de navegador para detectar la compatibilidad con idiomas asiáticos o específicamente con el japonés?

¿Quieres decir simplemente "¿hay una fuente japonesa instalada"? Debido a que el único otro aspecto del "soporte para idiomas asiáticos" que los SO modernos pueden haber configurado es si las codificaciones de caracteres como Shift-JIS son conocidas (también conocida como página de códigos 932 en Windows). Pero generalmente no lo necesita, ya que solo puede usar UTF-8, que es mucho más limpio y compatible en todas partes.

En general, no se puede saber directamente si una fuente para un rango de caracteres en particular está instalada o no, pero hay formas indirectas. Como por ejemplo, medir el tamaño renderizado del texto en la página:

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);

Esto crea temporalmente elementos que contienen variantes de ancho medio y ancho completo del katakana ‘a’. Si hay una fuente japonesa disponible, esperaríamos que tengan anchos diferentes. Si no existe tal fuente, lo más probable es que se representen como glifos similares de "caracteres que no se pueden amortizar" con el mismo ancho.

Otros consejos

Su servidor podría revisar el El encabezado Accept-Charset , si es uno que no incluye caracteres japoneses, redirige a una página de advertencia. Desafortunadamente, como este hilo indica , los encabezados no están disponibles para javascript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top