Клавиша / esc

font-language-override

Вручную указываем шрифту, глифы какого языка использовать.

Время чтения: меньше 5 мин

Кратко

Скопировано

font-language-override говорит шрифту, какой язык использовать при выборе глифов — независимо от того, что написано в атрибуте lang. Помогает, когда у шрифта нет правил для редкого языка: можно подсунуть родственный язык с похожим поведением глифов.

Пример

Скопировано
        
          
          .text-az {  font-language-override: "TRK";}
          .text-az {
  font-language-override: "TRK";
}

        
        
          
        
      

Текст на азербайджанском будет отображаться с турецкими начертаниями: в азербайджанском, как и в турецком, «i» с точкой и «ı» без точки — разные буквы, и шрифт должен это учитывать.

Открыть демо в новой вкладке

Как понять

Скопировано

Многие шрифты хранят для одних символов разные начертания и переключают их в зависимости от языка. Браузер определяет язык по атрибуту lang и просит шрифт показать подходящие глифы.

Классический пример — лигатура fi, где точка над «i» сливается с верхушкой «f». Для большинства языков это красиво, но в турецком есть две разные буквы: «i» с точкой и «ı» без точки. Лигатура здесь недопустима — она превращала бы одну букву в другую. Хороший шрифт знает об этом и для турецкого лигатуру не подставляет.

font-language-override нужен, когда автоматики не хватает. Если в шрифте нет правил для конкретного языка, он может взять «дефолтные» начертания и ошибиться. Свойство позволяет вручную назначить похожий язык с нужным поведением.

Значение задаётся не привычным кодом вроде tr или az, а тегом из таблицы языков OpenType: ENG для английского, KOR для корейского, TRK для турецкого.

Как пишется

Скопировано

У свойства два варианта значения.

normal

Скопировано

Значение по умолчанию. Браузер выбирает начертания по атрибуту lang, ручная подмена не происходит.

<строка>

Скопировано

Тег языка из таблицы OpenType, обязательно в кавычках. Браузер просит шрифт отрисовать глифы для указанного языка, игнорируя lang. Если в шрифте нет начертаний под этот тег — ничего не сломается, останутся обычные глифы.

Подсказки

Скопировано

💡 До недавнего времени свойство поддерживал только Firefox (с версии 34). Chrome и Edge добавили поддержку в версии 143, Safari пока не поддерживает. Проверяйте актуальные данные перед использованием в продакшене.

💡 В большинстве случаев font-language-override не нужен. Правильно проставленный атрибут lang уже включает нужные начертания, а шрифт делает остальное сам. Тянуться к этому свойству стоит лишь тогда, когда шрифт ошибается с языком, а заменить его нельзя.

Поддержка в браузерах:
  • Chrome 143, поддерживается
  • Edge 143, поддерживается
  • Firefox 34, поддерживается
  • Safari, не поддерживается
О Baseline