| Fix |
a title is no longer replaced by an answer to itself. A short field such as "Where is Mount Sinai?" reads as a question, and an AI translation service sometimes answers it instead of translating it, returning a paragraph about the location. That paragraph does not fit in the title field, so the translation failed with "Data too long for column title" and that language was skipped. A result that is far longer than its source can never be a translation, so it is now refused, the original text is kept and the log records what happened. Running the translation again gives the service another chance |
| Fix |
"Update links in content" now reaches a YOOtheme Builder page. The setting rewrites a link so it points at the translation of the article, category or menu item it leads to, but it looked for `href="/downloads/autolanguage-plugin-pro/file/550:autolanguage-plugin-pro-v2-7-0?___="` in the text, and a Builder page has none: its links live in the layout JSON as a property, and a link typed into a text block sits there behind escaped quotes that the same search cannot see either. Every translated Builder page therefore kept pointing at the source language. Both kinds are now rewritten, along with the `lang` parameter. Only the `index.php?` form is handled: a SEF link carries no ids, and guessing which item it leads to would send visitors to the wrong page, so pick the non-SEF form in the link picker for links that have to follow the translation |
| Fix |
a translation run ended in a 500 while its work had already been done. Before writing a clone the plugin checked its database connection, because a long translation call leaves it idle long enough for MySQL to drop it, and it did so by opening a second driver and handing that driver's open connection to the first one. Two driver objects then owned one connection and both closed it at the end of the request, so the second close failed with "mysqli object is already closed" from a destructor, far outside any code that could catch it. The translations themselves were already saved, which is why reloading the page showed them. The connection is now reopened on the driver the plugin already has, and only when a check shows it is actually gone |
| Fix |
a block of content that happens to contain a brace or an icon is translated again on a YOOtheme Builder page. Two rules meant to keep technical values away from the translation service, one for CSS and JSON, one for SVG markup, rejected the whole value as soon as such a fragment appeared anywhere inside it. A custom HTML table with a ` |