414 – Revolutionising WordPress translations: Leo Losoviz talks Gato AI Translations for Polylang

Interview with Leo Losoviz and Nathan Wrigley.

On the podcast today we have Leonardo Losoviz, a WordPress expert who’s been innovating within the platform since 2012. Leo has an impressive track record with contributions within the WordPress ecosystem, notably his sophisticated Gato GraphQL plugin. This tool has been a decade in the making and offers a streamlined way to conduct and manage complex queries in WordPress without the usual hassle.

WP Builds is brought to you by...


The home of Managed WordPress hosting that includes free domain, SSL, and 24/7 support. Bundle that with the Hub by GoDaddy Pro to unlock more free benefits to manage multiple sites in one place, invoice clients, and get 30% off new purchases! Find out more at go.me/wpbuilds.

Today, however, we’re turning our attention to Leo’s latest project, which promises to revolutionise how developers and content creators manage multilingual websites. Introducing Gato AI Translations for Polylang.

Leo takes the complexity of his GraphQL engine and wraps it in a more niche, user-friendly package. This plugin leverages the power of AI, utilising advanced technologies like ChatGPT, DeepL, and Google Translate. With these APIs, the plugin automates the process of translating website content, making it easier than ever to reach global audiences with just a few clicks. Nice!

Leo walks us through the process, explaining how the Gato AI Translations plugin automatically translates posts, images, and taxonomy terms while maintaining the integrity of your website’s layout and structure. The plugin is designed to keep all translated versions synchronised, so any updates to your original content can be effortlessly mirrored across all target languages.



We talk about the technical underpinnings of his solution, and Leo also tantalises us with what the future may hold. His approach with GraphQL not only simplifies current challenges but sets a foundation for further expansion, allowing for the development of numerous additional plugins that could individually cater to specific AI-backed needs.


WP Builds Deals Page

If you’re currently managing a multilingual site, or if you’ve been curious about the potential of AI in your WordPress projects, this episode is for you.

Mentioned in this podcast:

Gato AI Translations for Polylang

Key Topics

Introduction and Background

  • Introduction of Speakers
    • Nathan Wrigley as the host.
    • Leo Losoviz as the guest.
  • Recent Meeting
    • Mention of recent conference in Manila.
    • Upcoming plans for a conference in Mumbai.

Leo’s WordPress Journey

  • Getting Started with WordPress
    • Began working with WordPress in 2010.
    • Transition from computer science background to WordPress.
  • Development of Plugins
    • Developed GraphQL API, Gato GraphQL plugin.
    • Transition to new projects and plugins.

Gato AI Translations Plugin

  • Overview and Purpose
    • The plugin leverages AI for translations.
    • Built upon existing Gato GraphQL plugin.
  • Functionality and Features
    • Translates post content as it’s published.
    • Supports multiple languages with automatic and manual translation options.
    • Includes legacy services and AI for translation.
  • Specific Use Case
    • How the plugin handles translations via GraphQL queries.
    • Workflows for translating WordPress posts.

Technical Details

  • Underlying Technology
    • Role of GraphQL in manipulating data.
    • Building parsers for different WordPress page builders.
  • Handling Different Content Types
    • Images, meta-data, and page hierarchies.
    • Synchronization across categories, tags, and posts.

Future Developments

  • Upcoming Plugins
    • Idea for automation plugins using AI.
    • Potential multi-site translation features.

Pricing and Access

  • Current Pricing
    • Different pricing tiers for domain licenses.
  • Consideration for Changes
    • Potential future updates or additional features.

Closing Remarks

  • Summary of Features
    • Key benefits and usage scenarios.

Discover more from WP Builds

Subscribe to get the latest posts sent to your email.

The WP Builds podcast is brought to you this week by…

GoDaddy Pro

The home of Managed WordPress hosting that includes free domain, SSL, and 24/7 support. Bundle that with the Hub by GoDaddy Pro to unlock more free benefits to manage multiple sites in one place, invoice clients, and get 30% off new purchases! Find out more at go.me/wpbuilds.

The WP Builds Deals Page

It’s like Black Friday, but everyday of the year! Search and Filter WordPress Deals! Check out the deals now

Transcript (if available)

These transcripts are created using software, so apologies if there are errors in them.

Read Full Transcript

[00:00:00] Nathan Wrigley: Hello there and welcome once again to the WP Builds podcast. You've reached episode number 414 entitled Revolutionizing WordPress Translations: Leo Losoviz talks Gato AI Translations for Polylang. It was published on Thursday the 20th of March, 2025.

My name is Nathan Wrigley, and I'll be joined in a few minutes by Leo, but before then, a few bits of housekeeping.

First of all, if you like what we're doing over at WP Builds, I've got a suggestion for you. Why not go and subscribe? Now, there's a couple of ways that you can do that. If you want to get email from us, go to wpbuilds.com/subscribe, fill out the form there, and we'll send you an email each time we produce content.

That's typically on a Tuesday, when we have parceled up the Monday This Week in WordPress show, we send that out as an audio podcast the next day, and notify you via email that that has happened. But also we'll notify you when we produce this the Thursday podcast. That's what you're listening to now. So that's how to do it with email.

