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

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

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

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

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

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

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

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

Написать комментарий

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

Устанавливаем флажок FILE_STATUS_PERMANENT для файла в DRUPAL 9

Август 7, 2021 г.

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

Читать

Рендер ссылки в twig

Октябрь 3, 2021 г.

В шаблонах twig вы можете использовать функцию link, для рендера ссылки. Параметры вызова следующие - link($text, $uri, $attributes = {}), первые два - обязательные. [crayon-6839a3c66e778119704490/] Результатом будет следующий HTML код: ...

Читать

 

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

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



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