Можно ли обнаружить поддержку восточноазиатских языков?

StackOverflow https://stackoverflow.com/questions/604993

Вопрос

Я работаю над игрой для запоминания javascript, которая требует отображения японских символов.Существует ли кроссбраузерный способ (ы) обнаружения поддержки азиатских языков, в частности японского?

window.navigator.язык будет установлен в качестве языка браузера, но не будут доступны пользователи, которые не используют японский в качестве языка своего браузера (?).

Это было полезно?

Решение

Существует ли кроссбраузерный способ (ы) обнаружения поддержки азиатских языков, в частности японского?

Вы просто имеете в виду “установлен ли японский шрифт”?Потому что единственный другой аспект “поддержки азиатских языков”, который могут настроить современные операционные системы, связан с тем, известны ли кодировки символов, такие как Shift-JIS (они же кодовая страница 932 в Windows).Но вам, как правило, это все равно не нужно, поскольку вы можете просто использовать UTF-8, который намного чище и поддерживается везде.

Как правило, вы не можете напрямую определить, установлен шрифт для определенного диапазона символов или нет, но есть обходные пути.Как, например, измерение отображаемого размера текста на странице:

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

Это временно создает элементы, содержащие варианты катаканы ‘а’ в половину ширины и во всю ширину.Если доступен японский шрифт, мы бы ожидали, что они будут разной ширины.Если такого шрифта не существует, они, скорее всего, будут отображаться как похожие глифы ‘unrenderable character’ с одинаковой шириной.

Другие советы

Возможно, ваш сервер сможет проверить Accept-Charset заголовок, если он не содержит японских символов, перенаправьте на страницу предупреждения.К сожалению, поскольку этот поток указывает, что заголовки недоступны для javascript.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top