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

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

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

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

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

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

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

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

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

Рендер ссылки в Drupal 9

Август 5, 2021 г.

В Drupal 7 вы могли использовать функцию l($text, $url, $options) для генерации HTML кода тега <A>. В Drupal 9 подход коренным образом изменился, и прямого "наследника" устаревшей функции нет. Чтобы получить примерно тот же функционал придется ...

Читать

Создаём программно url alias в Drupal 9

Август 28, 2021 г.

Сниппет кода, демонстрирующий как alias создаётся в Drupal 9. Ранее (в 8й версии) это был сервис ядра path.alias_storage, и код выглядел так: [crayon-6a4359b17f001740481220/] В 9й версии хранилище перенесли в entityTypeManager и потому выглядит ...

Читать

Настраиваем стили в CKEditor / Drupal 9

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

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

Читать

Вывод всех локальных переменных в twig

Июнь 3, 2024 г.

Все видимые переменные шаблона можно посмотреть в переменной _context. Вывести их имена, используя перебор циклом for: [crayon-6a4359b17f17e876183057/] В Drupal, если вы используете модуль devel, в twig будет доступна функция dpm: [crayon-6a4359b17f183872262997/]

Читать
 

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

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



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