The other way might be to subscribe to the podcast, and you can do that by going to wpbuilds.com/subscribe. Find the RSS feed, or just go to your podcast player of choice, type in WP Builds, and subscribe over there. And that way you will automatically download the latest episode into your podcast player, so you can listen to it whenever you are gardening, vacuuming, cleaning out the bathroom, whatever it may be, we will be right there with you. wpbuilds.com/subscribe.

If you like what we're doing, and you have a product or service in the WordPress space, perhaps you are a plugin creator, theme creator into blocks. Perhaps you've got a hosting company, or something like that. If you would like to get in front of the audience that we have, a very specific WordPress audience, head to wpbuilds.com/advertise, to find out how we can help you with that enterprise.

Three companies that have just done that, are GoDaddy Pro, Bluehost and Omnisend.

The WP Builds podcast is brought to you today by GoDaddy Pro. GoDaddy Pro, the home of managed WordPress hosting that includes free domain, SSL, and 24 7 support. Bundle that with The Hub by GoDaddy Pro, to unlock more free benefits to manage multiple sites in one place, invoice clients, and get 30% off new purchases. Find out more at go.me/wpbuilds.

And we're also helped this week by Bluehost. Bluehost, redefine your web hosting experience with Bluehost Cloud. Managed WordPress hosting that comes with lightning fast websites, 100% network uptime, and 24 7 priority support. With Bluehost Cloud, the possibilities are out of this world. Experience it today at bluehost.com/cloud.

And we're also assisted this week by Omnisend Omni Send. Do you sell your stuff online? Then Meet Omnisend. Yes, that Omnisend. The email and SMS tool that helps you make 73 bucks for every dollar spent. The one that's so good, it's almost boring. Hate the excitement of rollercoaster sales? Prefer a steady line going up? Well. Try Omnisend today omnisend.com.

And sincere thanks. Go to GoDaddy Pro, Bluehost and Omnisend for their support of the WP Builds podcast. Podcasts like this cannot happen without the gracious support of fine companies like that.

Okay. What have we got for you today? Well, I'm having another chat with Leo Losoviz. Previously, we've talked about his Gato graphQL plugin, and he has something built on top of that. It is called the Gato AI Translations for Polylang. And guess what it does? It will translate your content into a whole bunch of languages, and it will do it in a very impressive hands-off way.

So on the podcast today, Leo gets into why he built this. How he's leveraged his Gato GraphQL plugin to make all of this happen. How you go about setting up the translations to happen entirely automatically, in the background by binding it to various AI agents. It really is quite remarkable how it works, and hopefully we get it across to you today.

So that's all coming up on the podcast, and I hope that you enjoy it.

I am joined on the podcast by Leonardo or Leo. Let's go with Leo Losoviz. How you doing?

[00:05:02] Leonardo Losoviz: I am doing very well. Thanks, Nathan.

[00:05:04] Nathan Wrigley: You are very welcome. Leo and I were like whole feet away from each other not that long ago. We are recording this on the 4th of March, 2025, and just a week or so ago, Leo and I were stood in the, the Philippines conference center in Manila, chatting about WordPress and what have you.

You made it home safely, to Malaysia.

[00:05:25] Leonardo Losoviz: Yes. Yeah, for me it was just a small flight. no, no big deal. And, I plan to come to Mumbai too next year, so I'm already excited about it.

[00:05:35] Nathan Wrigley: Yeah. Nice. hopefully I'll be there as well. But it was a pleasure to see you and it obviously a, real pleasure to get you on the podcast once more. Leo and I have done a whole ton of podcasts in the past, specifically around his plugin gato. GraphQL, if you go to the wp builds.com website and use the search facility and just type in Gato, I've pretty, convinced that it will spit out all the different bits and pieces.

But, that's not what we're here for today because Leo has a new project and it looks like from your website, it's one of. Some many in the future. But if you go to gato plugins.com, so pause this, gato plugins, GATO plugins.com. and then in the menu at the top, you've got, a plugins option. And if you, at the moment in there is just this one plugin and it's called Gato AI translations.

For Polly Lang, and I guess this is a case of the title says pretty much what it does, but, we'll get into that in a moment. Before we go, Leo, just tell us a little bit about yourself. Tell us about your word Pressy journey.

[00:06:45] Leonardo Losoviz: I've been working with WordPress since two 10. since 2012. a friend of mine asked me to check a website of his, and I had no clue about it. I had studied like, computer science and I had experience with, software in general. I had never used WordPress. And when I saw how power powerful it was or like in love with it, and then I started making a website and the website became.

A kind of API and the API became GraphQL, API, and then that's when I launched, my other plugin, Gato, GraphQL. And now I have this idea of creating new plugins, reusing my GraphQL, plugin to, yeah, to create new, new, new for new use cases.

[00:07:33] Nathan Wrigley: oh. wait. So you've used the plugin, the sort of the engineering behind the plugin to create this plugin. I'm guessing it's not a direct derivative, it's just bits and pieces of the technology in there, or is it literally created out of that plugin?

[00:07:49] Leonardo Losoviz: Both plugins are the same plugin, actually. the new plugin Gato AI translations is a wrapper of gato GraphQL. Gosh. yes. And gato, GraphQL. It took me like, what, like 10 years to build. I.

[00:08:03] Nathan Wrigley: Yeah.

[00:08:04] Leonardo Losoviz: But these plugins that I'm building now, they take me maybe one month to create. So basically now I can vote that it took me only one month to create the plugin, only because I have been working on it for 10 years and one

[00:08:17] Nathan Wrigley: Okay, so you built this incredibly complicated plugin, which is able to use, GraphQL to do. Honestly, we could go into this for hours and we have go and search for it on WP Builds. But you can do a whole range of complicated things, with that plugin. And so you are saying that you've stripped the UI away from the Gato GraphQL plugin, but embedded the functionality inside of this smaller plugin, if you like, which does one thing.

and in this case it's translations. Okay.

[00:08:55] Leonardo Losoviz: can do a lot of things like a tool for. For doing anything you want to do concerning data. but it's complex because you have to create the queries for whatever it is that you want to do. So now what I'm going, what I'm doing is creating that query that does a specific thing and wrap it under a plugin.

So this one is basically one graph query that fetches the data from the database, like the post with the tile and the content, and then it calls an ai. Like charge GBT or Google Translate, it translates the data and puts it back on the database. It's just one GraphQL query, and then I have a UI to basically select all the, options that, that you want to do.

and they know you know that the GraphQL running, they know GraphQL server whatsoever. What you have is just a use case and you operate it with the user interface. You click a button, you. Press another button and you're done. And also, that's why I got, I, call my venture gotto plugins because this is the first plugin.

But like this, I have many more, which will be coming soon. As soon as, whenever I can implement them, I will do it. So the first one, for instance, with Ang, but I can do the same for multi-site, just modifying that, graphical query. So instead of storing the data on the poly. using, management, I can, store it on a multi-site.

I can also integrate with other plugins posted in the future with WPML or maybe translate press. these are things I have to consider. And then interacting with the API. In this case, I do translation, but instead of doing translation, I can do, I dunno, I can say fix my grammar. And then I will have another playing call

[00:10:38] Nathan Wrigley: Yeah, Gato. Fix my grammar. Yeah.

[00:10:40] Leonardo Losoviz: grammar.

Yeah, exactly. or just AI automations that you can, even define which automation you want to do. Like you can automatically create a tile from the content or. Create the tag from the content or select tag from the existing tag, or create the feature image. All of these are just one query that has to be coded and with my server that I have already implemented, that is doable.

I just need to code the query and wrap it in a play with a specific ui. And I'm, ready to go. So that's what I'm actually I had no idea that's what was going on, but that's really sublime. So again, just to give the listeners some context there, the gato graph, QR plugin, which is the basis for this, and as I said, I hadn't realized that has this ability to take data from somewhere. Put it somewhere else, modify it on route in whichever way you wish it to be modified.

[00:11:33] Nathan Wrigley: But you have to have a fairly decent technical understanding of how those things are done. So it wouldn't be a case of your grandmother could do this necessarily. And so what you've decided, my grandmother certainly could not. but the, point being that you've stripped away that. That difficult level of understanding how GraphQL works and what have you, and you've decided to say, okay, let's ship plugins, which do a subset of things and just wrap.

Wrap it around one use case. So in this case it's gonna be translating content in for, one example, WordPress posts, but could be pages or custom post types or what have you. And so does the user of this plugin have any idea of that? In other words, is there any bit of the UI which says, I'm leveraging the GraphQL plugin, you can change the query here if you want.

Or is it just a case of it? you know it, that all of that underpinning technology is hidden away.

[00:12:30] Leonardo Losoviz: by default, no, but there's this, opportunity to translate custom blocks. So this works with the classic editor and with gut temper and the plugin. What it does is to extract the properties from the blocks and translate only the properties. So then it doesn't break the block, it doesn't break the, gut layout because.

If you just translate the whole HTML, it might happen that whichever API you call doesn't do it. 100 perfect, translation and maybe one code is not, put back in place. And then it breaks the whole formatting. So what I do is to try to extract the properties and translate those, which is great, but then you need to know the.

Structure of the block and all, the core blocks from WordPress, like core paragraph and video and tile and, block code, all of those are supported by, default. But maybe you have your own custom block. So then you will need to, have the plugin be able to extract the property from your custom block.

In that case, yes, you will, use GraphQL. but I, also explain how, to do it. It's very easy and actually simple. It's easier than doing it with PHP. Basically what we're doing is using GraphQL instead of doing, of using PHP to, to access the data and it cannot break. yes, basically, I would say 90% of the time you will not, need, and if you need to extend the plane, you might need to use graph

[00:14:03] Nathan Wrigley: I think this is so remarkable because like you said, you've spent 10 years building this plugin, which can do so many complicated things, and maybe the audience for that is enormous, but maybe the audience is quite small, but then you are able to hive off. An almost infinite number, I know it's gonna take you a month to implement the plugin and what have you, but you've got this backend, which you can repurpose over and over again for wrangling data on websites and yeah, so in this case, you began with translations, which seems like the perfect.

