Check my theme free
HomeGuides & How-toArticle
Guides & How-to

How to translate a WordPress theme into another language

Theme strings vs. your content, why "translation ready" matters, and the right method for each — from one setting to a full multilingual plugin.

How to translate a WordPress theme into another language — conceptual editorial illustration
Representative demo screenshot, captured by the ThemeBurn Speed Lab.

Editorial opinion based on hands-on experience — not financial, investment, or professional advice. Some links may be affiliate links; see our disclosure.

Bottom line up front
  • There are two different jobs here: translating the theme's built-in text (buttons, labels, dates) and translating your own content (posts, pages). They use completely different tools.
  • For theme strings, the fastest path is often just setting your WordPress site language — a translation-ready theme with bundled translations switches automatically.
  • If no translation exists, Loco Translate edits theme strings in the browser; .po/.mo files do the same job for people who prefer the file-based way.
  • For a genuinely two-language site, you need a multilingual plugin (Polylang, WPML, or TranslatePress) — that's the only thing that translates content and handles hreflang for SEO.

01First, decide what you're actually translating

How to translate a WordPress theme into another language: quick implementation checklist
CheckGood signFix before moving on
BackupYou can roll back the site or settingNo restore point exists
StagingChange is tested on a copy firstLive site is the first test
MobileThe result works on a narrow viewportLayout only works on desktop
PerformanceNo large new asset or plugin is added casuallyThe change slows every page

"Translate my WordPress theme" means two very different things, and picking the wrong tool for the job is where most people waste an afternoon. Sort which one you need before you install anything.

  • The theme's strings — the text the theme itself ships with: "Read more", "Search", "Posted on", "Leave a comment", footer credits, widget labels. You didn't write these; the theme author did.
  • Your content — the words you wrote: post bodies, page copy, menu labels, product descriptions. The theme has nothing to do with these.
  • A multilingual site — showing the same content in two or more languages, with a switcher, so a visitor can read everything in English or Spanish.

Translating theme strings is a small, one-time job. Translating your content into a second language is a much bigger project that needs a dedicated plugin. Confusing the two is the classic mistake — people install a heavyweight multilingual plugin when all they wanted was to change "Read more" to "Leer más".

02Check the theme is "translation ready" first

Before you can translate a theme's strings, the theme has to be built to allow it. The term for this is "translation ready" — it means the developer wrapped their text in WordPress's internationalisation functions so the strings can be swapped out.

Under the hood, translation-ready themes pass every visible string through functions like __() and _e(), each tagged with a text domain — a unique label that identifies which theme or plugin the string belongs to. That text domain is what translation tools hook into.

A translation-ready theme also ships a languages/ folder containing a .pot file — a template listing every translatable string with no translations filled in yet. If you see that folder, the theme is ready to translate.

How to confirm before you buy or commit: check the theme's listing for a "translation ready" badge or an explicit i18n mention, or look inside the theme folder for a languages/ directory with a .pot file. If a theme hardcodes its English text and isn't translation ready, no plugin can cleanly translate its strings — and that's a reason to pick a different theme.

03The methods, and when each one fits

There are four practical routes. The right one depends entirely on the job you sorted out earlier. Here they are from simplest to most involved.

1. Just set your WordPress site language

Go to Settings → General → Site Language and pick your language. WordPress immediately translates its own admin and core strings. Crucially, if your theme is translation ready and ships a translation for that language, the theme's front-end strings switch over automatically too — no plugin, no files.

This is the first thing to try. For a site that lives entirely in one non-English language, it's often the whole answer. WordPress will even offer to download the language pack for you.

2. A translation plugin (Loco Translate)

When no ready-made translation exists, or a few strings come out wrong, Loco Translate lets you edit theme and plugin strings directly in the WordPress admin. It reads the theme's .pot template, shows you each English string, and gives you a box to type the translation. No FTP, no desktop software.

This is the sweet spot for most people who only need to translate theme strings. It's also how you fix a single awkward phrase in an existing translation without touching anything else.

3. Editing .po / .mo files directly

The file-based version of the same job. A .po file is the human-readable list of original strings and their translations; the .mo file is the compiled binary WordPress actually loads. You edit the .po in a tool like Poedit, which compiles the matching .mo, then upload both to the theme's languages/ folder.

Loco Translate produces these same files for you in the background, so most people never touch Poedit. Reach for the manual route only if you prefer working in files or need to hand a translator a .po to fill in offline.

4. A full multilingual plugin

If you want your content in two or more languages with a language switcher, none of the above is enough — they only touch theme strings. You need a multilingual plugin. The three established options:

  • Polylang — has a free tier, lets you create translated versions of each post and page, and adds a language switcher. A common starting point.
  • WPML — premium and feature-heavy, strong for complex sites and e-commerce, with built-in string translation for theme text too.
  • TranslatePress — translates the whole page visually from a live front-end editor, which many people find the most intuitive, and can layer in machine translation.

