## WPML language switcher

URL: https://hub.jkdevstudio.com/knowledge-base/integration/wpml-language-switcher
Updated: 2026-09-06
Summary: Replace the WPML language switcher with one drawn in the theme's style, and know exactly which part of multilingual it does not touch.

This integration renders a language switcher in the theme's style, instead of the one [WPML](https://wpml.org/) draws itself.

In practice: the switcher looks like part of the header rather than an insert from elsewhere, and behaves the same way on every screen size. Flags and language names come from the same plugin.

A useful side effect: the WPML switcher stylesheets are removed, so they cannot conflict with the theme.

## What it does not do

Say this plainly, because it sets the right expectation.

The integration does not translate. It does not touch how translation happens or how translated content is displayed.

All of the multilingual work, the languages, the translations and the page addresses, stays with WPML and is configured in [its own documentation](https://wpml.org/documentation/).

Our part is exactly one thing: the switcher.

<a data-type="kb-embed" href="/knowledge-base/how-to-guide/translating-and-rtl">Translating your site and setting up RTL</a>

## What you need

<div data-callout="warning">

**WPML is commercial software, and this integration needs a working copy of it.**

Two things, not one: the plugin installed and active, and a **current WPML license registered on the site**. WPML is not free and there is no free edition of it, so an unregistered or lapsed copy stops receiving updates and stops offering the automatic translation and management features the paid product includes. Buy or renew it from [wpml.org](https://wpml.org/), and register the site key in [[WPML > Support > Registration]].

We do not resell WPML, and a WPML license is not part of any theme license. That side of it is between you and OnTheGoSystems.

</div>

The order: WPML first, registered, with your languages configured in it, then our integration. Without languages there is nothing for a switcher to show.

## Where it is configured

This integration has no page in the Integrations block, because there is nothing in it to configure.

Every switcher setting lives where the switcher is rendered, in the theme's navigation settings: the switcher source, the provider, and its position in the header.

The reason in one line: the connection to the service is identical across all our themes, and the switcher's placement is different in each one.

## Integrations are part of the theme

<div data-callout="note">

**This integration is licensed with the theme, not on its own.**

Integrations are premium functionality for customers running a Pro license of one of our themes. They are written against our themes and expect them, and we cannot support or take responsibility for what one does inside somebody else's theme. See [how theme integrations work](/knowledge-base/jkd-toolkit/how-theme-integrations-work).

</div>

## Common questions

<details><summary>Why is my switcher empty?</summary>

Because no languages are configured in WPML, or only one is, and the switcher shows exactly what the plugin hands it rather than inventing entries of its own.

</details>

<details><summary>Can I use the WPML switcher instead?</summary>

Yes, deactivate this integration and WPML draws its own again with its own styling, since removing those stylesheets is something we do only while ours is on.

</details>

<details><summary>My WPML license expired. Does the switcher stop?</summary>

The switcher keeps rendering whatever the plugin still hands it, so an expired registration does not switch it off on its own. What it does mean is that WPML has stopped updating and that the paid parts of it are no longer available to you, which is a plugin problem rather than a theme one and is fixed by renewing.

</details>

<details><summary>Does this handle translating the admin interface?</summary>

No, that is a different job done by the translation plugin reading our text domains, while this integration is only about the control your visitors click.

</details>

<details><summary>Do I need this if my site is in one language?</summary>

No, and neither the plugin nor the integration is worth installing for a single language site.

</details>

<details><summary>The switcher does not appear at all</summary>

Check that WPML is active, registered and has more than one language, then check the navigation settings where the switcher is enabled and positioned, and if both look right clear any page cache, because a cached header is the most common reason a correctly configured switcher is invisible.

</details>

## Still stuck

[Open a support ticket](https://hub.jkdevstudio.com/support) with the languages you configured and a screenshot of the navigation settings.