Обзор проблемы
Если Вы создаете таблицу с помощью плагина TablePress, перевести ее с помощью WPML невозможно. WPML не отображает ячейки таблицы в виде отдельных текстов в редакторе переводов.
Обходное решение
Существует три способа показать таблицу TablePress более чем на одном языке. Выберите один из них.
Вариант 1: по одной таблице для каждого языка (рекомендуется)
Создайте по одной таблице для каждого языка. Затем добавьте каждую таблицу на страницу на соответствующем языке. Автор TablePress также рекомендует (открывается в новой вкладке) это решение.- Перейдите в TablePressAll Tables.
- Наведите курсор на оригинальную таблицу и нажмите Copy.
- Отредактируйте копию и переведите её ячейки в TablePress.
- Добавьте копию на переведённую страницу. Используйте блок TablePress table или шорткод копии.
Вариант 2: фильтрация строк (TablePress Premium)
Используйте модуль Row Filtering (открывается в новой вкладке) из TablePress Premium. Скопируйте каждую строку для каждого языка. Используйте код языка в качестве условия фильтра, например, в дополнительном скрытом первом столбце.Вариант 3: перевод таблицы с помощью WPML (расширенный)
Используйте этот вариант, только если варианты 1 и 2 Вам не подходят. Перед началом работы обязательно сделайте полную резервную копию Вашего сайта.Ограничения: TablePress сохраняет все ячейки таблицы как один блок кода. WPML отправляет этот блок в редактор переводов как одно поле.
- Вы не можете переводить ячейки в Расширенном редакторе переводов.
- В Классическом редакторе переводов Вы можете редактировать ячейки только как необработанный код, например
[["Tour","Days","Price"],["Coastal Loop","2","240 EUR"]]. Переводите только слова внутри кавычек. Сохраняйте каждую скобку, кавычку и запятую. Одна ошибка приведёт к поломке таблицы.
- Перейдите в WPMLНастройкиРедактор переводов. В разделе Классический редактор переводов нажмите Choose.
- Перейдите в WPMLНастройкиПеревод типов записей. Для TablePress Tables выберите Переводимый – показывать только переведенные элементы и нажмите Сохранить.

Настройка типа записи TablePress Tables как переводимого - Перейдите в WPMLНастройкиПеревод пользовательских полей. Нажмите Show system fields. Задайте для этих полей значение Копировать и нажмите Сохранить:
- _tablepress_table_options
- _tablepress_table_visibility

Установка значения «Копировать» для двух системных полей TablePress - Перейдите в WPMLПереводы на вкладке Панель управления. В разделе TablePress Tables выберите таблицу. Нажмите Перевести ваш контент, выберите Переводить самому и нажмите Перевести контент.
- Перейдите на вкладку Задачи перевода и нажмите Перевести в строке таблицы.
- В поле Body перейдите на вкладку Code. Переведите ячейки там, как описано выше. Не используйте вкладку Visual. Выберите Перевод завершен для каждого поля и нажмите Save & Close.

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

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

Замена ID оригинальной таблицы на ID переведённой таблицы - Переведите страницу, на которой отображается таблица, как обычно. Блок таблицы или шорткод сохраняет тот же ID таблицы. Теперь на переведённой странице будет отображаться переведённая таблица.



