Журнал изменений
Что нового
- Поиск в настройках WPML по словам «scan» или «theme strings» теперь находит сканирование строк темы и плагина.
- В редакторе блоков и редакторе сайта появилась встроенная панель «Язык» на боковой панели со всеми элементами управления старого блока «Язык» для записей, страниц, шаблонов, частей шаблонов, синхронизированных паттернов и навигационных меню.
- Для автоматических переводов появился новый способ доставки. Сервис перевода сообщает Вашему сайту о готовности работы, Ваш сайт забирает ее, и каждая сторона знает, что находится у другой.
- Ваш сайт также самостоятельно проверяет наличие готовых переводов, поэтому брандмауэр или плагин безопасности, блокирующий запросы сервиса, больше не останавливает их.
- В WPMLПоддержка появился новый блок доставки переводов. Он показывает, где находятся Ваши переводы, что не так и что Вы можете сделать сейчас.
- Когда переводы ожидают Вашего участия, консоль и панель администратора сообщают причину: закончились слова, ожидающий или отклоненный платеж, лимит расходов, способ оплаты или заблокированная учетная запись. Ссылка ведет к решению проблемы.
- Если проблема с доставкой требует Вашего участия, Вы получаете одно электронное письмо с указанием решения.
- Раздел «Таксономия» в Панели управления переводами полностью готов. Он показывает статус и объем каждой таксономии, выводит элементы в виде дерева, по которому можно искать, и отправляет их любым методом: автоматически, переводить самому, переводчику или сервису перевода.
- Тексты, относящиеся к элементу, теперь перемещаются вместе с ним, поэтому они отправляются и оплачиваются один раз. Например, тексты Yoast SEO для элемента отправляются вместе с заданием на перевод этого элемента.
- При использовании каталога для языка по умолчанию у корневого URL-адреса появляется новая опция: перенаправление на язык по умолчанию.
- WPML предупреждает, если путь подсайта мультисайта совпадает с языковым каталогом. Новые сайты не могут использовать такой путь, а мастер настройки показывает, какие языковые URL-адреса примет подсайт.
- WPMLПоддержка и WP-CLI могут восстанавливать внутренние ссылки, которые старые версии переписывали на адреса вида ?page_id=.
- Блоки переключателя языков могут скрывать текущий язык из списка, а их настройки отображения стали более понятными.
- WPML может запоминать язык, выбранный посетителем в переключателе языков, и предлагать язык браузера посетителя на панели вместо перенаправления; обе функции работают с кэшированием страниц.
- Перевод, взятый в работу с помощью опции «Переводить самостоятельно», остается в редакторе WordPress без предупреждения о потере изменений, и Панель управления переводами открывает его там же.
- В качестве минимальной версии WPML теперь указывает PHP 7.4, а на старых версиях PHP показывает уведомление вместо остановки работы сайта с ошибкой.
- В разделе НастройкиПеревод ИИ Вы можете выбрать для каждого типа контента (например, шаблонов Elementor), будет ли автоматический перевод ожидать появления контента на сайте.
- Новая команда WP-CLI wp wpml appearance показывает и сбрасывает то, что WPML записал как появившееся на сайте.
- Виджет переключателя языков WPML для Elementor получил новые параметры стиля: фон при наведении, стиль «Активный» для текущего языка и стиль «Выпадающий список» для списка языков.
- Elementor: название и краткое описание сайта из настроек сайта можно перевести в Панели управления переводами, а текст виджета Site Title переводится вместе с его заголовком.
- Усиление безопасности.
Производительность
- Каждый запрос страницы выполняет на два запроса к базе данных меньше, а проверка таблицы языков WPML на мультисайте стала менее ресурсоемкой.
- Список контента в Панели управления переводами загружает свои записи и их языки одним запросом каждый, а не двумя запросами на строку.
- Подсчет количества языков над списками в админ-панели и запросы контента, отображаемого на языке по умолчанию, выполняют меньше работы.
- Если сервис перевода не поддерживает одну из языковых пар сайта, WPML сохраняет этот ответ на час вместо того, чтобы запрашивать его снова на каждой странице админ-панели.
- Сохранение записи больше не очищает языковой кэш WPML, поэтому последующие запросы не перестраивают его.
- При сохранении переведенной записи каждая из ее ссылок обрабатывается один раз и только при изменении ссылок, а не по одному разу для каждого языка.
- При использовании постоянного кэширования объектов, такого как Redis или Memcached, результаты поиска переводов остаются в кэше между запросами и сохранениями.
- Сохранение большой страницы Elementor на сайте с обширной библиотекой медиафайлов больше не приводит к тайм-ауту сервера.
- Загрузка страницы больше не перезаписывает данные WPML об активных плагинах, если ничего не изменилось.
- Страницы с большими меню категорий, такими как меню магазина, загружаются намного быстрее.
- Сохранение записи на сайте с тысячами переводимых произвольных полей больше не приводит к нехватке памяти или времени.
- Мультисайт: при переключении между сайтами настройки WPML считываются один раз для каждого сайта и больше не очищают кэш опций.
- Avada: страницы с условиями отображения Off Canvas загружаются быстрее.
- Переводы от сервисов перевода сохраняются быстрее: WPML считывает поля задания один раз, а не по одному разу для каждого поля.
- Магазины с большим количеством изображений товаров больше не перегружают базу данных: WPML находит язык изображения с помощью собственного индексированного поиска.
- Пакет WPML Multilingual CMS содержит примерно на 1 400 файлов меньше, при этом обновление с WPML 4.9 по-прежнему работает.
- WPML считывает свои небольшие параметры, используемые при каждом запросе, одним запросом при запуске.
- Блочные темы: список страниц фильтрует страницы по языку одним запросом при загрузке страницы, а блок «Навигация» считывает цели своих ссылок и переводы вместе.
- Поиск слагов в переведенной таксономии считывает слаги одним запросом.
- Кэш разрешения URL-адресов больше не перестраивается при каждой загрузке страницы, а его таблица остается небольшой.
- Когда WPML перестраивает свой языковой кэш, он сохраняет языковые настройки один раз за запрос, а не при каждом изменении.
Исправления для автоматического перевода и функции «Переводить все»
- Удаление Ваших учетных данных для сервиса перевода теперь действительно удаляет их, и старые данные больше не возвращаются.
- При включенной функции «Переводить все» сохранение записи больше не ожидает расширенного редактора переводов, из-за чего медленные сохранения приводили к тайм-ауту.
- Сайт, не зарегистрированный для автоматического перевода, получает соответствующее уведомление вместо «Unable to authenticate» или «Connection Error».
- Регистрация сайта для автоматического перевода больше не заканчивается фатальной ошибкой при получении недействительного ответа.
- В настройках перевода ИИ больше не отображается статус «Сохранено», если сохранение было отклонено, и WPML снова регистрирует сайт, если его подпись отклонена.
- Пока сервис перевода ограничивает работу сайта, WPML перестает повторно отправлять ожидающие задания каждые десять минут и отказывается от задания после одного дня неудачных попыток.
- Ограничение на автоматический перевод снимается только тогда, когда его снимает сервис перевода, а не при любом успешном запросе.
- Консоль больше не учитывает ручные задания или задания, которые больше не находятся в сервисе перевода, как переводы, находящиеся в процессе выполнения.
- Неудачное считывание систем перевода вскоре повторяется, вместо того чтобы приводить к сбою подсчета слов для каждого автоматического задания в течение дня.
- При включенной функции «Переводить все» добавление языка больше не открывает повторно категории и другие таксономии для автоматического перевода.
- Функция «Переводить все» переводит страницы редактора блоков, содержащие метабокс другого плагина (например, поля ACF), с только что сохраненными значениями.
- Диалоговое окно «Настроить ограничения контента» больше не открывается само по себе при каждой загрузке Панели управления переводами, если тип записи исключен из функции «Переводить все».
- Редактор записей показывает задание, ожидающее отправки, как выполняющееся, вместо сообщения о том, что отправка на автоматический перевод не удалась.
- Функция «Получить переводы сейчас» сообщает о том, что она загрузила, в течение нескольких секунд.
- Новый сайт, который отправляет контент на автоматический перевод до подключения к сервису перевода, теперь подключается и переводит, а не зависает с ошибкой аутентификации.
- Задание функции «Переводить все», чья первая отправка или подсчет слов завершились неудачей, больше не отправляется повторно с 0 слов.
- Функция «Переводить все» больше не оставляет запись зависшей в статусе ожидания переводчика без задания при прерывании автоматической отправки, а уже зависшие записи отправляются повторно при ежечасной проверке.
- Сохранение записи, автоматический перевод которой ожидает повторной попытки, больше не создает второе задание на перевод.
- Все задания, ожидающие повторной попытки, отправляются при следующем просмотре страницы админ-панели, а не по десять за раз.
- Уведомление «Ваше обновление заменило выполняющийся перевод» отображается сразу после сохранения, а не при следующей загрузке страницы.
- Функция «Переводить все» отправляет страницу редактора блоков с дополнительными полями даже в случае задержки выполнения WP-Cron.
- Отмена выполняющихся автоматических заданий в разделе «Поиск и устранение неисправностей» также освобождает строки, оставленные в процессе выполнения завершившимся автоматическим переводом.
- Автоматический перевод короткой страницы с большим объемом сохраненного контента больше не завершается ошибкой «Failed to parse because your job is above the file size limit».
- Сохранение записи больше не ожидает, пока WPML заберет готовые переводы, на любом хостинге.
- Функция «Переводить все» больше не отправляет неизмененный контент повторно при каждом сохранении после того, как сервис перевода отказался от него. Она делает две попытки, а затем ждет изменения контента.
- Когда функция «Переводить все» заменяет незавершенное задание, она также отменяет старое задание в сервисе перевода.
- Применение измененных настроек произвольных полей к существующим переводам больше не отправляет одну и ту же запись два или три раза, если открыто несколько экранов админ-панели.
- Функция «Переводить все» не отправляет задания для элементов на язык, приостановленный для автоматического перевода.
- Задание, удержанное от автоматической отправки из Панели управления переводами, повторяется как автоматическая работа, а не как ручное задание.
- Функция «Переводить все» больше не присваивает пакету строк содержимое пакета строк с таким же ID, из-за чего эти строки оставались непереведенными, хотя задание считалось завершенным.
- Пакет строк, уже переведенный в разделе «Перевод строк», больше не переводится и не оплачивается повторно при его самостоятельной отправке.
- Текст, переведенный в составе пакета, например название и краткое описание сайта Elementor, переводится и оплачивается один раз. Раздел «Перевод строк» показывает, где его можно перевести.
- Задания, которые так и не достигли сервиса перевода, больше не занимают место при проверке его статуса.
- Оценка стоимости функции «Переводить все» точно рассчитывает цену того, что отправляется при запуске. Дубликаты и отмененные задания не оцениваются.
- Оценка функции «Переводить все» учитывает элементы товаров, а Панель управления переводами отправляет и подсчитывает общий элемент один раз. Загрузка стоимости в Панели управления завершается корректно.
- Оценка мастера настройки учитывает тексты конструкторов страниц, атрибуты, поля элементов ACF и формы.
- Запись, сохраненная во время переподключения WPML к сервису перевода, получает ожидающее задание на перевод, которое отправляется, как сразу как сервис снова отвечает.
- Перевод больше не применяется дважды, если его доставка занимает более 30 секунд.
- Если в качестве редактора переводов для всего контента установлен «Редактор WordPress», функция «Переводить все» следует этому выбору, как и ее оценка, вместо того чтобы переводить некоторые страницы, а затем никогда не переводить новые.
- Функция «Переводить все» больше не отправляет на перевод элементы таксономии, которые не изменились.
- Автоматические переводы элементов на скрытый язык снова сохраняются.
- Оценка автоматического перевода оценивает существующий перевод, не имеющий статуса перевода, в 0, так как запуск списывает за него средства соответствующим образом.
- Повторное подключение к сервису перевода выполняет по одной попытке за раз.
- Перевод, ожидавший в рамках предыдущего лимита расходов или блокировки, которая с тех пор была снята, забирается без новой паузы из-за лимита расходов.
Исправления в редакторах переводов и заданиях на перевод
- Задание на перевод больше не отклоняется с ошибкой «Missing or wrong data: target», если поле содержит только знаки препинания, символы или шорткоды.
- Если в доставленном переводе один текст остается без перевода, остальная часть перевода применяется, этот текст сохраняет свой оригинал, а журнал заданий указывает на него.
- Задание Gravity Forms или другого пакета строк открывается в редакторе переводов WPML, и никогда в записи с таким же ID, поэтому его переводы больше не теряются.
- Задание на перевод пакета строк больше не включает тексты изображений записи с таким же ID.
- Когда возвращается перевод для отмененного задания, отказ теперь записывается в журнал заданий.
- Классический редактор переводов снова сохраняет данные на серверах, экранирующих разделители между полями формы, вместо ответа «Permission denied».
- Поля без текста больше не отправляются в расширенный редактор переводов, а сохраненный перевод такого поля сохраняется.
- Журнал заданий на перевод сохраняет строки отмен, открытий редактора, сохранений в классическом редакторе переводов и обновлений.
- В журнале заданий на перевод действие, начатое внутри другого действия, вкладывается в него, и строки внешнего действия больше не исчезают.
- Задание на перевод больше не становится нечитаемым, если его тексты не удается сохранить.
- Обновление до WPML 5.x больше не переключает сайты, которые переводят в редакторе WordPress или классическом редакторе переводов, на расширенный редактор переводов.
- Выполняющееся задание в расширенном редакторе переводов открывается заново с его результатами работы, в том числе при изменении оригинала.
- Повторная отправка перевода, пока его проверка открыта, или редактирование перевода после закрытия проверки сохраняет его в очереди на проверку.
- Заметка для переводчиков, содержащая «&», доходит до задания на перевод без изменений.
- Повторное открытие завершенного перевода в расширенном редакторе переводов во второй раз доставляет изменения вместо сбоя.
- Редактирование оригинала после того, как перевод был открыт в редакторе и оставлен незавершенным, перестраивает это задание на перевод на основе последнего контента.
- Отправка контента на перевод больше не завершается ошибкой сервера, если файл XLIFF для электронного письма с уведомлением не может быть записан.
- Ошибка сервиса перевода в одном отмененном задании больше не задерживает другие отмены, и Вы получаете уведомление, если отмена не может быть завершена.
- Отмена, на которой сервис перевода постоянно дает сбой, отвечая при этом на другие запросы, прекращается, поэтому предупреждение «не удалось отменить» исчезает. Во время переподключения экраны перевода показывают одно уведомление вместо двух.
- В расширенном редакторе переводов метка заголовка записи и названия групп, такие как «Main Content», отображаются на языке админ-панели.
- Перевод, доставленный для страницы, которая была отредактирована во время выполнения задания, сохраняется на странице или помечается как требующий обновления, если текст изменился слишком сильно.
- Перевод, отредактированный с фронтенда и завершенный в расширенном редакторе переводов, применяется снова. В случае сбоя доставки на странице указывается причина.
- Повторно отправленное поле больше не разделяется по разрывам строк.
- Повторная отправка перевода, выполненного в расширенном или классическом редакторе переводов, больше не обрабатывает предыдущий перевод как изменение, сделанное в редакторе WordPress.
- Отправка останавливается, если WPML не может записать языковую запись, а не завершается позже с ошибкой «отправка не подтверждена».
- Отправка в сервис перевода, остановившаяся на полпути, больше не оставляет свои задания зависшими в процессе выполнения.
- Расширенный редактор переводов больше не открывает задание на перевод, которое сервис перевода доставил давно.
- Блок «Произвольный HTML», встроенный скрипт которого содержит знак <, больше не стопорит свое задание на перевод.
- Возврат из расширенного редактора переводов больше не регистрирует предупреждение PHP для задания, которое больше не находится в сервисе перевода.
- Сбор переводов из сервиса перевода продолжается, если один из переводов не удается сохранить, а сохранение, останавливающее запрос, учитывается и получает название.
Исправления в разделе «Управление переводами» и Панели управления переводами
- Список «Задания на перевод» снова показывает свои задания на сайтах, где отображалось «No Data» при большом количестве страниц результатов.
- В разделе «Задачи перевода» запланированный перевод помечается как «Запланировано», а личный — как «Личный», вместо «Черновик — Ожидает проверки».
- Диалоговое окно переключения системы перевода в Панели управления переводами сообщает об отказе в переходе на Private Translation Cloud, вместо того чтобы подтверждать его.
- В диалоговом окне переключения системы перевода сообщение о неудачном сохранении отображается на видном месте.
- В разделе «Задачи перевода» и Панели управления переводами отображается ID переведенного элемента, а кнопка «Просмотр» открывает редактор переводов для типов записей без экрана редактирования, таких как таблицы TablePress.
- В электронном письме менеджеру отображаются слова для перевода обновленных записей и пакетов строк, а не их полное количество слов.
- Самостоятельная отправка контента на перевод из Панели управления переводами больше не завершается ошибкой «WPML не удалось подсчитать количество слов в этих элементах», если цены не могут быть считаны.
- Обновленная строка подсчитывает слова, добавленные с момента ее последнего перевода, а не 0, в Панели управления переводами, в оценке стоимости и в электронном письме менеджеру.
- Возможности переводчиков остаются согласованными: настройка языковых пар обновляет сохраненные пары, удаление переводчика освобождает его незавершенные задания, а новые администраторы могут выполнять переводы.
- Если расширенный редактор переводов отклоняет нового менеджера переводов, на экране отображается причина.
- Выбор менеджера переводов или переводчика больше не приводит к тайм-ауту на сайтах с большим количеством пользователей, в меню «Настройки» и в мастере настройки.
- В таблице переводчиков отображается текстовая сводка для переводчиков, у которых есть все языковые пары, и она работает, даже если есть только один переводчик.
- Настройка уведомлений по электронной почте о новых заданиях в профиле пользователя появляется и сохраняется только для пользователей, являющихся переводчиками или менеджерами.
- В разделе «Задачи перевода» отображается закрываемое сообщение со ссылкой для найма опытного переводчика для проверки переводов.
- Электронные письма менеджерам со сводкой по переводам и просроченными заданиями включают строки, отправленные из Панели управления переводами.
- Ежедневный отчет о просроченных заданиях отправляется даже в том случае, если сервис перевода недоступен.
- Панель управления переводами выводит удерживаемый контент, который еще не появился на сайте, отдельно с кнопкой «Показать их», а также помечает места, где были замечены строки, как «Появляется на сайте» или «Замечено в админ-панели».
- В Панели управления переводами больше не отображается вводящая в заблуждение строка «Сопоставить с известными языками», и она отличает языки, поддерживающие только ручной перевод, от языков, которые рассматриваются так же, как язык по умолчанию.
- Поиск по заголовку в разделах «Задачи перевода» и «Задания на перевод» также находит задания по их переведенному заголовку.
- Переводчики, отключившие уведомления о новых заданиях, больше не получают электронные письма о новых заданиях, а функция «Отправить на перевод» больше не завершается ошибкой HTTP 500 из-за этого на серверах, которые не могут отправлять почту.
- Блок «уже переведено» отслеживает изменения, сделанные в другой вкладке, и предлагается также для отредактированных записей.
- Таксономия, отмеченная галочкой в Панели управления переводами, больше не считается «не отображающейся» на нижней панели.
- Опция «Переводить самому» сообщает, что редактор может начать работу с машинного перевода, использующего Ваши слова, и объясняет, как его очистить.
- Значок статуса показывает «проверка в процессе», пока перевод редактируется на странице его проверки.
- В разделе «Задачи перевода» Ваши собственные выполняющиеся задания отображаются первыми, а в списке «Страницы» предлагается продолжить их.
- Фокус клавиатуры остается внутри диалоговых окон WPML.
Исправления для конструкторов страниц
- Тексты конструктора страниц сохраняются при доставке перевода через WP-CLI, вместо того чтобы задание завершалось с пустым переводом.
- Divi и другие конструкторы страниц: WPML сохраняет паттерны «построено с помощью конструктора страниц» из каждого конфигурационного файла, а не только из последнего.
- WPBakery: предварительный просмотр страницы показывает последние несохраненные изменения вместо старой редакции.
- Divi: страницы, перенесенные с Divi 4 на Divi 5, открываются в расширенном редакторе переводов с их существующими переводами.
- Cornerstone: функция «Переводить все» переводит хедеры, футеры, макеты и компоненты.
- Avada: формы переводятся с помощью функции «Переводить все» на сайтах, где работала старая версия WPML.
- Elementor: функция «Переводить все» ожидает перевода шаблонов до их появления на сайте и переводит только те пользовательские атрибуты, которые читают посетители.
- Атрибуты шорткодов, объявленные как ссылки в wpml-config.xml, показывают целевую страницу на текущем языке.
- При изменении ссылки на странице, созданной в конструкторе страниц, ее переводы снова получают новую ссылку, если только переводчик не изменил эту ссылку вручную.
- Elementor V4: медиафайлы видеоэлементов (видео и его изображение-постер) переводятся.
- WPBakery: комментарий редактора блоков внутри шорткода больше не добавляет необработанную разметку шорткода к строкам для перевода.
- Avada: при использовании модуля «Перевод медиафайлов» изображение, заданное с определенным размером (например, «medium»), отображает переведенное изображение и сохраняет свой размер.
- Содержимое шорткода, состоящее только из других шорткодов, больше не регистрируется как строка для перевода, в то время как разметка, например видео, по-прежнему попадает в задание на перевод.
- Страницы, созданные с помощью шорткодов, объявленных в пользовательской конфигурации XML, получают переведенные тексты шорткодов после завершения задания на перевод.
- Elementor: запись пользовательской конфигурации XML для виджета, такого как контейнер, добавляется к встроенным настройкам WPML, а не заменяет их.
- Elementor: ссылка на контейнер в редакторе переводов показывает название своего элемента.
- В расширенном редакторе переводов тексты изображений элементов WPBakery, Divi, Enfold и Avada показывают правильную миниатюру.
- WPBakery: переводы сохраняют пользовательский JS страницы и настройки редактора, а дубликаты направляют кнопки и ссылки на переведенные страницы.
- WPBakery и другие конструкторы шорткодов: ссылки на переведенную строку или ID элемента (#id) следуют за переведенным ID.
- WPBakery: каждая сетка на переведенной странице, включая masonry и сетки медиафайлов, использует переведенный шаблон сетки.
- На сайтах с Divi и WPBakery сохранение страницы WPBakery с графиком, индикатором выполнения, кнопкой или галереей больше не прерывается ошибкой PHP.
- WPBakery и другие конструкторы шорткодов: к странице, содержимое которой содержит комментарий редактора блоков, применяется ее перевод.
- WPBakery: перевод, доставленный из расширенного редактора переводов, сохраняет кнопки с пользовательским действие onclick.
- WPBakery: пагинация, кнопка «загрузить еще», отложенная загрузка и фильтры в Post Grid и Media Grid работают на переведенных страницах.
- WPBakery: перевод, отредактированный в редакторе фронтенда, сохраняется и не перезаписывается при следующем обновлении из оригинала.
- WPBakery: при использовании модуля «Перевод медиафайлов» фоновые изображения секций, строк и столбцов в параметрах дизайна (Design Options) показывают свою переведенную версию.
- WPBakery: пользовательская ссылка для Single Image ведет на переведенную страницу, в том числе в WPBakery 9, а обычные ссылки, сохраненные старыми версиями WPBakery, остаются ссылками в переводе.
- Elementor: тексты виджета с пустой настройкой динамического контента снова попадают в задание на перевод.
- Enfold: дубликат страницы ссылается на страницы на своем собственном языке.
- Конструкторы страниц: переведенные атрибуты и ID шорткодов применяются, когда конструктор ставит пробелы вокруг «=» (например, Tatsu Builder).
- Beaver Themer: переведенный макет сохраняет свои переведенные правила видимости после каждого обновления перевода.
- Beaver Builder: правила видимости, такие как «запись в категории» или «запись является этой страницей», используют переведенную категорию или страницу, поэтому модули больше не исчезают в переводах.
- Beaver Builder: фоны строк и столбцов, изображения-выноски и параллакс-изображения, фоновые видео и видеомодули используют переведенные медиафайлы.
- Beaver Builder: в редактор переводов попадает больше текстов модулей, таких как форма подписки, таблица цен, карусель записей, всплывающее окно, меню и тексты блоков.
- Beaver Builder: посетители сразу видят перевод, обновленный в разделе «Перевод строк», без ручной очистки кэша.
- Beaver Builder: предупреждение о потере изменений отображается и при выключенном пользовательском интерфейсе iFrame, а сохранение черновика перевода считается ручным редактированием.
- Beaver Builder: модуль, удаленный и добавленный снова, сохраняет свой перевод.
- Beaver Builder: редактор переводов показывает изображения модулей фото и выносок, а неопубликованный черновик перевода Beaver сохраняется.
- Beaver Builder: функция «Скопировать контент из оригинала» работает на экране добавления перевода, а скопированные ссылки ведут на переведенные страницы.
- Конструкторы страниц: дублированная страница преобразует ссылки, записанные в виде пути, например /about/, и черновик Beaver Builder также получает преобразованные ссылки.
- Elementor: в хедерах и футерах переводятся название меню, текст кнопки поиска и значения пользовательских атрибутов.
- Elementor: Loop Grid, циклы таксономий и виджет Posts используют переведенные элементы, записи и элементы цикла, а мета-разделитель Posts переводится.
- Elementor: переведенные всплывающие окна сохраняют настройки отображения оригинала, а редактор перевода показывает переведенное всплывающее окно.
- Формы Elementor Pro: сообщение сервера, имя отправителя второго электронного письма, тексты Slack и Discord, а также значения по умолчанию для полей переводятся, а reCAPTCHA отображается на языке страницы.
- Elementor: виджет Template показывает переведенный шаблон в редакторе перевода.
- Elementor: URL-адреса видео и поля URL внутри элементов повторителя переводятся как ссылки, а элементы управления, скрытые настройками виджета, такие как ссылка на видео слайда изображения Media Carousel, больше не отправляются на перевод.
- Avada: макет, назначенный категории, также применяется к переведенной категории и к ее переведенным записям и товарам.
- Elementor V4: переведенная страница показывает стили переведенного компонента, в том числе если она была переведена до компонента или дублирована.
- Формы Elementor V4: электронные письма, отправленные с переведенной страницы, снова перечисляют ответы посетителя, а сломанные переведенные электронные письма из форм восстанавливаются после обновления.
- Elementor V4: изображения, заданные по URL, переопределения изображений и видео для компонентов и ссылки запросов контейнера переводятся.
- Divi 5: модули, отображаемые только для категории или записи, также отображаются в переведенных записях.
- Divi 5: текст, в котором слова смешаны с динамическим контентом, сохраняет как слова, так и каждый динамический элемент в переводе.
- Divi 5: Visual Builder показывает переведенный глобальный модуль на переведенной странице.
- Cornerstone: фоновые изображения и их alt-тексты секций, строк и столбцов переводятся, в том числе в хедерах, футерах, макетах и их дубликатах.
- Cornerstone: хедер, футер или макет без перевода на текущий язык показывает оригинал, а не копию на другом языке.
- Cornerstone: сохранение оригинала в конструкторе снова обновляет его полные переводы.
- Cornerstone: компоненты и их параметры доходят до перевода.
- Cornerstone: каждый текст и ссылка заголовков, отзывов, изображений и таблиц попадает в редактор переводов.
- Cornerstone: хедеры, футеры и макеты сохраняют свои ссылки после автоматического перевода, их стили обновляются, предварительный просмотр предупреждает о потере изменений, а задания показывают изображения.
- Cornerstone: изменение только стиля сохраняет перевод полным.
- SiteOrigin: переведенные макеты сохраняют каждый обратный слеш, например в регулярных выражениях, путях и коде.
- SiteOrigin: виджеты Image и Gallery, а также фоны строк, ячеек и виджетов используют переведенные изображения.
- SiteOrigin: фоновое сохранение перевода считается ручным редактированием, поэтому последующее обновление предупреждает перед его перезаписью.
- SiteOrigin: вкладка «Clone Page» выводит только страницы на языке редактируемой Вами страницы, а список виджетов больше не предлагает виджеты, удаленные WPML.
- SiteOrigin: дубликат сохраняет свой макет, может быть отредактирован в SiteOrigin, а его ссылки ведут на язык дубликата.
- SiteOrigin: виджеты внутри виджета Layout Builder и перемещаемые виджеты сохраняют свои собственные тексты и переводы.
- Cornerstone, Beaver Builder и SiteOrigin: переведенные страницы хранят свой контент на языке перевода, поэтому поиск, отрывки, ленты, REST API и SEO-плагины считывают перевод.
- Avada: редактирование переведенной страницы больше не перезаписывает глобальные элементы других языков.
- Avada: резервные тексты динамических данных доходят до переводчика.
- Avada: если английский является дополнительным языком, настройки English Global Options и раздел «Перевод строк» остаются синхронизированными.
- Avada: URL-адреса портфолио работают на каждом языке после того, как постоянные ссылки сохранены на любом языке, в том числе при переводе слага портфолио.
- Avada и другие конструкторы шорткодов: дублированная страница направляет ссылки кнопок и других шорткодов на язык дубликата.
- Avada: переведенная страница, на которой смешаны блоки и макет Avada, сохраняет макет оригинала.
- Avada: список Off Canvas показывает столбец языка, стили WPML загружаются в Layout Sections, а предварительный просмотр переводов в Avada Live, включая Post Cards, показывает переведенный контент.
- Elementor: редактор открывается нормально, а не в безопасном режиме, для записей, чью постоянную ссылку переписывает плагин, такой как Premmerce Permalink Manager.
- Elementor Pro: лайтбокс, открытый из изображения или ссылки, показывает переведенное изображение.
- SiteOrigin: ссылки на записи в виджетах SiteOrigin Widgets Bundle и виджетах внутри полей конструктора переводятся.
- Enfold: HTML-сущности, введенные в текстовые блоки и блоки кода, остаются в переводе в том виде, в котором они были введены.
- Elementor: ссылки на целевую страницу Elementor Landing Page ведут на переведенную целевую страницу.
- Divi 5: холст хедера или футера Theme Builder отображается на переведенных страницах, поэтому открывающие его взаимодействия (Interactions) снова работают.
- Страница WPBakery, которая также использует шаблон темы Elementor, отправляет на перевод свой контент, а не только заголовок.
- Divi: если язык профиля установлен на «По умолчанию для сайта», Visual Builder открывается на языке сайта и на переведенных страницах.
- Divi 5: сохранение перевода в Visual Builder больше не изменяет, не перемещает и не удаляет off-canvas контент и всплывающие окна оригинала.
- BeTheme: переведенный шаблон хедера, футера или всплывающего окна отображается на своем языке сразу после завершения его перевода.
- Elementor Pro: страница, в которую встроен шаблон с помощью шорткода [elementor-template], загружает стили переведенного шаблона.
- WoodMart: макет без перевода на текущий язык показывает оригинальный макет.
- Блоки Divi 5: ссылки, фоновые изображения и ID товаров, объявленные для всего семейства блоков, переводятся вместе с собственными настройками каждого блока.
- Elementor: ID внутри элементов повторителя, таких как изображения карусели баннеров WoodMart, указывают на переведенные элементы.
- Сохранение шаблона Elementor на сайте с множеством языков больше не приводит к тайм-ауту: редактор получает ответ до того, как WPML зарегистрирует тексты и обновит переводы.
- Страница конструктора страниц, переведенная автоматически, получает свои переведенные изображения, в том числе на серверах PHP-FPM.
- Divi 5: локальный холст (off-canvas контент или всплывающее окно, принадлежащее одной странице) переводится вместе со своей страницей.
- Divi 5: холсты архивов и главной страницы блога остаются на своем собственном языке, а сохранение в конструкторе на переводе больше не перезаписывает оригинал.
- Divi: шаблоны Theme Builder, добавленные после перевода, применяются на каждом языке. WPMLПоддержка и WP-CLI восстанавливают сайты, на которых был один список для каждого языка.
- Divi, WPBakery и Beaver Builder: посетители видят опубликованные шаблоны, макеты и сохраненные модули переведенными.
- Elementor V4: страница, на которой отображается шаблон, загружает стили переведенного шаблона.
- Elementor и расширенный редактор переводов: тексты элементов повторителя, такие как аккордеон и вкладки, больше не оборачиваются в дополнительные теги абзаца.
- WoodMart: метка, ограниченная товарами или категориями, выводится на их переводах.
Исправления для блоков и редактора блоков
- Ссылки внутри вложенных самозакрывающихся блоков преобразуются на язык перевода.
- Ссылки в блоке, вложенном в другой блок, например в подменю навигации и контейнерах GenerateBlocks, преобразуются на язык перевода.
- В блочных темах язык без собственной версии настроенного шаблона или части шаблона использует версию на языке по умолчанию, затем версию оригинала, а уже потом файл темы — одинаково на сайте и в редакторах.
- Настройки блоков, такие как ID, классы, цвета, файлы изображений и значения CSS (например, в контейнерах GenerateBlocks), больше не отправляются на перевод.
- В разделе «Перевод строк» появляется меньше технических значений блоков по умолчанию, таких как px, % и _self.
- Отсутствует фатальная ошибка, когда BuddyPress Multilingual или другой плагин очищает неиспользуемый пакет строк.
- Встраиваемый элемент YouTube или другой платформы, переведенный в классическом редакторе переводов, показывает видеоплеер, а не простую ссылку.
- Панель «Язык» редактора блоков отображается на языке админ-панели.
- Панели «Язык» и «Навигация CMS» в редакторе блоков имеют правильные отступы, а уведомление о дубликате читается как одно предложение.
- Блок переключателя языков больше не дает сбой в разделе Внешний видВиджеты и в редакторе сайта при выборе «Все языки».
- Стили WPML больше не изменяют внешний вид элементов других плагинов в редакторе блоков, классическом редакторе записей и панели проверки на фронтенде.
- В WordPress 7.2 шорткод в двойных кавычках внутри HTML-атрибута остается вне визуального редактора.
Исправления для переключателя языков
- Пользовательские PHP-шаблоны переключателя языков загружаются только из собственной папки шаблонов WPML, темы или дочерней темы, либо из папок, которые плагин регистрирует для сканирования.
- Блок переключателя языков помечает название каждого языка его языком, а каждую ссылку — атрибутом hreflang, для программ чтения с экрана и проверок доступности.
- Два переключателя языков на одной странице объявляются программам чтения с экрана под разными названиями.
Исправления для категорий, меток и других таксономий
- Если автоматический перевод категории или метки не удается, в задании указывается причина; в качестве перевода используется существующий элемент на языке перевода без ссылки на перевод.
- Перевод элемента, доставленный с региональным кодом, например en-us для en, применяется к языку сайта, а не отклоняется.
- О переведенном названии элемента, которое длиннее, чем позволяет WordPress, сообщается с указанием причины, и оно не отправляется повторно до тех пор, пока название не изменится.
- Описание элемента, написанное заданием на перевод записи, сохраняет свой HTML.
- Задание на перевод записи включает поля элементов ее категорий, названия которых начинаются с «_», например SEO-заголовки.
- Элемент больше не ссылается на несвязанный элемент, что давало неправильные ссылки hreflang в XML-карте сайта Yoast SEO.
Исправления для меню
- Сохранение меню больше не удаляет все его пункты на сайтах, где ID элементов и ID таксономий элементов различаются.
- Пользователи, которым разрешено синхронизировать меню, могут открыть раздел ПереводыМеню, старый адрес меню ведет туда же, а менеджеры переводов больше не получают ошибки доступа при синхронизации меню.
- Навигационные меню больше не дублируются на сайтах с Redis или другим постоянным кэшированием объектов.
- Меню, импортированное с помощью инструмента импорта WordPress, сохраняет свои пункты страниц и категорий.
- Синхронизация меню сохраняет настройку «Автоматически добавлять новые страницы верхнего уровня» для каждого меню.
Исправления для ссылок, URL-адресов и перенаправлений
- Переведенная конечная точка WooCommerce или пользовательская конечная точка больше не ломает более длинную конечную точку, заканчивающуюся тем же словом, что давало ошибку 404 на этом языке.
- На сайтах, установленных в подпапке, сохранение переведенной страницы (например, в Divi) больше не переписывает внутренние ссылки на неработающие адреса вида ?page_id=.
- Ссылки на текущую страницу с параметрами запроса снова сохраняют свой адрес, когда непереведенный контент отображается на языке по умолчанию.
- Непереведенная корневая страница, отображаемая на языке по умолчанию, больше не перенаправляет на страницу с таким же слагом глубже на сайте.
- Если язык задан в виде параметра URL, внутренние ссылки в переведенном контенте сохраняют свой якорь (#anchor).
- При наличии корневого HTML-файла поисковые запросы и вызовы REST API по корневому URL-адресу достигают WordPress. Корневой HTML-файл, который не может быть загружен, или неопубликованная корневая страница работают так, как если бы корневая страница не была задана.
- Ссылка на категорию товаров, база которой переведена для каждого языка, преобразуется в переводе.
- Ссылки в существующих переводах теперь ведут на страницы, которые были переведены позже, в том числе для контента, созданного до установки WPML.
- Переведенные архивы категорий, включая категории товаров WooCommerce, больше не перенаправляют сами на себя в цикле на хостингах, ограничивающих большие запросы к базе данных.
- Ссылки, которые WPML предоставляет другим инструментам для открытия перевода в редакторе WordPress, являются полными адресами, поэтому они больше не ведут на страницу, которая не найдена.
- Ссылки в переведенном контенте на адреса, обслуживаемые другим плагином, такие как ссылки WP File Download, больше не заменяются ссылкой на несвязанную запись.
- Сохранение перевода больше не изменяет ссылки на личные страницы на ссылки на язык оригинала.
- При наличии корневой страницы и каталога для языка по умолчанию адреса лент со строкой запроса, такие как /?feed=rss2, ведут к лентам сайта.
Исправления для языков и мастера настройки
- Шаг «Языки» в мастере настройки снова сохраняет данные на готовом сайте, использующем свой домен для каждого языка, вместо того чтобы запрашивать домен для английского.
- Шаг «Языки» в мастере настройки помечает пользовательский язык с региональным кодом, например zh-tw-x, как «Только вручную», если автоматический перевод его не поддерживает, так же как это делает шаг стоимости.
- Язык, который больше не предлагается во встроенном списке, например амхарский, можно добавить как пользовательский язык.
- Если в удалении контента языка отказано, поскольку он стал языком по умолчанию, удаление больше не остается отмеченным как выполняющееся.
- Обновление до WPML 5.x больше не заменяет локаль пользовательского языка, например немецкого (формального), на региональную, поэтому раздел «Перевод строк» продолжает работать для этого языка.
- Вкладка мастера настройки, оставленная открытой, или старый запрос настроек больше не могут перезаписать завершенную настройку.
- Удаление последнего дополнительного языка больше не отправляет настроенный сайт обратно в мастер настройки: WPML открывает НастройкиЯзыки, а пункт меню «Настройка» отображается только до завершения настройки.
- Язык больше нельзя сопоставить с языком сайта по умолчанию, из-за чего расширенный редактор переводов переводил на исходный язык; сайты с таким сопоставлением восстанавливаются при обновлении.
- Язык, у которого все еще была устаревшая локаль от старой версии WPML, например каталанский или урду, получает текущую локаль один раз; локаль, которую Вы выбрали сами, сохраняется.
- Поменянная местами пара сопоставления, например en на fr и fr на en, удаляется за один шаг.
- Неудачное считывание активных языков больше не заменяет сохраненный список.
- Настроенный сайт больше не теряет свое состояние настройки, а экран «Строки» показывает уведомление о настройке.
- Сохранение настроек больше не заменяет сохраненную настройку, которую не удалось считать.
- Идиш и дари отображаются справа налево.
- Удаление прежнего языка по умолчанию вместе с его переводами больше не удаляет контент на текущем языке по умолчанию.
- На широких экранах кнопки мастера настройки «Назад» и «Продолжить» остаются рядом с формой.
Исправления для регистрации и обновлений
- Ключ сайта больше не очищается между входами администратора, поэтому уведомление «Требуется новый ключ сайта» перестает возвращаться.
- Мультисайт: подсайт со своим доменом для каждого языка больше не отправляет собственный адрес при проверках ключа сайта, что могло привести к отмене регистрации всей сети.
- Сайты со своим доменом для каждого языка больше не теряют ключ сайта при его повторной проверке в фоновом режиме.
- Подсайт, созданный путем дублирования другого, предоставляет сервису перевода свой собственный адрес.
- Обновление с WPML 5.x больше не останавливается с ошибкой «Class not found».
- Обновление раздела «Управление переводами» больше не запускается поверх выполняющегося обновления ядра.
- Плагин WPML, оставшийся неполным из-за прерванного обновления, показывает уведомление вместо фатальной ошибки при каждом запросе.
- Обновление с WPML 5.2.0 успешно завершается на сайтах с очень большим количеством записей приоритета перевода (Translation Priority), вместо нехватки памяти при каждом запросе. Новая команда WP-CLI wp wpml upgrade remove-translation-priority выполняет эту очистку за один раз.
- Ключ сайта, отклоненный при автоматической проверке (например, ежедневной), сохраняется и помечается, а не удаляется. Обновление лицензии в разделе WPMLПоддержка удаляет его или восстанавливает подписку.
- Мультисайт: подсайт сети без ключа сайта WPML объясняет, что сеть использует один ключ сайта.
- Баннер «Продлить учетную запись», отображаемый в течение 30 дней после истечения срока действия Вашей учетной записи WPML, можно закрыть, и он остается закрытым.
Исправления для сайтов WooCommerce
- Произвольное поле со статусом «Копировать», измененное через API товаров WooCommerce или WP-CLI, копируется в переводы товара.
- Шорткод категории товаров выводит список товаров на языке по умолчанию на переведенных страницах, если товары используют опцию «Отображать как переведенные».
- Шаблон страницы корзины или оформления заказа, настроенный для дополнительного языка, используется на страницах корзины и оформления заказа этого языка.
Исправления для произвольных полей и Advanced Custom Fields
- Строка произвольного поля без названия больше не выводит уведомления об устаревании PHP при каждой синхронизации элементов и копировании записей.
- Переведенное произвольное поле сохраняет свои обратные слеши при сохранении перевода.
- Произвольные поля, содержащие ID внутри списка, преобразуют также и первый элемент списка.
- Копируемые произвольные поля, значение которых только выглядит сериализованным, больше не очищаются и не обрезаются в переводах.
- Уведомление «произвольные поля стали переводимыми» перечисляет каждое поле один раз и исключает поля, возвращенные в статус «Не переводить».
- Произвольное поле со статусом «Копировать один раз», удаленное из перевода, остается удаленным, а не возвращается при следующем сохранении.
Исправления для медиафайлов и изображений
- В режиме просмотра сетки библиотеки медиафайлов снова работает кнопка «Удалить навсегда» в окне вложения.
- Опция «Использовать другой файл» в модуле «Перевод медиафайлов» и изменение языка в разделе «Перевод строк» работают для языков, код которых содержит заглавные буквы, таких как de-AT.
- Изображения, адрес которых закодирован с помощью процентов в контенте, например имена файлов с японскими иероглифами, теперь находятся, поэтому каждый перевод использует изображение своего языка.
Исправления для записей и страниц
- Корневая страница, являющаяся черновиком или находящаяся в корзине, снова отображается в списке «Страницы» и в корзине, уведомление о ней предлагает ее восстановить, а неопубликованная корневая страница больше не ломает главные страницы и ссылки.
- Опция «Связать с переводами» больше не отмечает галочкой по умолчанию пункт «Сделать <language> языком оригинала для этой записи».
- Раздел ЗаписиВсе записи и редактор записей больше не показывают фатальную ошибку, если таблица переводов WPML потеряла свои ключи; раздел WPMLПоддержка предлагает восстановление, и об этом сообщает уведомление.
- Опция «Перезаписать контентом на <language>» запрашивает подтверждение в диалоговом окне WPML, а не в окне браузера.
- Редактор записей всегда работает на собственном языке записи, даже если в ее ссылке указан другой язык.
- Страница, первый перевод которой был отменен, может быть снова связана с существующим переводом.
- Добавление одного и того же перевода из двух вкладок больше не удаляет язык первой; вторая попадает в обновленный список с предупреждением.
- На новом сайте удаление переведенного товара или оригинала другого типа, добавленного плагином или темой, запрашивает, что делать с его переводами, так же как это происходит с записями и страницами.
- Диалоговое окно, запрашивающее, нужно ли также удалить переводы, ссылается на настройку, которая отвечает на этот вопрос один раз для всех удалений.
Исправления для совместимости с другими плагинами и темами
- Avada: параметры темы снова работают при активном WPML на учетной записи Blog, где Панель управления переводами недоступна.
- Темы и плагины, которые запрашивают у WPML перевод списка ID или текстового значения контента, который WPML не переводит, например меток товаров WoodMart, получают свое значение обратно без изменений.
- Google XML Sitemaps: если язык задан в виде параметра URL, XML-карта сайта выводит переведенные записи и страницы с их переведенными слагами.
- BetterDocs: блоки категорий и «BetterDocs Order» выводят правильные категории и каждый переведенный документ на страницах на дополнительном языке.
- WordPress 7.2: больше нет уведомлений об устаревании от пронумерованных слагов или от классического редактора переводов.
- Запросы, использующие suppress_filters, такие как списки Content Views, показывают записи на текущем языке при фильтрации по категории.
- Фильтры запросов по слагу или названию категории, такие как поле ACF Relationship, работают на дополнительных языках при выключенной функции корректировки ID (Adjust IDs).
- Экраны админ-панели, загружающие записи через REST API с выбранной опцией «Все языки», такие как в Avada, выводят записи всех языков.
Исправления для экранов админ-панели и настроек
- Значок WPML на панели администратора показывает зеленую иконку воспроизведения, когда функция «Переводить все» работает, но не требует действий, и красный счетчик только тогда, когда что-то требует Вашего участия.
- Ссылки с экранов WPML на wpml.org открывают страницу или раздел документации, описывающие данный экран.
- Больше текстов админ-панели, таких как названия стилей переключателя языков и некоторые кнопки и сообщения, отображаются на языке Вашей админ-панели.
- Раздел НастройкиПереводчики показывает используемую версию XLIFF, старая надпись в футере «Multilingual WordPress with WPML» удалена, а новые сайты больше не хранят неиспользуемые настройки.
- Опция «URL-адрес страницы» в разделе «URL-адреса и SEO» отображается для каждого языка админ-панели.
- Опция ПоддержкаОчистить кэш также обновляет список сервисов перевода.
- Очистка кэша в разделе WPMLПоддержка также очищает переводы названия и краткого описания сайта, а также кэши WPML CMS Navigation и ACF Multilingual.
- Отладочная информация WPML и экран поддержки показывают реальную версию MariaDB вместо MySQL 5.5.5.
- Экраны админ-панели больше не регистрируют предупреждение «Undefined array key» для запросов без файла cookie входа, таких как WP-CLI.
Исправления для баз данных и мультисайта
- Мультисайт: сайт сети, который имеет таблицы WPML, но не завершил настройку, больше не запрашивает таблицу языков при каждом запросе.
- Мультисайт: сайт сети, чьи таблицы WPML исчезли, перестает запрашивать их при каждом запросе и сообщает об этом своим администраторам.
- Восстановление типов элементов в разделе поиска и устранения неисправностей теперь удаляет запись перевода вместе с ее статусом и заданиями, не оставляя после себя ничего сломанного.
- Если база данных отклоняет обновление таблицы WPML, WPML самостоятельно исправляет частый случай с нулевой датой; в противном случае уведомление администратора показывает ошибку и кнопку «Повторить попытку», вместо того чтобы задания на перевод завершались сбоем без предупреждения.
- Таблица нерешаемых заданий создается в старых версиях MariaDB и MySQL.
Другие исправления
- Проверка связи сайта с wpml.org корректно сообщает о сайтах, которые выполняют перевод в редакторе WordPress.
- Больше нет уведомления PHP «WP_User_Query::query was called incorrectly», когда WPML включает возможности переводчика.
- Больше нет предупреждения PHP «Undefined array key 2», когда плагин или тема проверяет возможность записи (post capability) без указания записи.
- При использовании постоянного кэширования объектов списки комментариев и отзывов показывают комментарии текущего языка.
- Уведомление о пользовательских шаблонах Twig содержит ссылку на раздел о PHP-шаблонах.
Обновить или скачать
Обновление доступно всем клиентам WPML с активной подпиской — оно появится на странице Плагины в Вашей админ-панели WordPress в течение 24 часов после релиза. Вы также можете сразу проверить его наличие в разделе ПлагиныДобавить новыйКоммерческие. Чтобы скачать и установить вручную, перейдите в раздел Загрузки в Вашей учётной записи на wpml.org (см. инструкции по установке) и не забудьте обновить все компоненты вместе, не смешивая версии.
