DEV Community

Mahdi JabinPour
Mahdi JabinPour

Posted on Originally published at lumowp.com

How to Translate 1,000+ WordPress Pages into Another Language with AI and WPML

Lumo AI Translator: translating 1,000+ WordPress pages

Hi everyone, Mahdi Jabinpour here. Hope you’re doing well.

If your WordPress website has a thousand pages—or even more—translating them one by one can quickly become a project you keep putting off.

Opening every page, copying its content into an AI tool, bringing the translation back, and connecting it to the original language is a lot of repetitive work. And once you have several people doing it, keeping names, terminology, and formatting consistent becomes another job.

We built Lumo AI Translator for WPML to bring that translation process into WordPress. You connect your own AI provider, assign content to the translator, and monitor the work through a queue.

But before you send your entire website for translation, let me explain how I would approach a project of this size.

1. Decide which pages actually need translating

Having 1,000 pages does not necessarily mean all 1,000 should be translated.

Start with the content that would genuinely help someone using the new language: your main services, useful articles, relevant products, and the pages people need to contact you or complete a purchase.

Old announcements, duplicate landing pages, and products you no longer sell deserve a review first.

Count pages and languages separately

1,000 source pages translated into one additional language means approximately 1,000 page-language translation jobs. Translate those same pages into three additional languages, and you are planning approximately 3,000 jobs. This is a planning estimate, not a guaranteed queue count: shared templates, navigation and taxonomy terms may need separate work.

Choose one target language first. It makes the first rollout much easier to inspect and manage.

2. Prepare WPML and connect your AI provider

You need WPML configured with the correct source language and the target language you want to add.

Then install and activate the Lumo addon. It works alongside WPML; WPML still manages the relationships between the different language versions of your content.

Open Lumo WP → Lumo AI Translator → Settings. Choose your AI provider, enter your API key, and select an available model. Save the settings before using the connection test: that control uses the saved configuration.

We support several providers, including OpenAI, Claude, and Gemini. The right choice depends on your language pair, the kind of content you publish, and the results you get from a small sample.

Check that the provider account has enough credit or quota for the work. Buying a WordPress addon and paying for an AI provider are separate things when you use your own API key.

Before doing anything in bulk, back up your site and test the workflow on a staging copy.

3. Translate a small, representative sample

This is the step I would not skip.

Choose around 10 pages that represent the actual variety on your site. That number is a practical starting point, not a plugin requirement.

  • A short page with ordinary paragraphs.
  • A long article with headings and links.
  • A page containing technical terminology.
  • A product page, if you run WooCommerce.
  • An Elementor page with buttons or other interface text.

Run those through the translator and inspect the results.

Does the translation preserve the original meaning? Are your brand names unchanged? Does the translated page still look right? Are the buttons understandable? Do the links lead where you expect?

A provider that handles a simple blog paragraph well may need more guidance for your product descriptions. For a language you cannot review yourself, ask someone fluent in it to check the sample before scaling up.

It is much easier to improve a terminology rule after 10 pages than after 1,000.

4. Set your terminology before scaling up

Inside Settings → Custom Instructions, you can add rules for the translator.

Use Global Instructions for requirements that should apply across your content. For example:

Keep our brand and product names unchanged.

Use the approved terminology consistently.

Preserve URLs, shortcodes, and code identifiers.

Translate the original meaning without adding claims,
features, guarantees, or examples that are not in the source.
Enter fullscreen mode Exit fullscreen mode

Be specific about the terms that matter to your business. “Write a perfect translation” gives the model much less useful guidance than an approved product name or a clearly defined technical term.

Lumo AI Translator Global Instructions and content-specific instruction fields

Graphic adapted from the lab’s actual Custom Instructions panel. Harbor Desk and Smart Queue are fictional terminology examples.

There are also separate instruction fields for titles, body content, Elementor templates, and categories or terms.

Keep these instructions consistent with one another. In the source we reviewed, global and content-specific instructions are combined. A contradictory instruction in another field can therefore make the request less clear. Instructions guide the model; they do not replace reviewing its output.

5. Assign the content through WPML

For the main translation workflow, open WPML → Translation Management.

Filter the content by its source language and content type, select the pages you want to translate, and choose the target language.

When assigning the translation work, select Lumo AI Translator as the translator. Depending on your WPML version, the selection and assignment screens may look slightly different.

