Question

Je travaille sur un jeu de mémorisation javascript qui nécessite l'affichage de caractères japonais. Existe-t-il un ou plusieurs moyens de détecter le support des langues asiatiques, ou du japonais en particulier, entre les navigateurs?

window.navigator.language sera défini sur la langue du navigateur, mais les personnes qui ne le configurent pas en japonais (?) sont ignorées.

Était-ce utile?

La solution

  

Existe-t-il une méthode de détection du support pour les langues asiatiques, ou le japonais en particulier, entre les navigateurs?

Voulez-vous simplement dire & # 8220; une police japonaise est-elle installée & # 8221 ;? Parce que le seul autre aspect de la & # 8220; prise en charge des langues asiatiques & # 8221; que les systèmes d’exploitation modernes peuvent avoir configurés est liée à la connaissance des codages de caractères tels que Shift-JIS (page de codes 932 sous Windows). Mais vous n’avez généralement pas besoin de cela, car vous pouvez simplement utiliser UTF-8, qui est beaucoup plus propre et supporté partout.

En général, vous ne pouvez pas savoir directement si une police est installée ou non pour une plage de caractères particulière, mais il existe des moyens détournés. Comme par exemple mesurer la taille de rendu du texte sur la 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);

Ceci crée temporairement des éléments contenant des variantes de katakana & # 8216; a # 8217 ;. Si une police japonaise est disponible, nous nous attendons à ce qu'elles soient de largeurs différentes. Si aucune police de ce type n’existe, elles seront très probablement rendues avec le caractère immuable similaire # # 8217; des glyphes de même largeur.

Autres conseils

Votre serveur pourra peut-être consulter le En-tête Accept-Charset , si l'en-tête n'inclut pas de caractères japonais, redirigez-le vers une page d'avertissement. Malheureusement, comme ce fil indique , les en-têtes ne sont pas disponibles en javascript.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top