В настоящее время многие шаблоны для Joomla! позволяют выбрать основной шрифт сайта из набора Google Web Fonts. Часто случается так, что выбрав какой-нибудь нестандартный шрифт, который в принципе кириллицу поддерживает, кириллический текст продолжает оставаться без изменений. Латиница выводится как положено, а кириллица все равно отображается стандартными Tahoma-ми, Verdana-ми или Arial-ами.

Происходит это по той простой причине, что шаблоны под самые известные CMS создаются в основном англоязычными разработчиками и они до конца не учитывают тот факт, что их детища могут быть использованы для отображения набора символов, отличного от латинского.

Вообще данная статья относиться конечно не только к Joomla! и прочим системам управления контентом. Хотя, при разработке сайта с нуля, такая проблема наверняка бы не возникла т.к. вы сами подгружали бы нужный шрифт.

Здесь я опишу решение на примере шаблона для Joomla!, построенного на Gantry Framework (четрвертой версии т.к. пятая и другие современные фреймворки позволяют включить кириллицу в настройках). В /libraries/gantry/features/font.php в районе 113 строки происходит следующее:

$gantry->addStyle("{$protocol}://fonts.googleapis.com/css?family=" . str_replace(" ", "+", $name) . $variant . "&subset=latin,latin-ext");

Таким образом во фреймворке реализована подгрузка шрифта с именем, указанным в настройках шаблона. Плюс видно, что присутствует такой параметр, как subset=latin,latin-ext (в некоторых случаях его может и не быть, но его отсутствие проблему не решает). Для того, чтобы кириллица нормально отображалась, необходимо изменить параметр subset на cyrillic или cyrillic-ext (в последнем случае будет еще и поддержка специальных символов). Соответственно меняем вышеуказанную строчку на:

$gantry->addStyle("{$protocol}://fonts.googleapis.com/css?family=" . str_replace(" ", "+", $name) . $variant . "&subset=cyrillic-ext");

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