I am one of the maintainers of the AI Translate module. It adds a button to the translation tab of your content, so you can create a translation with AI in one click. This week we released version 1.4.0, to add agentic support.
The module already did its job fine when a person clicked that button. But there was a problem below the surface. The logic that does the actual translation work existed twice: once for the user interface, and once for the Drush commands. Both copies did more or less the same thing, but over time they started to drift apart. A bug fixed in one place was not fixed in the other one. And if you wanted to translate content from your own code, you had to write that same logic a third time.
So I worked on moving all of it into one service. The translation tab and the Drush commands are now just callers of that service. It is the kind of change that does not look like much from the outside, because the module works exactly like before for editors. But it simplifies maintenance a lot, because there is only one implementation left to maintain.
More importantly, it opened a door. Now that the translation workflow lives in one place, we could also expose it as a tool. AI Translate 1.4.0 ships a "AiFunctionCall" plugin that can be used by the AI module, and a plugin for the Tool API ecosystem. In practice this means an AI agent can translate your content, and not only a human clicking a button. You can ask an agent to translate an article to Dutch, and it will use the same code as the button in the interface, including the same permission checks. Other modules can reuse the service in the same way.
This work was accelerated as part of the Drupal AI initiative sprints. Translation is one of the five focus areas that Drupal agencies and partners asked for, next to things like AI search and AI content reviews. Christoph Breidert wrote a good overview of how these sprints are organised in Inside AI is building what our partners asked for. I was asked to provide guidance as one of the leads for the translation area, together with Valery Lourie. Working in sprints like this really helps to keep the work moving forward, instead of it sitting in the issue queue for months. Also thanks to Rodel Duterte for providing valuable feedback on the issue.
If you use AI Translate, give 1.4.0 a try. Feedback and issues are welcome in the issue queue.