perfect encapsulation of it because it, it really demonstrates perfectly exactly how it works. Okay. That's fascinating. Let's get into what it does. and again, once again, it is called Gato AI Translations for Poly Lang. It pretty much says what it's doing there. Poly L is a, is, that a free open source?

100% free plugin that you can down from the download from the repo.

[00:15:06] Leonardo Losoviz: Yes, it is on the Ripple and it's free. And they also have a commercial version of Poly and Pro that they give you, more advanced features and they also have translation with machine learning. I think they use deep. so yeah, you have both of both options and my plugin works with both, the free and the

[00:15:27] Nathan Wrigley: Okay, so you've got this capacity to download a piece of software, which you know is a different plugin, but this. Basically offers the opportunity in your WordPress website. So let's say in my case, I only write in English, I speak no other language, and I don't read any other languages. But let's say that my audience wishes to consume that content in French, and we're talking about text content at the moment.

Maybe there's more to it than that, but let's say I want to translate it to French, to to German, to Dutch, to Chinese, to Japanese and what have you. Poly L puts the interface in to do that. But your plugin then sits on top of that and does the actual work of binding the AI APIs so that when I publish my English post, it will then go and create equivalent posts in German, in Belgian, in Dutch, whatever it might be.

There isn't a Belgian, but anyway, there we go.

[00:16:25] Leonardo Losoviz: Yeah, you, just said everything. you are. Absolutely right. So basically when you click publish, it will fetch the information of what language you have in your database, and it will translate the, post to all of those languages, create the entries, call the API do the translation, insert the strings back into the translation entries.

Store it. So basically it takes away the pain of having to create the translations manually. And that takes, it could take several minutes, and here now it's done automatically.

[00:16:59] Nathan Wrigley: so let's go through the workflow of that then. So I set up poly L, to say I wish to do, I've got English as my base language, and I want French and German. Let's just stick with that for now. But it could be anything, right? Anything where the AI can do that, you then install your plugin.

And you presumably have to bind an API key in for some, AI service. And do you wanna just run through what the list of those are that you've got at the moment?

[00:17:27] Leonardo Losoviz: So there are like six services right now. four of them are ai, typical AI, ones chat, GBT Cloud, deep and Mistral. And then there are two, what we now call the legacy services, which are Google Translate and Deep. Even though three months ago they were like, all the rage, but now they're called legacy services and you, can choose whichever you want.

Actually. You can choose language by language. You can say. When you translate to French use Mistral. Mistral is an, is a French AI company. And I dunno, maybe they have better, support for, translating to French. Maybe you want to translate to Chinese and you decide to use deep seek. Maybe you decide to use, Google Translate because it's way faster, or close because it thinks a bit more.

More, better, more like exquisite in its, thinking. But you can define this language by

language. yes. And you have to add the API key. So basically I don't have a service, I don't have a backend. You have to connect to me. You connect straight to the API. So in, in the plugin, you add the API key for that service.

And depending on how much time or. How much content you translate, that service will charge straight to you. So for what I have seen, it's not, expensive actually for 3 cents of dollar. You can translate five posts. So it is, it's really known, not, not expensive to, to do, these automatic

translations. So again, just to make sure that we're all on the same page, I am in my WordPress website. I've installed Poly L I've now installed on top of it the Gato AI translations for Poly L and I've got all that configured. API Keys have gone in and everything's good to go. I've decided that I'm gonna use this.

[00:19:22] Nathan Wrigley: Particular ai, LLM, for my posts, and I hack away. Type, I've written my 10,000 word article and. All I do is click publish in the same way, right? I just click publish, wait for a period of time. The content gets consumed out of my WordPress website, pushed via the API to the AI service that I'm using.

It does its work. And then what does it do on the WordPress side? I think it's creating draft posts with a modified title. So the title. Is the French version or the German version or whatever. Have I got that right?

[00:20:05] Leonardo Losoviz: Yeah, exactly. So when you publish by default, you will create the entries for all of the translations. And store them as draft. You could also have it to be published automatically, but by the default, you, do it as draft, and the idea is that you can still edit it. You can edit the translated entry and see that it's all right and only then click on publish.

You can have a translator friend who will. Make sure the translation is, proper. And if there's something that is not right, then they can actually fix it. And this is important because we're actually using the WordPress editor itself as the tool to manage the translation. So they no need to do copy paste.

They no need to copy all the content into a Google Doc that then using it to some translation service and then translate everything. And then you have to copy again, all the content back into WordPress. That will take you, five minutes or 10 minutes. This is all auto automated and the, fixing, the translation will happen again on the WordPress editor.

And if you're using Guten, for instance, everything is already inside the blocks, so you don't need to recreate the structure of the, original, Okay, so let's say that I create a blog post and it's called How to, I don't know How to. How to build a cat. Let's go with that. I dunno how you would do that, but nevermind. Maybe the AI can figure that out for me, but I write it in English. I click publish and it's, gonna be translated. And what I will get then is I'll get the published version in English, because that's how I began.

[00:21:38] Nathan Wrigley: And then if I go into my posts, editor screen, my data view of, posts, I'll see two more. In my case, I'll see a, an unpublished, a draft French and a draft German. And then I will go in and as you say, it's not, we're not using meta boxes or anything like that. This is just. It's got, we've got a brand new post it's post content in there in German.

if I spot an error, I can just go in and edit it in the same way. Have I got that right? It's draft posts, which I can then publish. Okay. perfect. Now what then if my content happened to be peppered with, I don't know, an image here. I don't know, a, block quote here, maybe an embedded YouTube video and all of that.

How, does it manage any of that? Does it skirt around? And I'm imagining GraphQL is the perfect model for doing

[00:22:32] Leonardo Losoviz: Yeah, exactly. Yeah. Actually, graphically is the perfect tool for this. it extracts the property from the block and then it. Only translates the property. So you have the image block, and the image block has the source image, and it has the caption. So you only send the caption to translate and the source image remains

[00:22:51] Nathan Wrigley: Oh, wait, okay, so it's, translating. So the, string, the URL of the actual file remains the same. So it's how to build a cat png that's gonna be the same across all three posts. But the, but you're sucking out the caption and you're translating that string, huh?

[00:23:10] Leonardo Losoviz: Exactly. So what it does is you, have the blog post with all of the blocks and it can also go deep into the blocks because for instance, the table has the cell and the cell has the content. So it can actually, I. Go really deep inside the structure of the content and only extract the properties that need to be translated.

So in the case of the image, for instance, we have the image that it cannot be translated and the caption will be translated. Same with a video that you have the sources of video and you will have a caption. You only extract the caption, and then what it does is it extracts all of these properties. All of them from the post, and it creates one, array with all the strings.

And he sends one request to the API to chat PT with a prompt saying, translate this list of strings. So then chat g, pt, or whichever API will return a js O with that list of strings. And when he it comes back, I get. That list of strings and then I put them back on the original place in the block where, from, where they came from.

And then I just store the

[00:24:16] Nathan Wrigley: Okay, so it can handle not just like captions in images, but it could handle like fairly complicated, I dunno, tables and things like that. So it would be able to,

[00:24:24] Leonardo Losoviz: can handle everything. Now the thing is this, right now it works with the classic editor, which is just a pure blob of HTML, no big deal, and with gut number. And people have been asking me, does it work with Bricks? Does it work with Elementor? And the answer is both Yes and no. Yes, because yes, you tell cha, GBT translate everything and it will translate everything.

But then once again, it will, it could do it wrong and then the format will not appear right on the translation. And that is a problem because whenever that happens. Then you cannot edit the translation. You edit the translation and the format is all broken. So then I say no for the time being, no.

What I need to do is to create a parser to parse the format for that specific page builder. So right now, Elementor. Elementary is not supportive. I, once again, you could do it, because you're, a cowboy and you sure let's do it. But I don't sell it like that. I don't say, I don't say you, you can do it because you cannot edit it.

And I think that's my next frontier to add parsers for a lot. These page builders, certainly for elementary, many, people have requested that already. And for bricks, I also had, and also for, deviance, somebody asked me to do this, so eventually. you can pretty much translate absolutely

[00:25:48] Nathan Wrigley: But that's, that's because of the problem of how that page builder creates its stuff, the HDML wrapped around the table and the image and whatever it may be. Yeah.

[00:26:00] Leonardo Losoviz: Exactly, because you have the page, they all use page as the custom post type to store their content. you have the elemental template, you have the brick stories, and they, have a page, and inside the page they have their own components and they have some formatting to tell one component from the other.

So the, parer needs to understand that format and extract the property from within. and this have been coded for Gutenberg. So basically Guttenberg, you might be aware of the formatting that it does. They has like the an h TM L comment with all the properties. So then the GraphQL parser extracts the property from this, from the format.

It knows how to do that. It can, I can do the same for Elementor to interpret the format in which Elementor stores its data inside of the page. And whenever that happens, you can translate also all the elementary templates automatically.

[00:26:53] Nathan Wrigley: I think the sublimely cool thing about this. okay, it, we've had translations in WordPress with third party plugins and what have you for many, years. the point is you've been able to do something like this for ages, but what makes this so compelling is how quick it is, and.

In the examples that you show now, I dunno if it's a bit of clever editing on the video, you can tell me in a moment, but basically, you finished your blog post and obviously, caveat mTOR, if it's got 20,000 words and 600 images with a hundred captions and 40 categories and blah, blah, blah, it might take a bit longer.

But a typical blog post of say, let's say a thousand words with translations into three languages, it looks like it really does take a matter of seconds. the amount of time that it, I don't know, I could go off and make a cup of coffee, come back and it's all done. And I imagine if it was just text and a few languages, it would probably just take a couple of seconds.

I, I, is that the case or have you cleverly edited your videos to disguise that? or is it pretty, pretty quick? Basically because in the past you'd have to communicate with translation services. send off an email or do something inside a meta box or what have you. But this just all is all happening live.

[00:28:11] Leonardo Losoviz: the videos are not edited, but they're using Google Translate, which is very fast. But nowadays people want charge GPT and charge GPT takes much longer. So in the videos, the translation is done like within one second maybe, and charge G

[00:28:27] Nathan Wrigley: GPT over Google translate? Is it actually better or is it just that everybody likes chat? GPT.

