wplang.ru wordpress WP Lang

Как удалить неиспользуемые языковые файлы и переводы в WordPress

При работе с WordPress на мультиязычных сайтах или сайтах с поддержкой нескольких локалей часто накапливаются неиспользуемые языковые файлы (.mo, .po). Они занимают место на сервере, могут замедлять загрузку сайта и создавать путаницу при обновлениях. В этой статье я расскажу, как безопасно и эффективно удалить лишние языковые файлы и переводы в WordPress, а также приведу примеры кода и плагины, которые помогут в этом.

Почему важно удалять неиспользуемые языковые файлы? Оптимизация и безопасность

Неиспользуемые языковые файлы — это лишний «мусор» в структуре сайта. Они увеличивают размер резервных копий, замедляют работу файловых операций и могут привести к конфликтам при обновлениях, если плагины или темы пытаются обратиться к этим файлам. Также избыток языковых файлов усложняет управление переводами, особенно при ручном редактировании.

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

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

Как определить, какие языковые файлы не нужны? Анализ и проверка

Первый шаг — понять, какие языковые файлы реально используются сайтом. Для этого:

  • Проверьте текущий язык сайта, установленный в Settings > General > Site Language.
  • Используйте FTP или файловый менеджер хостинга, чтобы просмотреть папки /wp-content/languages/, /wp-content/plugins/ и /wp-content/themes/.
  • Обратите внимание на файлы .mo и .po, например, ru_RU.mo, fr_FR.mo и так далее.
  • Если вы не используете определённый язык ни на сайте, ни в плагинах или темах, эти файлы можно считать неиспользуемыми.

Также для анализа можно установить плагин Clean Up Translations, который показывает статистику используемых языков и помогает удалить ненужные локализации.

Удаление неиспользуемых языковых файлов вручную

Если вы уверены, что определённые языковые файлы не нужны, их можно удалить вручную через FTP или файловый менеджер:

  1. Подключитесь к серверу через FTP.
  2. Перейдите в /wp-content/languages/ и удалите ненужные файлы .mo и .po.
  3. Аналогично проверьте папки /wp-content/plugins/ и /wp-content/themes/, удалите локализации неиспользуемых языков.

Важно: перед удалением сделайте резервную копию файлов.

Автоматизация очистки языковых файлов с помощью кода

Для разработчиков предлагаю пример функции, которая сканирует папку языков сайта и удаляет файлы, не соответствующие текущему языку сайта. Назовём функцию wplangru_clean_unused_languages():

function wplangru_clean_unused_languages() {
    $current_locale = determine_locale(); // Текущий язык сайта
    $languages_dir = WP_CONTENT_DIR . '/languages';

    if (!is_dir($languages_dir)) {
        return;
    }

    $files = scandir($languages_dir);

    foreach ($files as $file) {
        if (preg_match('/\.mo$|\.po$/', $file)) {
            // Проверяем, содержит ли имя файла текущий язык
            if (strpos($file, $current_locale) === false) {
                $file_path = $languages_dir . '/' . $file;
                @unlink($file_path); // Удаляем файл
            }
        }
    }
}

Эту функцию можно запускать вручную через админ-панель, wp-cli или добавить в отдельный файл плагина для периодической очистки. Обратите внимание, что функция удалит все языковые файлы, которые не совпадают с текущей локалью, так что используйте её с осторожностью и после резервного копирования.

Плагины для управления языковыми файлами

Кроме ручного и программного удаления, существуют плагины для удобного управления языковыми файлами:

  • Clean Up Translations — как уже упомянуто, помогает выявить и удалить неиспользуемые языковые файлы.
  • Clearfy Pro — многофункциональный плагин оптимизации, который умеет удалять лишние языковые файлы вместе с другими ненужными элементами сайта. Подробнее — на wpshop.ru.

Использование плагинов удобно, если вы не хотите рисковать и предпочитаете графический интерфейс.

Учет переводов плагинов и тем: дополнительные советы

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

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

Также полезно использовать фильтры WordPress для контроля загрузки языковых файлов. Например, с помощью фильтра load_textdomain_mofile можно программно отключить загрузку ненужных локалей.

Пример использования фильтра для блокировки загрузки языков

Ниже пример, который запрещает загрузку языковых файлов, если они не совпадают с текущей локалью сайта:

add_filter('load_textdomain_mofile', function($mofile, $domain) {
    $current_locale = determine_locale();
    if (strpos($mofile, $current_locale) === false) {
        return false; // Отключаем загрузку
    }
    return $mofile;
}, 10, 2);

Этот код можно добавить в файл functions.php вашей темы или в кастомный плагин. Он не удаляет файлы с сервера, но предотвращает их загрузку, что тоже помогает оптимизировать работу сайта.

Итоговые рекомендации

  • Всегда делайте резервные копии перед удалением языковых файлов.
  • Определяйте текущие и нужные языки сайта и плагинов, чтобы не удалить важные переводы.
  • Используйте ручное удаление для точечного контроля и плагины для удобства.
  • Автоматизируйте очистку с помощью кода, но тщательно тестируйте изменения.
  • Используйте фильтры WordPress для контроля загрузки языковых файлов.

Такой подход позволит держать ваш WordPress-сайт чистым, быстрым и оптимизированным с точки зрения языковых ресурсов.

×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