BACK TO DIRECTORY

SwiftLing

by Bruno Kos

0.0
(0 ratings)

SwiftLing is a multilingual plugin for WordPress. Translate your pages, posts, products, menus, forms and theme texts into any number of languages, give each language an address of its own, and add a language switcher, all from one editor beside the original. The free plugin has no limit on languages.

SwiftLing finds the texts of a page as visitors see them, wherever they come from: the block editor, a page builder, custom fields, forms, your theme and your plugins.

Why SwiftLing

  • No duplicated pages. Translations are kept in SwiftLing’s own tables, so there is one page, not one copy per language. A text without a translation simply shows in the original.
  • Works where your content lives. The block editor and page builders such as Elementor, Bricks, Beaver Builder, Breakdance, Brizy and Avada, with no shortcodes to wrap around your texts.
  • Your own translation key. Machine translation with Google Cloud Translation and your own API key. SwiftLing does not charge per word or per language.
  • Ready for search engines. An address for each language, hreflang links, translated slugs, canonical addresses and sitemaps.

What it translates

  • Content: pages, posts and custom post types (titles, content, excerpts and fields), the block editor with its templates, patterns and template parts, and categories, tags and other taxonomies with their addresses.
  • Menus: a label of their own for each language, and items shown only in some languages.
  • Page builders: Elementor and Bricks with their templates and components, and Beaver Builder, Breakdance, Brizy and Avada.
  • Fields and images: Advanced Custom Fields, options pages included, and another image for a language with its alt text.
  • Theme and plugins: the texts of your theme and plugins, and the settings of theirs that visitors read.
  • Forms: Contact Form 7, Forminator, Gravity Forms, Ninja Forms, Fluent Forms, WPForms and Formidable Forms: labels, choices, messages, errors and the email to the visitor, while the notification to you stays in your language.
  • Shops and courses: WooCommerce products (texts, images and the names of their attributes), and Tutor LMS and LearnPress courses with their quizzes. A student who types an answer in their language gets it graded as right.
  • Events: The Events Calendar, Events Manager, Event Organiser and My Calendar, with venues, organizers, categories and tickets, and the calendar’s own words and addresses in each language.
  • Bookings: LatePoint, Amelia, Bookly, Simply Schedule Appointments and Booking Calendar: services, staff, the booking form and the emails to your customers in the language they booked in, while the emails to you and your staff stay in your language.
  • Cookie banners: Complianz, CookieYes, Cookie Notice, GDPR Cookie Compliance, Real Cookie Banner, Cookiebot and iubenda.
  • SEO titles and descriptions: Yoast SEO, Rank Math, SEOPress and All in One SEO.

Multilingual SEO and addresses

  • An address for each language: a folder (/de/), a parameter (?lang=de), a subdomain (de.example.com) or a domain of its own (example.de).
  • Translated slugs, also of categories, tags and the bases of their addresses.
  • hreflang links, canonical addresses in each language, and sitemaps of every language, also those of Yoast SEO, Rank Math, SEOPress and All in One SEO.
  • Search finds the translated texts in each language.

Language switcher

  • As a block, the shortcode [swiftling_switcher], a widget, a menu item or a switcher at the edge of every page.
  • With flags, the names of the languages or both, each language named in its own language or in the language of the page.
  • Visitors can be offered their browser’s language, or taken to it, if you want.

Translating

  • An editor beside the original, page by page, that shows which texts are translated and which changed since.
  • Machine translation with Google Cloud Translation and your own API key: the empty texts of a page at a click, or the whole site at once with an estimate of the characters first.
  • Words that are never translated, such as the name of your business, and content types that are never translated.
  • A separate copy of a page for a language, when it needs another layout there.
  • Languages you hide from visitors until they are ready, and languages of your own beside those WordPress knows.

Works with

  • Caching plugins: when a translation changes, SwiftLing empties the pages concerned in WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, SiteGround Speed Optimizer, Breeze, Nginx Helper, Proxy Cache Purge and Cloudflare.
  • Networks of sites: each site has its languages and translations of its own.

SwiftLing Pro

SwiftLing itself stays free, with any number of languages. SwiftLing Pro adds:

  • DeepL, Claude, OpenAI and Gemini with your own key, and a glossary of terms.
  • The whole site translated on the server with the tab closed, or from the command line. See a 54-page site translated into five languages in about 12.5 minutes.
  • Automatic translation when you publish.
  • WooCommerce prices in a currency for each language.
  • Import from WPML, Polylang and TranslatePress.

See what Pro adds.

Support and source

Having a problem or a question? Please write to the support forum first. I read it and will try to help you before you leave a review. The source code and issues are on GitHub; more at swiftling.pro.

External services

SwiftLing can translate your texts with Google Cloud Translation, a machine translation service by Google, using your own Google Cloud API key. Nothing is sent until you save a key on the Translation service screen.

  • What is sent: when you save or check a key, a request for the list of languages Google translates and the word “Hi” to translate, which confirms the key works. When you press the translate button in the translation editor, the texts of the page that have no translation yet in the language shown, and the codes of the original language and of that language. When you start a run on the Translate everything screen, the same texts of every page and post of the site, one page at a time. Link addresses and other attributes of HTML tags are not sent.
  • When: only when a logged-in administrator saves or checks the key, or starts a translation. Visits to your site never send anything.
  • Where: https://translation.googleapis.com, with your API key.

Google bills your Google Cloud account for the characters sent. Terms of service. Privacy policy.

SwiftLing runs WordPress in each language with WordPress’s own translations. When you add a language whose WordPress translation is not installed yet, SwiftLing asks WordPress to install it from WordPress.org, as the Languages setting of WordPress does: the code of the language is sent to https://api.wordpress.org and the translation is downloaded from https://downloads.wordpress.org. This happens only when an administrator who may install languages saves the languages. Privacy policy.

When you save a subdomain or a domain of its own for a language on the URLs screen, SwiftLing opens that address, with a random code, to check that it leads to your site. The request goes only to the address you entered.

SwiftLing can send a request to test and support a plugin, theme or form it does not translate yet to SwiftLing’s support desk at swiftling.pro, which the makers of SwiftLing run.

  • What is sent: what the request is about (whether it is a plugin, theme, form or page builder, its name and version, and its folder or address on WordPress.org), what stays untranslated, an address of your site where it shows if you write one, the email address to answer to, the version of SwiftLing and the language of the person sending it. When “Add the support report” is ticked, also the report of the Logs screen: the versions of WordPress, PHP, the database server, SwiftLing and SwiftLing Pro, the theme and the active plugins with their versions, the site’s languages and how their addresses look, the name of the translation service in use (never its key), the caches in use, and the latest errors and warnings of SwiftLing. No content of your site, keys or passwords.
  • When: only when an administrator presses Send on the Request support screen, which shows what is sent first. Nothing is sent otherwise.
  • Where: https://swiftling.pro/wp-json/swiftling/v1/requests. If it cannot be reached, nothing is sent, and the screen offers the request to email yourself to support@swiftling.pro.

Privacy policy.

Copyright

SwiftLing bundles these fonts for its admin screens. They are licensed under the SIL Open Font License 1.1, included in assets/fonts/OFL.txt.

Bricolage Grotesque
Copyright 2022 The Bricolage Grotesque Project Authors
License: SIL Open Font License, 1.1
Source: https://github.com/ateliertriay/bricolage

Instrument Sans
Copyright 2022 The Instrument Sans Project Authors
License: SIL Open Font License, 1.1
Source: https://github.com/Instrument/instrument-sans

JetBrains Mono
Copyright 2020 The JetBrains Mono Project Authors
License: SIL Open Font License, 1.1
Source: https://github.com/JetBrains/JetBrainsMono

SwiftLing bundles these flags for its language switcher, in assets/flags. They are licensed under the MIT License, included in assets/flags/LICENSE.txt.

country-flag-icons
Copyright (c) 2020 @catamphetamine
License: MIT
Source: https://gitlab.com/catamphetamine/country-flag-icons

Screenshots

The translation editor: the original and its translation side by side.

The translation editor: the original and its translation side by side.

The languages of the site.

The languages of the site.

The address of each language.

The address of each language.

The language switcher and its settings.

The language switcher and its settings.

Translating the whole site at once.

Translating the whole site at once.

A page in German, with the language switcher in the menu.

A page in German, with the language switcher in the menu.

Plugin Details

Active Installs
0
Total Downloads
229
Version
1.0.9
Requires WP
6.5
Requires PHP
7.4
Tested Up To
7.1.4
Added
2026-10-28
Last Updated
2026-11-01 7:55am GMT

Ratings

5
0
4
0
3
0
2
0
1
0