WPML

Обзор проблемы

Если Вы создаете таблицу с помощью плагина TablePress, перевести ее с помощью WPML невозможно. WPML не отображает ячейки таблицы в виде отдельных текстов в редакторе переводов.

Обходное решение

Существует три способа показать таблицу TablePress более чем на одном языке. Выберите один из них.

Вариант 1: по одной таблице для каждого языка (рекомендуется)

Создайте по одной таблице для каждого языка. Затем добавьте каждую таблицу на страницу на соответствующем языке. Автор TablePress также рекомендует (открывается в новой вкладке) это решение.
  1. Перейдите в TablePressAll Tables.
  2. Наведите курсор на оригинальную таблицу и нажмите Copy.

    Действие Copy на странице All Tables плагина TablePress
    Действие Copy на странице All Tables плагина TablePress

  3. Отредактируйте копию и переведите её ячейки в TablePress.
  4. Добавьте копию на переведённую страницу. Используйте блок TablePress table или шорткод копии.

Вариант 2: фильтрация строк (TablePress Premium)

Используйте модуль Row Filtering (открывается в новой вкладке) из TablePress Premium. Скопируйте каждую строку для каждого языка. Используйте код языка в качестве условия фильтра, например, в дополнительном скрытом первом столбце.

Вариант 3: перевод таблицы с помощью WPML (расширенный)

Используйте этот вариант, только если варианты 1 и 2 Вам не подходят. Перед началом работы обязательно сделайте полную резервную копию Вашего сайта.

Ограничения: TablePress сохраняет все ячейки таблицы как один блок кода. WPML отправляет этот блок в редактор переводов как одно поле.

  • Вы не можете переводить ячейки в Расширенном редакторе переводов.
  • В Классическом редакторе переводов Вы можете редактировать ячейки только как необработанный код, например [["Tour","Days","Price"],["Coastal Loop","2","240 EUR"]]. Переводите только слова внутри кавычек. Сохраняйте каждую скобку, кавычку и запятую. Одна ошибка приведёт к поломке таблицы.
Выполните следующие действия:
  1. Перейдите в WPMLНастройкиРедактор переводов. В разделе Классический редактор переводов нажмите Choose.
  2. Перейдите в WPMLНастройкиПеревод типов записей. Для TablePress Tables выберите Переводимый – показывать только переведенные элементы и нажмите Сохранить.
    Настройка типа записи TablePress Tables как переводимого
    Настройка типа записи TablePress Tables как переводимого
  3. Перейдите в WPMLНастройкиПеревод пользовательских полей. Нажмите Show system fields. Задайте для этих полей значение Копировать и нажмите Сохранить:
    • _tablepress_table_options
    • _tablepress_table_visibility

    Установка значения «Копировать» для двух системных полей TablePress
    Установка значения «Копировать» для двух системных полей TablePress

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

    Выбор таблицы в Панели управления переводами
    Выбор таблицы в Панели управления переводами

  5. Перейдите на вкладку Задачи перевода и нажмите Перевести в строке таблицы.
  6. В поле Body перейдите на вкладку Code. Переведите ячейки там, как описано выше. Не используйте вкладку Visual. Выберите Перевод завершен для каждого поля и нажмите Save & Close.

    Ячейки таблицы в виде необработанного кода в Классическом редакторе переводов
    Ячейки таблицы в виде необработанного кода в Классическом редакторе переводов

  7. Получите ID переведённой таблицы:
    1. На вкладке Задачи перевода найдите строку таблицы. Если строки там нет, значит, задание назначено другому переводчику. Сначала возьмите задание себе.
    2. Нажмите Просмотр.

      Кнопка «Просмотр» на вкладке «Задачи перевода»
      Кнопка «Просмотр» на вкладке «Задачи перевода»

    3. Браузер откроет адрес вида example.com/fr/?post_type=tablepress_table&p=8. Число после p= — это ID переведённой таблицы. На странице будет показано сообщение «Страница не найдена». Это нормально, поскольку таблицы TablePress не являются публичными страницами.
  8. Перейдите на вкладку Строки. В разделе Утилиты под надписью Not seeing strings that you are looking for? нажмите Перевод текстов администратора.

    Ссылка на Перевод текстов администратора в разделе «Утилиты»
    Ссылка на Перевод текстов администратора в разделе «Утилиты»

  9. Найдите tablepress_tables. Выберите результат и нажмите Добавить в Перевод строк.

    Добавление опции tablepress_tables в Перевод строк
    Добавление опции tablepress_tables в Перевод строк

  10. Вернитесь на вкладку Строки. В выпадающем списке доменов выберите admin_texts_tablepress_tables и нажмите Фильтр.
  11. Найдите ID оригинальной таблицы. Строка содержит пары вида "table_post":{"1":5}. Первое число — это ID таблицы, который отображается в TablePressAll Tables. Второе число — это ID оригинальной таблицы.
  12. Нажмите на значок карандаша, чтобы перевести строку. Скопируйте оригинал в перевод. Затем замените ID оригинальной таблицы (5 в данном примере) на ID переведённой таблицы (8 в данном примере). Нажмите Enter для сохранения.
    Замена ID оригинальной таблицы на ID переведённой таблицы
    Замена ID оригинальной таблицы на ID переведённой таблицы
  13. Переведите страницу, на которой отображается таблица, как обычно. Блок таблицы или шорткод сохраняет тот же ID таблицы. Теперь на переведённой странице будет отображаться переведённая таблица.

Все известные проблемы

Нужна помощь с этой проблемой?

Отправьте запрос в поддержку, и мы разберемся в этом вместе с Вами.