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.
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 install them in just a few clicks.
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
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 compatibilities with other plugins such as ACF Pro.
- Share the same URL slug for posts or terms across languages.
- Translate URLs slugs for categories, author bases, custom post types and more…
- 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).
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.
- Make sure you are using WordPress 5.7 or later and that your server is running PHP 5.6 or later (same requirement as WordPress itself).
- If you tried other multilingual plugins, deactivate them before activating Polylang, otherwise, you may get unexpected results!
- Install and activate the plugin as usual from the ‘Plugins’ menu in WordPress.
- The setup wizard is automatically launched to help you get started more easily with Polylang by configuring the main features.
Where to find help ?
- First time users should read Polylang – Getting started, which explains the basics and includes a lot of screenshots.
- Read the documentation. It includes a FAQ and the documentation for developers.
- Search the community support forum. You will probably find your answers here.
- Read the sticky posts in the community support forum.
- If you still have a problem, open a new thread in the community support forum.
- Polylang Pro and Polylang for WooCommerce users have access to our premium support through helpdesk.
Is Polylang compatible with WooCommerce?
- You need Polylang for WooCommerce, premium addon described above, which will make both plugins work together.
Contributors & Developers
“Polylang” is open source software. The following people have contributed to this plugin.Cyfranwyr
“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.
- Pro: Add compatibility with FSE changes introduced by WP 6.2
- Pro: Adapt the navigation language switcher block for consistency with WP 6.2
- Only store term ids in taxonomy relationships cache for WP 6.0+. Props @ocean90 #1154
- Remove usage of
get_page_by_title()deprecated in WP 6.2 #1213
- Fix fatal error if the mu-plugins folder is not readable #1217
- Fix a compatibility issue with plugins not expecting a null ‘update_plugins’ transient #1224
- Pro: Allow to translate Oembed, URL and Email ACF fields
- Pro: Fix ACF REST API mixing fields
- Pro: Fix ACF compatibility loaded when no language exist
- Pro: Fix headers of exported PO files.
- Pro: Fix spacing in language switcher navigation block preview
- Work around a bug in Sendinblue for WooCommerce causing a fatal error. #1156
- Fix a regression with WooCommerce Product Add-Ons Ultimate. #1186
- Requires WP 5.7 as minimum version
- Pro: Allow to export and import XLIFF files for posts
- Pro: Honor the provided context for the navigation language switcher block.
- Pro: Remove the parent hyperlink in the navigation language switcher block.
- Pro: Add spacing between flag and name in the navigation language switcher block.
- Pro: Disallow some special characters in translated slugs to avoid 404 errors.
- Pro: Fix string translation not imported when the original is registered but has never been saved in database.
- Pro: Fix string translation not imported when it includes an html entity.
- Pro: Fix navigation language switcher block rendering in block editor.
- Pro: Fix navigation language switcher may be displayed wrong color.
- Translate the post pages in get_post_type_archive_link() on admin side too. #1000
- Enable the block editor in page for posts translations to match the WordPress behavior since version 5.8 #1002
- Improve the site health report #1062 #1076
- Set the current language when saving a post #1065
- The search block is now filtered by language #1081
- Display slug of CPT and taxonomies in Custom post types and Taxonomies settings. Props @nicomollet #1112
- Add support for wpml-config.xml to MU plugins #1140 Props Jeremy Simkins
- Fix some deprecated notices fired by PHP 8.1 #975
- Fix some missing canonical redirect taxonomies #1074
- Fix redirect when permalink structure has no trailing slash #1080
- Fix language switcher in legacy navigation menu widget not rendered in widgets block editor #1083
- Fix language in tax query when an OR relation is used #1098
- Fix parent of translated category removed when assigning an untranslated parent #1105
- Fix is_front_page() when a static front page is not translated #1123
- Yoast SEO: Fix posts without language displayed in the sitemap #1103
- Yoast SEO: Avoid syncing robots meta. #1118
- Fix PHP warning when a filtered taxonomy has no query var #1124
- Fix SQL error when attempting to get objects without languages and no language exist #1126
- Fix error when term slugs are provided as array in WP_Query #1119, #1132 Props Susanna Häggblom
- Fix a CSS regression in the wizard causing the default language icon to be removed #1137
- Work around a WooCommerce 6.9.x bug causing a fatal error in the wizard. #1116
- Pro: Fix a conflict with Kadence blocks
- Pro: Fix a conflict with Flatsome builder
- Fix media translation setting having no effect
- Pro: Fix creation of WC product categories with shared slug via REST API
- Pro: Fix conflict with WooBuilder when editing a WC product
- Fix: Force empty string translation to empty string #1058
- Fix CSS conflict with Dynamic content for Elementor #1060
- Pro: Remove “Navigation menus” from the post type settings list
- Pro: Fix block editor languages panel missing in WordPress 5.6
- Pro: Fix wrongly indexed languages list returned by REST API when the first language is deactivated.
- Revert fix for category feed not redirected when the language code is wrong #1054
- Fix wrong redirect of category when the url includes a query string #1048
- Fix querying multiple categories failing
- Pro: Fix a fatal error when inserting a term
- Pro: Fix translation of the block cover when duplicating a post
- Pro: Fix a CSS issue in bulk tranlate form introduced by WP 6.0
- Pro: Fix a CSS issue in string import/export metaboxes.
- Prevent random languages order in WP 6.0 #1041
- Translate site title in retrieve password email #1042
- Fix ‘lang’ attribute in language widget dropdown #1039
- Pro: Fix redirect occuring for tags sharing the same slug as their translations
- Fix quick edit allowing to modify the language of the default category when it should not #1018
- Pro: Fix users with editor role not able to save or publish posts
- Pro: Fix FSE compatibility not loaded when the plugin Gütenberg is active
- Pro: Fix a fatal error occuring with Yoast SEO Premium
- Pro: Fix a fatal error with ACF when no language is defined
- Requires WP 5.6 as minimum version
- Pro: Add compatibility with the full site editing introduced in WP 5.9
- Pro: Add a language switcher block for the navigation block introduced in WP 5.9
- Pro: Add compatibility with the new gallery block introduced in WP 5.9
- Pro: Make the language switcher block available in the widget section of the customizer
- Pro: Fix wrong category when translating the latest posts block
- Pro: Fix the language switcher block when using the dropdown option
- Pro: Fix some edge cases with locale fallback
- Pro: Fix post template replacing the post content when duplicating a post
- Pro: Fix synchronization groups not correctly cleaned up when a language is deleted
- Pro: Fix incorrect sticky property when duplicating / synchronizing posts
- Pro: Fix “Page for posts” label after the page has been bulk translated
- Pro: Fix translated slug when the url includes a query string
- Pro: Synchronize ACF layout fields if a child field is synchronized or translatable
- Pro: Fix wrong field group translation displayed when using object cache with ACF
- Update plugin updater to 1.9.1
- Add compatibility with the block site title introduced in WP 5.9
- Add the list of wpml-config.xml files in the site health information
- Improve the performance of the get_pages() filter #980
- Improve the compatibility of ‘wpml_object_id’ with the original filter #972
- Prevent term_exists to be filtered by language in WP 6.0
- Fix some PHP 8.1 deprecations #949 #985
- Fix a fatal error in PHP 8.1 #987
- Fix category feed not redirected when the langage code is wrong #887
- Fix default category not created for secondary languages (introduced in 3.1) #997
- Fix parent page when the parent post type is not translatable #1001
- Fix the Yoast SEO breadcrumb when it includes a non-synchronized taxonomy #1005
- Fix a PHP Notice when adding a new language and Yoast SEO is active #979
- Fix a PHP warning in Yoast SEO compatibility #954
See changelog.txt for older changelog