[00:28:34] Leonardo Losoviz: both, both. I think charge GBT has this context. He knows better about you, about where you're coming from. It can translate to address what needs you have. So you can be more subtle. You can, translate something for a specific use case. You can say that if you can even say the translation should.

Have good SEO and you cannot do those things with Google Translate. Google Translate is more, more raw translation. You cannot customize it for your needs. And I think that people want that, they want that level of personalization in a way. but that comes at the cost that it takes longer. So the, when you use chat, GBT might take maybe.

10, maybe 15, maybe 20, maybe 30 seconds. Depend. It really depends on the amount of content that you're translating. Adding more languages doesn't take longer because the plugin will send independent requests,

[00:29:27] Nathan Wrigley: Oh, okay.

[00:29:28] Leonardo Losoviz: asynchronously. So you have five language. You have French, Spanish, German, Japanese, and Chinese.

And it will send five requests to the API independent from each other. And when the five of them come back. Then the response will keep processing into adding all the five entries. what it makes, what makes it longer is the amount of text that you're translating. And in the case of the ai, some ais have better handling of that because they have a more, a bigger I.

Context window.

[00:29:59] Nathan Wrigley: Yeah.

[00:30:00] Leonardo Losoviz: so now for instance, there's clo they say is very good for deep thinking, but it gave you very small size. They only have eight K for that context window. That means that you cannot relate like long blog posts. Now they, seem to have address better nowadays. Closed sonnet 3.7, they give you 128 k.

Now it seems to be better. So this is like an arms race. It keeps evolving and maybe it will be faster. I added support for Mistrial, which is a French AI company, and supposedly it's faster than chat t.

But once again, you had to test it. You had to use it and see how, real that is. So then, yeah, so in other words, if you want it to be fast, super fast, Google translate and deeper are really good.

But if you want like that level of personalized content that maybe have better translation that addresses a specific demographic or some people from some country or. Whatever intention you have to do with your content, then AI is, much better.

[00:31:06] Nathan Wrigley: Now the plugin is also, working with Ang to do a few nice things along the way. for example, if you click publish on that, how to build a cat post, the French version will. Be titled How to Build a Cat in French and the German version in German and what have you, but also things like metadata bound to it as well.

So the tagging, the page hierarchy, what the parent is for the post and all of that. All of that comes out and I dunno if that's a function of poly L or if it's a function of what you do. I'm imagining it's a function of poly L, but that's all happening in the background as well.

[00:31:42] Leonardo Losoviz: No, that's a function of

[00:31:43] Nathan Wrigley: Oh, nice. Okay,

great. okay, so what, poly gives you is the management of the, content of the translations. So poly gives you the ability to translate. Tag categories, custom post types and media. And then on top of that I added the logic that whenever you create a category, it automatically will translate it and create the terms for all languages.

[00:32:08] Leonardo Losoviz: Whenever you add a tag, it will automatically create the translation for all languages. Whenever you upload a an image, it will automatically. Create new entries for that image using the same source file. It doesn't duplicate the file, but it creates a new entry on the database so that you can translate the caption, the description, and the alt for the image.

And all of this happen as you are creating the blog post on the WordPress editor, so in the WordPress editor. You have on the main content, you're writing the blog post, and then on the side you have the, sidebar, right? And then you can add a category and you add category. It automatically assigns. It creates the category in the language and when you publish the blog post in Spanish, sorry, when you publish in your language in English, it will create the translation in Spanish and the translated post in Spanish will be assigned the translated category in Spanish and the translated text in Spanish and the translated feature image in Spanish.

So they like a relationship. Across all of these entities and it's respected all the time, and it happens throughout the history of the post. So then you come and you edit the post again, and you delete one tag and it will also be deleted from

[00:33:23] Nathan Wrigley: Oh, it binds them all together. So the English note, the English category is the same as the Spanish one, even though they've got a different word attached to 'em, they're bound together. So delete one

[00:33:32] Leonardo Losoviz: yeah, so that you have the tag in, English has a relationship to a tag in Spanish. Then that tag in English is added to a post in English. The corresponding tag in Spanish will be added to the corresponding tag, post in Spanish. And this synchronization is happening all the time. So whenever you do any change, you are the category.

That will be synchronized to all of the translations. Whenever you add another image that will be synchronized to all of the translations. If you remove the image, the feature image from this post in English, it will be removed from the, translation from the translated

post. You've thought of everything and, can you interact with any of the languages in the same way, or do you always have to return to the version, which was the original? So in my case, do I have to return to the English to edit it or could I have a Spanish content editor say, I'm on the Spanish one.

[00:34:26] Nathan Wrigley: I wanna delete that image. Or does, is it

[00:34:28] Leonardo Losoviz: Yeah, I, it's really up to you. the idea is normally that you have one master

[00:34:35] Nathan Wrigley: right. That's what I would've

[00:34:36] Leonardo Losoviz: In this case, say in your case, might be English, and then you have the site in French and Spanish, right? And if you want to edit anything because it's a translation, you want to edit it in English.