If the translator is missing, check its registration and language pairs before submitting a large batch.

Then open Lumo WP → Lumo AI Translator → Queue Status to monitor the jobs.

For your first larger run, I would select a manageable group of pages, inspect what happens, and increase the workload after confirming that processing is stable. Keep a simple record of which pages and languages you have already submitted so you do not repeatedly enqueue the same work.

6. Let the queue process the work in batches

This is where people sometimes misunderstand bulk translation.

Putting a thousand pages into a translation workflow does not mean WordPress should attempt to translate every page inside one enormous request.

The addon uses a queue and processes work in batches. In Settings, Queue Batch Size controls the configured number of jobs per batch. Enable Background Processing, under Advanced Options, allows the queue to be processed through WordPress cron.

Translation Settings showing queue batch size, content length, timeout and chunk delay

Graphic adapted from actual plugin settings. The displayed values are examples, not universal performance recommendations.

A larger batch is not automatically faster. Your hosting resources, page lengths, provider response times, and API limits all affect what happens. The screenshot’s values are a demonstration configuration, not universal recommendations.

There is a useful detail in the queue-manager source we reviewed: when the pending queue exceeds 100 jobs, the code adjusts the effective batch size to between three and five jobs:

$effective_batch = $pending_count > 100
    ? min(5, max(3, $this->batch_size))
    : $this->batch_size;
Enter fullscreen mode Exit fullscreen mode

This excerpt is from includes/class-queue-manager.php in the reviewed addon version, 3.20.28. You do not need to paste it anywhere. It explains why the configured number alone does not describe how a large queue will run.

Start conservatively and watch the actual progress. Enable Content Chunking can split long content into smaller pieces; it does not make provider limits or hosting limits disappear.

7. Configure reliable background processing

WordPress cron normally depends on requests to your site. On a quiet website, scheduled processing may not run as promptly as you expect.

The addon includes a Cron Setup section with commands generated for your installation.

Ask your hosting provider to configure the appropriate server cron using the command shown there. Do not copy a filesystem path from another website or an unrelated tutorial.

After configuration, verify that pending jobs actually move forward. Having a cron entry in your hosting panel is not enough if it points to the wrong PHP executable or file path.

Keep any secret processing URL private.

8. Review failures before retrying everything

If the queue stops progressing, check the reason before submitting the whole website again.

What you see What to check
Jobs remain pending Background processing and cron execution
Provider quota errors API credit and account limits
Repeated rate-limit errors Request frequency and provider limits
A few long pages fail Job details, content size, and chunking settings
A translated page still looks wrong The actual translated document and any shared templates

The addon has retry and recovery logic, but that does not make every failure harmless or every retry free.

Fix the cause, identify the affected jobs, and retry the work that needs it.

Also, be careful with Bulk Tools. Some tools are for retranslating existing titles or fields. A control that processes 1,000 titles is not the same as a workflow that translates 1,000 complete pages.

Lumo AI Translator Bulk Tools showing Selected Posts title retranslation and an overwrite warning

Graphic adapted from the actual Bulk Tools panel: Selected Posts repairs titles; it is not the complete-page queue workflow.

Read the action label before running it, especially when it can overwrite an existing translation.

9. Check the new language as a visitor

A completed queue is only part of the job.

Open the translated website and follow a normal visitor journey: homepage, service or product page, navigation, contact form, and checkout if applicable.

Review shared headers and footers separately. They may be stored as Elementor templates rather than as part of the page you translated.

For a large rollout, review every business-critical page and sample the remaining content by page type. If you find a repeated error, pause the next batch and fix the underlying instruction or workflow.

What I would do first

If I were starting this process today, I would choose one language, translate a small sample, approve the terminology, and then expand the queue in stages.

You can see the addon and its available workflows here: bulk AI translation for WordPress with Lumo and WPML.

The number of pages is only one part of the workload. A thousand short pages and a thousand detailed technical articles are very different projects. There is no honest fixed completion time or cost that applies to both.

What matters is having a process you can monitor, review, and recover when something fails. Once that process works on a small sample, you have a much better foundation for translating the rest of your site.

What this guide is based on

The addon’s settings and queue implementation were reviewed in version 3.20.28. Tutorial graphics use actual settings captured in our local documentation lab, with editorial framing. This article does not claim that a 1,000-page performance benchmark was run.

Top comments (0)