These are a bigger commitment: they touch your database, your URLs, and your performance, so a managed multilingual site is a real project. Pick one and stay with it — migrating content between multilingual plugins later is painful.

04Step by step: translating theme strings with Loco Translate

Here's the practical walk-through for the most common job — putting a theme's built-in strings into a new language. Do this on a staging copy if the site is live.

  • Install Loco Translate from Plugins → Add New, then activate it.
  • Open Loco Translate → Themes and click your active theme. You'll see any existing translations and the source template.
  • Click "New language", choose your target language, and pick where the files are saved — choose the custom location (Loco's own folder), not the theme folder, so an update can't overwrite your work.
  • Translate the strings. Loco shows each source string with an empty translation box. Work down the list; you don't have to do them all at once, and you can filter to the strings that actually appear on your site.
  • Save. Loco compiles the .mo file automatically. Set your Site Language to match (or, on a multilingual setup, let the plugin pick), then load the front end and confirm the strings changed.

If a string refuses to translate, it's usually one of two things: the theme hardcoded that text (not translation ready for that string), or another plugin is outputting it — in which case you translate that plugin instead, the same way.

05Keeping your translations through theme updates

The single biggest frustration with theme translation is watching your work vanish when the theme updates. It happens because the translation files were saved inside the theme's own folder, and the update replaced that folder wholesale.

  • Save to a safe location. In Loco Translate, always pick the custom (system) location rather than the theme's own languages/ folder. Files there survive theme updates.
  • Or use a child theme. If you keep translations in a child theme's languages/ folder, the parent theme can update freely without touching them — the same child-theme principle that protects code changes protects translations.
  • Keep your `.po` files. The .po is your editable master. Back it up somewhere outside the site so you can always recompile and re-upload if something is lost.

Get the storage location right once and updates stop being scary. This is exactly the kind of thing a staging environment catches early — clone the site, run the theme update on the copy, and confirm your translations survived before you let the update reach real visitors. Managed hosts like Cloudways make that clone-and-test loop a couple of clicks rather than a manual chore.

06SEO for a multilingual site: hreflang basics

Translating theme strings has no real SEO impact. But the moment you publish the same content in two languages, you've created a job for search engines: telling them which version to show which visitor. That's what the hreflang tag is for.

An hreflang annotation tells Google "this page is the English version, and here's the matching Spanish version." Done right, a Spanish searcher gets your Spanish page in results, and Google doesn't treat your two language versions as duplicate content competing against each other.

The good news: you almost never write hreflang by hand. Polylang, WPML, and TranslatePress all generate the correct hreflang tags automatically once you link a post to its translation. That automation is a real reason to use a proper multilingual plugin rather than rigging up two separate sites.

  • Give each language a clean URL structure — a subdirectory like /es/ is the common, well-supported pattern, and the multilingual plugins set this up for you.
  • Translate slugs, titles, and meta descriptions, not just body text — a half-translated page reads as low quality to both users and search engines.
  • Verify in Google Search Console after launch; its International Targeting report flags hreflang errors so you can catch a broken pairing early.

07FAQ

Do I need a multilingual plugin just to translate "Read more"?

No. That's a theme string. Set your site language first, and if that doesn't fix it, use Loco Translate. A multilingual plugin is overkill for changing a handful of theme labels.

What's the difference between .pot, .po, and .mo files?

The .pot is the empty template of all translatable strings. A .po is your editable translation for one language. The .mo is the compiled binary WordPress actually loads. You edit the .po; the .mo is generated from it.

Can I just use Google Translate on my whole site?

Auto-translation (built into TranslatePress and WPML) is fine for a first pass, but raw machine output reads poorly and can hurt trust. The workable approach is machine-translate, then have a human review the pages that matter most.

Will translating my theme slow the site down?

Translating theme strings adds essentially no overhead. A full multilingual plugin does add weight — extra queries and stored versions of each page — so pair it with caching and a fast host, and don't run more than one multilingual plugin at a time.

My translation disappeared after a theme update. Why?

The files were saved inside the theme folder and the update overwrote them. Re-do the translation in Loco Translate's custom location, or move it into a child theme, and it'll survive future updates.

08The short version

Decide first whether you're translating the theme's strings or your own content. For strings, try the site-language setting, then Loco Translate, and save the files somewhere a theme update can't reach. For content, commit to one multilingual plugin — Polylang, WPML, or TranslatePress — and let it handle the hreflang tags that keep your languages straight for search engines.

Get those two jobs separated in your head and theme translation stops being confusing. This is an honest how-to, not financial or business advice — every site is different, so test on a staging copy before you trust any change in production.

Alex Tarlescu
Operator — websites, domains & web platforms

I build, buy, and run theme-based websites and online stores — including on platforms whose themes were later abandoned. The migration and recovery advice here is the advice I follow on my own sites.