Polylang

Description

With Polylang fully integrated to WordPress and using only its built-in core features (taxonomies), keep steady performances on your site and create a multilingual site featuring from just one extra language to 10 or more depending on your needs. There is no limit in the number of languages added and WordPress’ language packs are automatically downloaded when ready.

Features

Depending on the type of site you have built or are planning to build, a combination of plugins from the list below might be of interest.
All plugins include a wizard allowing to setup them in just a few clicks.

Polylang

Polylang and Polylang Pro share the same core providing features such as:

  • Translating posts, pages, media, categories, post tags, custom post types and taxonomies, RSS feeds; RTL scripts are supported.
  • The language is either set by the language code in URL, or you can use a different sub-domain or domain per language.
  • Automatic copy of categories, post tags and other metas when creating a new post or page translation.
  • Translating menus and widgets.
  • Customizable language switcher available as a widget or a navigation menu item.
  • Compatibility with Yoast SEO.

Polylang Pro

Helps optimizing the time spent translating your site with some very useful extra features such as:

  • Better integration in the new Block Editor.
  • Language switcher available as a block.
  • Language options available in the widget block editor.
  • Template parts translatable in the site editor (FSE).
  • Duplicate and/or synchronize content across post translations.
  • Improved compatibility with other plugins such as ACF Pro.
  • Share the same URL slug for posts or terms across languages.
  • Translate URL slugs for categories, author bases, custom post types and more…
  • Export and import of content in XLIFF format for outsourced professional translation.
  • Access to a Premium Support for personalized assistance.

Polylang for WooCommerce

Add-on for the compatibility with WooCommerce which provides features such as:

  • Translating WooCommerce pages (shop, check-out, cart, my account), product categories and global attribute terms directly in the WooCommerce interface.
  • Translating WooCommerce e-mails and sending them to customers in their language.
  • Products metadata synchronization.
  • Compatibility with the native WooCommerce CSV import & export tool.
  • Compatibility with popular plugins such as WooCommerce Subscriptions, Product Bundles, WooCommerce Bookings, Shipment tracking and more.
  • Ability to use the WooCommerce REST API (available with Polylang Pro).
  • Access to a Premium Support for personalized assistance.

Neither of them will allow to do automated translation.

Our other free plugins

  • WPML to Polylang allows migrating from WPML to Polylang.
  • DynaMo speeds up the translation of WordPress for all non-English sites.
  • Site Editor Classic Features allows to use legacy widgets (including the Polylang language switcher) and menus in the site editor (FSE).

Credits

Thanks a lot to all translators who help translating Polylang.
Thanks a lot to Alex Lopez for the design of the logo.
Most of the flags included with Polylang are coming from famfamfam and are public domain.
Wherever third party code has been used, credit has been given in the code’s comments.

Screenshots

  • The Polylang languages admin panel
  • The Strings translations admin panel
  • Multilingual media library
  • The Edit Post screen with the Languages metabox

Installation

  1. Make sure you are using WordPress 5.8 or later and that your server is running PHP 7.0 or later (same requirement as WordPress itself).
  2. If you tried other multilingual plugins, deactivate them before activating Polylang, otherwise, you may get unexpected results!
  3. Install and activate the plugin as usual from the ‘Plugins’ menu in WordPress.
  4. The setup wizard is automatically launched to help you get started more easily with Polylang by configuring the main features.

FAQ

Where to find help ?

Is Polylang compatible with WooCommerce?

Reviews

September 26, 2023
I use it for my blog site named culturalwander.com, and it's really successful. I use approximately 8 different languages. Thanks.
September 25, 2023
I have been using Polylang for several websites during the last 1 1/2 years. Recently I had a Client that needed the translation of his WooCommerce. I did not read the entire documentation before buying the WooCommerce liucense for 99€. I discovered only after the purchase that in order to translate the products I needed to duplicate all products and associate one by one to each corresponding product in the original language. This will require a week of work as the catalogue has more than 2000 products. There is no way to leave the products as they are and show them once they have the default language assigned. This is a very bad lack of feature for a product that costs quite a lot. The support told me that they did not accept my request of refund. I am not happy with this product especially because i do not agree with the fact that a company keeps the money of someone that has no possibility of using their product. As far as I know there is an European law reharding this type of behaviours, however I have not the time to investigate this further. I hope the European Commission and the assigned department will come to regulate the open source field as well, maybe with the helkp of the Autommatic as well. I wish all the luck to the Franchese Polylang team however as far as me, my company, my clients and my partners, their name will not be associated to a positive view.
September 21, 2023
Just a small improvement, it will be good to set up a specific field for each language, to be able to add the aria-label attribute, to explain the choice of language at the screen reader level, when navigating with the keyboard . All of this is in relation to digital accessibility.
September 20, 2023
If you're looking for a plugin that allows you to add your own bespoke translations (and not just rely on an automated Google Translate plugin), then this is the one to reach for. The included menu item to switch languages takes a big worry off my plate.
September 20, 2023
<span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span class="ryNqvb">Good plugin to have the website in several languages.</span></span> <span class="jCAhz ChMk0b"><span class="ryNqvb">On a simple website it works without problems</span></span></span><span class="ZSCsVd"></span>
Read all 2,507 reviews

