Opens in a new tab
FEATURES

Everything it does, in one place

Every feature is in the one $49.99 plan, on every site you build. Here's the full list, grouped the way you'll find it in the settings.

01 · SWITCHER

A button, a window, and a grid

Put the button in your menu, a block, a shortcode or PHP. It opens a language window your visitors can search, and it works with a keyboard and a screen reader.

Ways to add the switcher →
Français ZH Español 日本語Japanese Arabic Pill · Minimal · Classic · Card · Icon only
The language window open on a website, with recently used languages and a check mark on English
  • 5 button styles

    Pill, Minimal, Classic, Card and Icon only.

  • A different style on phones

    Up to a width you choose (768 px by default), per site, menu item, block or shortcode.

  • Language window

    Heading, search, “Recently used”, a check mark on the current language and a close button.

  • Dropdown mode

    A short list under the button instead of the window.

  • Language grid

    Every language right on the page, as a block, shortcode or PHP.

  • Any #cls-modal link opens it

    Classic menus, the Navigation block in block themes, buttons and content.

  • Fully accessible

    Focus trap, arrow keys, Escape, focus return and ARIA throughout.

  • Respects reduced motion

    Animations turn off for visitors who ask their device for less motion.

  • Works with page builders

    The menu item is a plain button that works with Bricks and most builders.

02 · LANGUAGES & FLAGS

116 languages, each written its own way

Every language shows in its own script, with the English name underneath. The flags are stored on your site, and right-to-left languages are laid out properly everywhere.

Languages and flags in the docs →
DeutschGerman
العربيةArabic
EspañolSpanish
हिन्दीHindi
עבריתHebrew
한국어Korean

↑ Spanish with the Mexican flag: any language can use any flag.

Flag shapes Circle Rounded Square
  • 116 languages

    Each with its own name and its English name. Other codes are understood too (nb, iw, zh-hans, pt-pt).

  • 250+ flags on your own site

    Countries, territories and US states, in 3 sizes, sharp on every screen.

  • Custom flag per language

    Spanish with the Mexican flag, English with the British one. Your call.

  • 3 flag shapes

    Circle, rounded or square, with separate sizes for the button and the window.

  • Right-to-left done properly

    Arabic, Hebrew, Persian and Urdu in the button, window, grid, dropdown and banners.

  • Window heading in 75 languages

    Change it per language, or use one heading for all. Window texts in 43 languages.

03 · LANGUAGE DETECTION

Offer each visitor their language before they look for it

By country, by browser language, or both. Show a banner written in the suggested language, or redirect. Everything happens on your own server, with no outside service.

How language detection works →
Möchten Sie diese Website auf Deutsch ansehen? DeutschNein danke

A visitor in Germany on your English page. The banner is written in German.

How it finds the visitor's country
  1. 1Your CDN or proxy: Cloudflare, Bunny.net, Amazon CloudFront, Sucuri, Fastly
  2. 2Your host's GeoIP: Apache or nginx GeoIP, WP Engine GeoTarget
  3. 3An IP database already on your site: WooCommerce MaxMind or GeoIP Detection
  • By country, from the real IP

    Even behind a CDN or proxy, where WordPress only sees the proxy's address.

  • Country → language map

    Built in for 144 countries. Change it per language, with one click to add the defaults.

  • By browser language

    Matches the first of the visitor's languages that your site has. Works on its own or after country.

  • Banner or redirect

    Choose separately for country and browser language.

  • Banner in the visitor's language

    48 languages built in, or write your own text.

  • “Choose your language” banner

    When your site has none of their languages, ask in their own (74 built in).

  • Works on cached pages

    Each suggestion is fetched per visitor, so page caches and CDNs stay correct.

  • Safe for search engines

    Bots, social previews, SEO tools and logged-in editors are never redirected or shown banners.

  • Remembers the choice

    One cookie, so nobody is asked twice. You can see your own IP and country in the settings to check the setup.

04 · LOOK & COLORS

38 colors, light and dark, or let AI pick them

Every part of the switcher has its own colors and a live preview. Copy them as CSS, ask any AI assistant to match your brand, and paste the answer back.

