Невозможно установить разные шрифты для разных языков без различения фрагментов текста по языку на уровне разметки. Обычно вы используете теги <span>
с атрибутом class
, атрибутом lang
или обоими. Атрибут lang
является логическим выбором, тогда как styleling работает несколько более надежно при использовании class
(поскольку селекторы class
поддерживаются всеми браузерами с поддержкой CSS).
Обратите внимание, что вам может понадобиться такая разметка и для других целей. В случае арабского текста на страницах с преобладанием английского языка обычно лучше использовать разметку bdi
вместе с атрибутами lang=ar
и dir=rtl
, а также bdi { unicode-bidi: embed }
в CSS, чтобы справиться с направленностью. (В вашем сообщении текст на арабском языке в начале, то есть справа, смещен в начале, то есть справа из-за проблем с направленностью.)
Можно использовать код на стороне клиента, который запускает некоторую программу угадывания языка и соответствующим образом модифицирует DOM, но это ненадежно и несколько сложно.
Как правило, все копии текста в документе должны быть одного шрифта. Это может быть трудно обработать (нет действительно всеобъемлющего шрифта, который можно успешно использовать на веб-страницах), и на некоторых языках могут потребоваться специальные шрифты на практике. Но есть несколько разумных шрифтов, например, английский и арабский.