Contributors & Developers

“Polylang” is open source software. The following people have contributed to this plugin.

Contributors

“Polylang” has been translated into 48 locales. Thank you to the translators for their contributions.

Translate “Polylang” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

3.4.5 (2023-08-07)

  • Requires PHP 7.0 as minimum version
  • Pro: Fix error in site editor with WP 6.3
  • Pro: Remove usage of block_core_navigation_submenu_build_css_colors() deprecated in WP 6.3
  • Pro: Fix categories and tags kept in old language after the language of a post has been changed
  • Add ‘pll_admin_ajax_params’ filter #1326
  • Fix error when changing the language of a post and the post type doesn’t support excerpts #1323

3.4.4 (2023-07-18)

  • Pro: Register a default (empty) value for the “lang” param when listing posts and terms in REST API
  • Pro: Fix categories list refresh when the language of a post is changed in the block editor
  • Pro: Fix store “pll/metabox” is already registered
  • Add Kirghiz to the predefined list of languages #1308
  • Fix incorrect flag url when WordPress is installed in a subfolder #1296
  • Fix wrong home page url in multisite #1300

3.4.3 (2023-06-13)

  • Adapt the language filter for get_pages() for WP 6.3 #1268
  • Fix static front page displaying latest posts when it is not translated #1295
  • Fix a database error in ANSI mode #1297
  • Fix a database error when accessing posts from another site in multisite #1301

3.4.2 (2023-05-30)

  • Fix empty languages displayed when Falang data are remaining in the database #1286
  • Fix PHP warning on term_props #1288
  • Fix blog page displayed in the customizer instead of the static front page when changing a setting #1289

3.4.1 (2023-05-25)

  • Fix incorrect site titles in My Site admin bar menu on multisites #1284
  • Fix incorrect home url when using multiple domains or subdomain and a static front page #1285

3.4 (2023-05-23)

  • Requires WP 5.8 as minimum version
  • Pro: Language fallbacks are now stored in language description instead of a term meta.
  • Pro: Add more error messages when doing wrong when importing or exporting translations
  • Pro: Avoid to check for translations files existence if no language fallbacks are defined.
  • Pro: Reduce the number of DB queries when exporting posts for translation
  • Pro: Fix incorrect post slug after XLIFF import
  • Pro: Fix a performance issue with the autocomplete field in the block editor languages panel
  • Pro: Fix translations not refreshed when switching the language in the block editor sidebar
  • Pro: Fix a performance issue in Site editor
  • Pro: Fix a possible bug in Site editor when language term_id and term_taxonomy_id are different
  • Pro: Fix deactivated language re-activated when it is edited.
  • Pro: Fix language switcher in legacy widget menu not correctly rendered in widget block editor
  • Pro: Fix error 404 for untranslated attached attachement
  • Pro: Fix a deprecated notice in ACF integration
  • Pro: Fix update compatibility with WP Umbrella
  • Refactor core to allow to easily translate contents stored in custom tables
  • Strings translations are now stored in a language term meta instead of post meta of specific post type #1209
  • Deprecate the filters pll_languages_list and pll_after_languages_cache #1210
  • Add a new property PLL_Language::$is_default #1228
  • Add a custom admin body class pll-lang-{$language_code} #1190
  • Add support for new WPML API filters #1266
  • Fix languages metabox autocomplete field not always returning expected results #1187
  • Fix language not displayed if the transient has been saved with an empty array #1247
  • Fix a PHP warning Attempt to read property "home_url" on bool #1206
  • Fix a conflict leading to a performance issue when translating the theme Astra options #1196
  • Fix related translations resetted when updating Yoast SEO titles settings #1111
  • Fix a fatal error in case the registered strings option is corrupted #1264
  • Fix the language extraction from the URL in plain permalinks #1270
  • Fix content cleared when switching the language of a new post in the block editor #1272
  • Fix: Prevent saving strings translations with an empty source #1273

See changelog.txt for older changelog