Now you can also edit it in French. But then if you add a new paragraph in French, you run the risk that when you do any change in English, it will. it will override. It will override it. That's, yeah, that's why the idea is to have always like a master language from which you push the content to all the other languages, and then in the other language you can edit it mostly to fix any problem, but not to add content.

[00:35:15] Nathan Wrigley: Does the, does the UI for the, so if I'm on the post screen and I see my great big list of. Posts and what have you, does it bind the similar content together in a sort of visual way? So in other words, if I've got my English post and then I've got my German and French and Spanish ones, which are kind of sis like children in a sense.

I know they're not, but Is there a way that I can keep those together? Because those, lists of posts can get a bit, it's difficult to keep track of everything, if If you've got hundreds and

[00:35:45] Leonardo Losoviz: Yeah. that,

[00:35:45] Nathan Wrigley: it's hard to know which ones went with what and.

[00:35:49] Leonardo Losoviz: Yeah. that depends on Ang and Ang. It has free and pro, the free version. I think that it just gives you all the posts for all of the entries. So then you'll have in the same list, it will say, this post in French, then the same one in Spanish, then in English, then another one in French, then another one in Spanish.

All of them together. At most. It gives you a selector at, the top that you can see all the posts in French. And only the ones in French and then all the posts in Spanish and nothing but Spanish. So at least it's not so

[00:36:20] Nathan Wrigley: Okay.

[00:36:21] Leonardo Losoviz: and I think that the pro version of Ang, it does have that better I think, that you can have a post and then you can better see the relationships.

But in any case, both Ang free and pro, you can filter like by language as I explained. And when you click on the post, there's an entry that shows you, which are all of the translations. And from there you can. hope to the

[00:36:43] Nathan Wrigley: Oh, I see. Okay. So almost like metadata within the post itself is a, is something about the relationship of the other posts that go with it. Okay. Okay. So I think we've done a fairly credible job of explaining how all that works and how obviously time consuming it would be. What if I came to this? Though, like my WP Builds website, I dunno how many posts there are, but there's multiple hundreds.

There might be over a thousand, I don't know. But the point is there's more than a couple. can we batch them like that? Could we, can we run some sort of batch process? And is it possible to, I don't know, limit. The rate at which that's happening so that I don't suddenly get a bill from chat GPT of $7,000, whatever it may be.

I know it's never gonna get to that, but Can we batch them? Let's start there.

[00:37:30] Leonardo Losoviz: Yes, we can. just now we were talking about automatically translating when you publish, but then you can also run it manually from the post list so you can. Select the items that you want to translate and via the bulk actions. And then there's a select and you can select, got to translate and it will translate all of these entries.

So then you can se you can select post that you have already written in the past and translate all of those.

[00:37:58] Nathan Wrigley: Okay, and can you, so what you're saying is you can just select, I don't know, let's do another 50, pick 50, do those, and then maybe tomorrow we'll do another 50 when we've seen what the

[00:38:09] Leonardo Losoviz: Exactly. Yeah.

[00:38:10] Nathan Wrigley: that. Yeah.

[00:38:11] Leonardo Losoviz: And if you use chat GPT, it might be a bit slow, so then you might as well, start running 50, go have a coffee and come back in a few minutes and see how it's

[00:38:20] Nathan Wrigley: Yeah, it's interesting how the word slow in the year 2025 is like when I was a kid. Slow. you're talking like you sit around for a couple of hours and wait for things to happen, but nowadays, the mere fact of waiting seven seconds, you say, oh, that's very slow. but it is, you are literally talking about the, length of time it takes to put water in a cup and come back upstairs and what have you.

It's, you're really talking a few seconds. Okay. That's

[00:38:48] Leonardo Losoviz: Yeah. How I was, as I was mentioning before, the time that it takes depends on the amount of content that you translate. So the what the plugin does is to send as few requests as possible. So there's a context window that you can send and you can fit a much data as possible with it within that context.

So you had 2000 blog post that will be, I dunno, 100 requests. And then you have to wait and wait but you can, split into batches of 50 and that's, that becomes more manageable.

[00:39:21] Nathan Wrigley: Okay. I think, we probably cracked it there. Let me just give you the URL one more time. So we're at GATO plugins.com. And then if you go to the, main menu at the top is a plugin section, which at the minute he only has one in it. But it sounds like you've got. Got some

[00:39:39] Leonardo Losoviz: It should be plugin

[00:39:40] Nathan Wrigley: Yeah. It'll come. But go and click on the Gato AI translations for Poly Lang and you'll be able to see everything in there. Is there any sort of hot feature that I didn't manage to pick up on that you wanted to mention, or do you think we covered off most of it?

[00:39:54] Leonardo Losoviz: we have covered most of the most important things. Yeah.

[00:39:57] Nathan Wrigley: Okay, let's quickly touch on pricing then. at the moment, caveat mTOR, who knows? Leo may change the pricing, but at the moment, $89 will get you a three domain, license. 139 gets you up to six domains and 179. We'll get you, 10 domains as well. So as I said, we'll see if that pricing changes, but that's what it is at the moment and gone.

Have you got any ideas for other plugins that you're gonna build or are you prepared to drop any of those or not?

[00:40:29] Leonardo Losoviz: I had five or six in my head. next one I actually, I had two that I want to build right now. And since I don't have another body and I cannot myself, I would have to choose between one or the other. one is ai. So AI automations, once again, this is the same plugin that I have already built, but instead of doing translation, it does something with ai, which is for instance, that you can automatically write the title based on the content, or automatically create the text or automatically fix the content or rewrite this for better SEO.

All of the things it's. Yeah. And the cool thing about this solution will be that once again, this will be, overrid, that the user can create their own automations. And I'm very excited because of that, that they no need to know how to program. this is a GraphQL query. If you're comfortable with GraphQL, then you can provide a query that will. Do something else. You call cha GBT to rewrite the content on it with some different characteristics and you're good to go. So they no need to program, they no need to know any PHP. Anyone can add their own recipes. And the second one that I want to build is the same plugin, AI gato AI translations for

[00:41:45] Nathan Wrigley: Oh, interesting.

[00:41:48] Leonardo Losoviz: Yeah. Yeah. and I have everything that I needed. I already have the way to fetch data from a multi-site store data in a multi-site. I can connect to the, to another site via the application password. It's just changing one GraphQL query and renaming the plugin and launch it, with a

[00:42:08] Nathan Wrigley: Yeah, it's amazing. It's amazing. You've got yourself really set up there. That's absolutely brilliant. couple of things coming down the pike in the near future, maybe some more as well. But, but for now, gato AI translations for poly land. go check it out. Honestly, if you scroll down on the. The homepage for that plugin, if you like.

Then, you'll pass the, the usual images explaining what's going on and some, some features and what have you. But if you get to, I would say about four-fifths of the way down, there's six or seven videos I. And, they're very short, like couple of minutes long, but they, it's Leo talking to the camera and showing, sharing his screen and does a really great job of, explaining how it happens and you'll get it in a heartbeat.

if you've got clients who want this kind of thing and you want an easy solution that the clients really don't have to get involved with, then this looks really credible. Leo, thank you very much for chatting to me about this today. I really appreciate it.

[00:43:05] Leonardo Losoviz: Oh, thanks to you. I love talking to you, Nathan. Thanks so

[00:43:08] Nathan Wrigley: You're very welcome. Thank you.

Okay, that's all we've got for you today. I hope that you enjoyed that. If you've got any comments about that, head to wpbuilds.com. Leave us a comment. Find episode number 414, and use the WordPress commenting system. That's what it's for. We'd really appreciate that.

The WP Builds podcast is brought to you today by GoDaddy Pro. GoDaddy Pro, the home of managed WordPress hosting that includes free domain, SSL, and 24 7 support. Bundle that with The Hub by GoDaddy Pro, to unlock more free benefits to manage multiple sites in one place, invoice clients, and get 30% off new purchases. Find out more at go.me/wpbuilds.

And we're also helped this week by Bluehost. Bluehost, redefine your web hosting experience with Bluehost Cloud. Managed WordPress hosting that comes with lightning fast websites, 100% network uptime, and 24 7 priority support. With Bluehost Cloud, the possibilities are out of this world. Experience it today at bluehost.com/cloud.

And we're also assisted this week by Omnisend Omni Send. Do you sell your stuff online? Then Meet Omnisend. Yes, that Omnisend. The email and SMS tool that helps you make 73 bucks for every dollar spent. The one that's so good, it's almost boring. Hate the excitement of rollercoaster sales? Prefer a steady line going up? Well. Try Omnisend today omnisend.com.

And sincere thanks. Go to GoDaddy Pro, Bluehost and Omnisend for their support of the WP Builds podcast. Okay.

That really, truly is it. Just a quick reminder, we'll be back on Monday for the This Weekend WordPress show. Live, wpbuilds.com/live, 2:00 PM UK time. And back on Thursday for a podcast episode. Hopefully we'll catch you at some point then, but if not, stay safe. Have a good week. Here comes some dreadful cheesy music. Bye-bye for now.

Support WP Builds

We put out this content as often as we can, and we hope that you like! If you do and feel like keeping the WP Builds podcast going then...

Donate to WP Builds

Thank you!

Nathan Wrigley
Nathan Wrigley

Nathan writes posts and creates audio about WordPress on WP Builds and WP Tavern. He can also be found in the WP Builds Facebook group, and on Mastodon at wpbuilds.social. Feel free to donate to WP Builds to keep the lights on as well!

Articles: 1067

Please leave a comment...

Filter Deals

Filter Deals

% discounted

% discounted

Filter Deals

Filter Deals

Category

Category
  • WordPress (44)
  • Plugin (42)
  • Admin (30)
  • Content (20)
  • Design (12)
  • Blocks (6)
  • Maintenance (6)
  • Lifetime Deal (5)
  • Security (5)
  • Theme (5)
  • Hosting (4)
  • SaaS app (2)
  • WooCommerce (2)
  • Not WordPress (1)
  • Training (1)

% discounted

% discounted

SUBSCRIBE TO OUR

NEWSLETTER

WP Builds WordPress Podcast

THANKS.

PLEASE CHECK YOUR EMAIL TO CONFIRM YOUR SUBSCRIPTION.

WP Builds WordPress Podcast