Error Code 1366 of Mysql при записи переводов в базу tmgmt_deepl

Типично ошибка 1366 связана с тем, что кто то пытается записать символы с кодами не соответствующими кодовой таблице символов, установленной для таблицы в базе данных. Но в нашем случае речь идет о иной проблеме.

Drupal использует utf8mb4 для текстовых пользовательских данных. И если вы ничего не меняли вручную, то скорее всего у вас именно такая кодировка.

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

Например, в европейских языках вы встретите — 25%, а в турецком это будет записано как %25.

Модуль tmgmt_deepl получает переводы с сервера и применяет к ним пост обработку функцией rawurldecode, для которой подобные комбинации в символом % являются целевыми. Так могут появиться символы, которые не соответствуют разрешенным в кодировке.

Я написал небольшой патч, убирающий эту функцию из постобработчика.

Не стал его публиковать на drupal.org, т.к. наверняка у разработчиков были какие то причины на использование здесь rawurldecode.

Мало букафф? Читайте есчо !

Проблема с сохранением asymmetric paragraphs в tmgmt

Октябрь 4, 2024 г.

Проблема описана вот тут, и там даже предлагается патч https://www.drupal.org/files/issues/2024-05-28/3134922-40.patch,который частично решает проблему, но в #43 siavash (Sia) более подробно рассказывает о том, как сохраняются данные, и становится ясно, ...

Читать

Программный рендер меню в Drupal 9

Сентябрь 8, 2021 г.

Продолжаю публиковать сниппеты кода для drupal 9, на этот раз несколько полезных вещей, связанных с рендерингом меню. Рендер меню по известному id меню Вы знаете идентификатор, вам нужен рендер: [crayon-69c8180a720c3479215710/] Рендер ...

Читать

Подготовка строки для использования в качестве имени html класса

Январь 18, 2022 г.

То, что в семерке выполняется функцией drupal_html_class(), в Drupal 8 реализовано в виде статического метода\Drupal\Component\Utility\Html::getClass($str). Данная функция также востребована в шаблонах (twig). Здесь вы можете использовать фильтр ...

Читать

Убрать копейки при выводе цены Drupal/Commerce

Май 16, 2021 г.

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

Читать
 

Комментарии к «Error Code 1366 of Mysql при записи переводов в базу tmgmt_deepl»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: