Unlock Elementor Pro All articles
Agency Operations

One Theme Builder, Two Tongues: A Welsh-English Build That Doesn't Fork the Site

Unlock Elementor Pro
One Theme Builder, Two Tongues: A Welsh-English Build That Doesn't Fork the Site

Photo: © Ra Boe / Wikipedia, CC BY-SA 3.0, via Wikimedia Commons

Bilingual briefs have a way of turning sensible builders into template hoarders. The client wants English and Welsh, so the temptation is to clone the whole site: one Theme Builder for English, one for Welsh, two headers, two footers, a popup for each, and a partridge in a pear tree. That is not a bilingual site. It is two sites wearing the same coat, and you will be the one maintaining both.

Meet Cwm Hafren Adventures, a fictional mid-Wales tourism operator with guided walks, a bunkhouse and a fleet of slightly tired kayaks. English is the default. Welsh is required for public-facing pages, local signage and the funding pack. They have around 30 pages, a tours custom post type and a booking form that needs to land in the right inbox. Here is how I would build it in Elementor Pro without forking the Theme Builder.

Keep One Spine in the Theme Builder

Start with the global templates: header, footer, single, archive and the Loop Item that renders each tour card. Build these once. Assign them to Entire Site, not to individual pages. The language plugin — WPML, Polylang or TranslatePress, depending on the client's appetite — handles the URL structure and the translated content. Elementor Pro does not do multilingual on its own, but it does not need to. It needs to stop you making a second set of templates.

The rule for the build: one structural template, many language strings. Global colours, typography, spacing, button styles and custom CSS live in one place. If the Welsh page needs a different typeface, question the brief before you question the template.

The Header: One Template, Two Menus

The header is where bilingual builds usually go wrong. The client wants a Welsh menu and an English menu, which is fair. That does not mean two header templates. Use one header with a Menu widget, and let the language plugin swap the menu by current language. If your particular stack will not swap the menu inside an Elementor widget, use a shortcode widget that outputs the correct menu, or accept one controlled duplicate: two header templates with identical structure and display conditions limited to each language.

The language switcher belongs in the header, top right on desktop and in the mobile drawer. Put a text version in the footer too, because people scroll. Label it English and Cymraeg, not EN and CY. Do not hide the switcher behind a flag icon; flags are not languages, and the Welsh flag is not a translation button.

Popups: Conditions Before Copy

Popups should carry a language display condition. A booking reminder on an English tour page should not pop up in Welsh, and a Welsh newsletter popup should not interrupt an English reader. If the popup is structurally the same — same layout, same fields — translate the content and keep one popup. If the offer is genuinely different, duplicate the popup and set the condition. That is a content decision, not a template decision.

The same logic applies to form confirmations. The booking form can stay one form with translated labels, validation messages and confirmation text. What often needs duplicating is the notification routing: Welsh enquiries to the Welsh-speaking inbox, English to the bookings desk. Do not clone the entire form onto every page just to change a thank-you message.

Loop Grid: Translate the Tours, Not the Grid

Cwm Hafren has a Tours post type. The Loop Grid sits on the tours archive and pulls each tour card. Build the Loop Item template once. Translate the tour posts through the language plugin so the dynamic fields — title, excerpt, price, duration — switch with the language. Then translate the static labels in the Loop Item, such as 'Book this walk' or 'Half day'.

If those labels will not translate cleanly, duplicate the Loop Item template only. Do not duplicate the archive page, the Loop Grid widget and every page that embeds a tour grid. That is how a 30-page site becomes a 60-page maintenance bill. Check the Loop Grid query as well: it should be limited to the current language, otherwise the Welsh archive will happily show English tours.

hreflang Is a Promise, Not a Plugin Setting

Most multilingual plugins will output hreflang tags for you. Your job is to check them, not trust them. Each language version should be self-canonical. The Welsh page should not canonicalise to the English page; that tells Google the Welsh version is a duplicate and the client's funding team will not thank you. Include an x-default pointing at the English version if English is the fallback. Keep the URL structure consistent — /cy/ for Welsh and /en/ for English, or whatever you agree — and make sure the switcher goes to the translated page, not the homepage.

Run a crawl after launch. Check the Welsh pages are indexable, the sitemap includes both languages, and the language switcher does not create redirect chains. Also check the small stuff: Welsh diacritics in titles, English alt text on Welsh images, and a search function that does not dump Welsh users into English results.

What to Translate, Duplicate and Leave Alone

Translate: page copy, menus, form labels and confirmations, popup copy, image alt text, SEO titles and meta descriptions, and the labels inside the Loop Item.

Duplicate only when behaviour changes: a popup with a genuinely different offer, notification routing for a different inbox, or a Loop Item template whose labels cannot be translated. Duplicate the smallest possible unit.

Leave alone: global colours and fonts, Theme Builder display conditions, footer structure, performance settings, custom CSS, the cookie consent template and the plugin stack. One cookie banner with translated text is easier to audit than two banners that drift apart.

The Handover Note That Saves the Next Builder

Write down which plugin owns the languages, how menus are swapped, which popups have language conditions, where form notifications go and how hreflang is generated. Test the switcher on a phone, a tablet and a desktop. Then test it again on a page with a form. Bilingual builds fail at the edges: the confirmation message, the menu in the mobile drawer, the tour card that still says 'Book now' in English on a Welsh archive.

Cwm Hafren does not need two Theme Builders. It needs one spine, two voices and a builder who knows the difference.

All Articles

Related Articles

Local Without the Labyrinth: UK Location Pages in Elementor Pro

Local Without the Labyrinth: UK Location Pages in Elementor Pro

Whose Key Is It Anyway? Keeping Tabs on Elementor Pro Licences Across a UK Client Roster

Whose Key Is It Anyway? Keeping Tabs on Elementor Pro Licences Across a UK Client Roster

The One-Dashboard Temptation: WordPress Multisite and Elementor Pro for UK Agencies

The One-Dashboard Temptation: WordPress Multisite and Elementor Pro for UK Agencies