Theming with CSS or AI →
Light
Français
Italiano
Türkçe
Dark
Français
Italiano
Türkçe
The CSS & AI section: your colors as CSS with a Copy CSS button, and a box to paste CSS with an Apply colors button
  • Every color can be changed

    Main color, button and hover, window, cards, current language, close button, search box, overlay and banner.

  • A separate dark-mode set

    Light, dark, or automatic to follow the visitor's device.

  • Theme it with CSS or AI

    Copy every color as CSS, get your brand version from any AI assistant, paste it back.

  • Your theme's own variables

    Colors and font sizes take any CSS value, var(--token) or Automatic.css __var__().

  • Names the way you want

    In their own language, in English, or both. Columns: auto, 2, 3 or 4. Compact cards.

  • 4 opening animations and Custom CSS

    Slide up, fade, zoom or none, plus a box for any CSS of your own.

05 · TRANSLATION PLUGINS

Works with the translation plugin you have. Or none.

It finds your translation plugin on its own and links to each page's real translation, with translated addresses where the plugin has them. No plugin? It gives each language its own address.

How each integration works →
  • WPML
  • Polylang
  • TranslatePress
  • Weglot
  • GTranslate
  • Linguise
  • qTranslate-XT
  • MultilingualPress
  • Bogo
  • WP Multilang
  • TranslateWP
No translation plugin? Built-in addresses: example.com/about/ ← default language example.com/de/about/ example.com/ar/about/ + hreflang tags with x-default
  • 11 translation plugins detected

    No settings to fill in. If several are active, the plugin picks the right one.

  • Names never get translated

    Language names are marked so Linguise, Weglot, GTranslate and TranslateWP leave them alone.

  • Built-in addresses and hreflang

    Default language at /, the others at /de/, /fr/ and so on, with hreflang and x-default.

06 · ANALYTICS

See which languages people actually want

Every switch, suggestion and redirect can be recorded in Nahnu Analytics. Google Analytics 4 and Tag Manager get an event too, and any other tool can listen to a browser event.

  • Google Analytics 4 / Tag Manager

    One event with from_language and to_language. You choose its name.

  • For any other tool

    A cls_language_switched browser event with the old and new language.

Analytics in the docs →
Nahnu Analytics events
EventSent when
Language switchedA visitor picks another language (from the window, dropdown, grid, banner or a link)
Language suggestedA suggestion banner appears, and why (country or browser)
Suggestion closedThe visitor closes a banner
Picker openedThe visitor accepts the “choose your language” banner
Language redirectA visitor is redirected to their language
07 · PERFORMANCE & PRIVACY

Small, fast, and nothing leaves your site

~5 KBof JavaScript, compressed, loaded after the page
~4 KBof CSS, compressed
0requests to outside services for your visitors
1cookie, holding only a language code
  • “Recently used” stays in the browser

    It's never sent to your server.

  • No flash of the wrong style

    The phone and desktop buttons swap with CSS alone, before any JavaScript runs.

  • Clean uninstall

    Settings, menu styles, license data and caches are removed, and the license is freed.

08 · DEVELOPERS

An API for everything it does

Ask for any page's address in any language from PHP, JavaScript or REST. Change languages, flags, the country map and the text with filters.

Read the developer docs →
GET /wp-json/cls/v1/switch/ar?from=https://example.com/about/
{
  "code":     "ar",
  "label":    "العربية",
  "label_en": "Arabic",
  "url":      "https://example.com/ar/about/",
  "rtl":      true
}
09 · SETTINGS SCREEN

A settings screen you'll actually enjoy

Tabs switch instantly and saving needs no page reload. Live previews show every change, and settings that depend on another one are dimmed with a hint.

A tour of the settings screen →
The Languages settings tab with summary tiles, the language list and a Settings saved message
  • Saves without reloading

    With a toast, a warning if you leave unsaved changes, and Ctrl/Cmd+S.

  • Works on any screen

    Phones, tablets and wide screens.

  • License and updates

    Activate with one key and get updates in Dashboard → Updates like any other plugin.

  • Pick popular languages

    Turn on the 20 most used languages in one click, or search all 116.

  • Copy-ready snippets

    The Developers tab has every shortcode, block name, PHP call and endpoint ready to copy.

  • System info for support

    One click copies everything support needs, with no keys or passwords.

Requirements WordPress 7.1+ PHP 8.3+ Translation plugin: optional CDN for country detection: optional Details →

All of this, on every site, for $49.99 once.

Unlimited sites, lifetime updates and 1 year of support. 14-day money-back guarantee.

Get lifetime access

Save to list