WPML

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

Принцип работы модуля Перевод строк в WPML со временем менялся. Нашей целью всегда было позволить Вам переводить любой текст на Вашем сайте при минимальной нагрузке на сервер.

В последние годы плагины и темы оформления стали больше и используют гораздо больше переводимых строк. Типичная страница админ-панели, на которой открывается конструктор страниц, WooCommerce и несколько других крупных плагинов, может загружать из базы данных более 30 000 строк. Такой рост количества переводимых строк привел к замедлению работы сайтов с модулем Перевод строк. WPML позволяет Вам переводить все на странице, и когда он фильтрует такое количество строк, процессор и база данных испытывают нагрузку.

Сегодня мы готовы представить новую версию, которая полностью меняет принцип работы Перевода строк. В этом новом релизе есть два основных изменения:


  • Обработка только тех строк, которые Вы хотите перевести

  • Использование файлов .mo для применения переводов

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

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

Генерация файлов .mo


Модуль Перевод строк WPML автоматически управляет генерацией и обслуживанием файлов .mo. Это происходит каждый раз, когда Вы переводите строку на странице WPML -> Перевод строк.

Однако после обновления до этой бета-версии Вам потребуется сгенерировать файлы в первый раз.

Если до обновления на Вашем сайте были переведенные строки, после обновления модуля Перевод строк Вы увидите следующее диалоговое окно на любой странице админ-панели:


Диалоговое окно генерации файлов .mo

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

Для этого:


  1. Перейдите в WPML -> Поддержка.

  2. Нажмите ссылку Поиск и устранение неисправностей.

  3. Прокрутите страницу до конца и нажмите Show custom MO Files Pre-generation dialog box.

  4. Перезагрузите страницу (этот шаг не потребуется в финальном релизе).

  5. Появится диалоговое окно, позволяющее повторно сгенерировать файлы .mo.

Результаты


Эта версия уже работает на всех наших рабочих сайтах (WPML.org, Toolset.com и ICanLocalize.com). Она работает без сбоев, и серверы справляются отлично. Модуль Перевод строк никогда не был существенным фактором, влияющим на производительность наших сайтов, поэтому для анализа производительности мы используем другие сайты.

Мы получили десятки сайтов от клиентов, где влияние модуля Перевод строк было гораздо более значительным. На всех этих сайтах мы подтверждаем, что нагрузка на сервер, вызванная модулем Перевод строк, практически упала до нуля. Теперь эти сайты загружаются примерно в два раза быстрее, чем раньше (ура!).

Текущий статус разработки


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

Если Вы перешли на эту бета-версию и по-прежнему сталкиваетесь со значительными проблемами производительности, связанными с WPML, мы хотим взглянуть на Ваш сайт. Мы можем обнаружить другие очаги проблем с производительностью, которые нам нужно устранить. Мы хотим убедиться, что к моменту выхода рабочей версии ни у кого не возникнет проблем с производительностью, связанных с WPML. Наша цель — выпустить рабочий релиз WPML 4.3 в первой половине сентября.

Скачивание и тестирование

Помните, что эта версия пока не работает на мультисайтах!

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

Автоматическое обновление


Чтобы получить эту бета-версию, перейдите в Плагины -> Добавить новый и откройте вкладку Коммерческие:
Вкладка «Коммерческие»

На этой странице включите канал Beta и обновите плагины автоматически.

Посетите нашу страницу об установке бета-версий WPML для получения подробной информации.

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

Ручное обновление


Вы также можете выполнить обновление вручную.

Для этого следуйте инструкциям в статье Обновление WPML вручную (даже если там упоминается старая версия WPML, процесс абсолютно такой же).

Есть отзывы?


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

Оставляйте свои комментарии, и мы обязательно Вам ответим.

Обновление – 2019-08-16


Мы выпустили новую бета-версию, в которой исправлены следующие проблемы:

  1. Несовместимость с WPML Multilingual & Multicurrency for WooCommerce: Вы можете установить либо текущий релиз, либо бета-версию WPML Multilingual & Multicurrency for WooCommerce, включенную в этот релиз.

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

Известные проблемы на данный момент


Мы все еще работаем над доработкой некоторых элементов. На сегодняшний день список известных проблем выглядит так:

  1. Мультисайты пока не поддерживаются.

  2. Удаление строк из модуля Перевод строк не обновляет сгенерированный файл .mo.

  3. Удаление всех строк домена не приведет к удалению сгенерированного файла .mo.

  4. После удаления всех строк домена повторная генерация файлов .mo (см. раздел «Генерация файлов .mo» выше, чтобы узнать, как повторно сгенерировать файлы) не приведет к удалению соответствующего файла .mo.

  5. Переведенные тексты администратора возвращали оригинал в функции icl_translate (затрагивает WPML Multilingual & Multicurrency for WooCommerce: «Пользовательская тема писем о новом заказе не переводится»).

Считаете это полезным? Поделитесь этой статьей: