Polylang allows you to create a bilingual or multilingual WordPress site. You write posts, pages and create categories and post tags as usual, and then define the language for each of them. The translation of a post, whether it is in the default language or not, is optional.

  • You can use as many languages as you want. RTL language scripts are supported. WordPress languages packs are automatically downloaded and updated.
  • You can translate posts, pages, media, categories, post tags, menus, widgets…
  • Custom post types, custom taxonomies, sticky posts and post formats, RSS feeds and all default WordPress widgets are supported.
  • The language is either set by the content or by the language code in url, or you can use one different subdomain or domain per language
  • Categories, post tags as well as some other metas are automatically copied when adding a new post or page translation
  • A customizable language switcher is provided as a widget or in the nav menu

The author does not provide support on the wordpress.org forum. Support and extra features are available to Polylang Pro users.

If you wish to migrate from WPML, you can use the plugin WPML to Polylang

If you wish to use a professional or automatic translation service, you can install Lingotek Translation, as an addon of Polylang. Lingotek offers a complete translation management system which provides services such as translation memory or semi-automated translation processes (e.g. machine translation > human translation > legal review).


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.

Do you like Polylang?

Don’t hesitate to give your feedback.

Ekrano nuotraukos

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


  1. Make sure you are using WordPress 4.9 or later and that your server is running PHP 5.6 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. Go to the languages settings page and create the languages you need
  5. Add the ‘language switcher’ widget to let your visitors switch the language.
  6. Take care that your theme must come with the corresponding .mo files (Polylang automatically downloads them when they are available for themes and plugins in this repository). If your theme is not internationalized yet, please refer to the Theme Handbook or ask the theme author to internationalize it.


Where to find help ?
Is Polylang compatible with WooCommerce?
  • You need a separate addon to make Polylang and WooCommerce work together. A Premium addon is available.
Do you need translation services?
  • If you want to use professional or automatic translation services, install and activate the Lingotek Translation plugin.


7 balandžio, 2020
Отличный плагин, именно с ним получилось полноценно добавить второй язык на сайт
6 balandžio, 2020
I have been using Polylang on one of my websites for several months now, and it's a great product. But, a recent update to version caused a WordPress login problem. Once I deactivated the plugin, everything was OK. I am using WordPress 5.3.2 with Astra theme. Has anybody else experienced the same problem?
5 balandžio, 2020
I have been using the plugin, for more than a year and for three different sites. No problem, so far!
Read all 1 416 reviews

Programuotojai ir komandos nariai

“Polylang” yra atviro kodo programa. Prie jos sukūrimo prisidėję žmonės surašyti toliau.


Įskiepis “Polylang” išverstas į 37 kalbas. Dėkojame vertėjams už jų darbą.

Išverskite “Polylang” į savo kalbą.

Interested in development?

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

Pakeitimų istorija

2.7 (2020-04-06)

  • Minimum WordPress version is now 4.9
  • Pro: Strings translations can now be exported and imported (in PO format)
  • Pro: Allow to decide individually which ACF fields to copy or synchronize
  • Pro: Add action pll_inactive_language_requested
  • Pro; Fix fatal error in The Events Calendar compatibility when no language is defined yet
  • Pro: Fix bulk translate when a post has no language
  • Pro: Fix reusable block saved without language
  • Pro: Fix post requested by slug not filtered in REST API, when the slug is shared
  • Add a setup wizard
  • Add Swahili, Upper Sorbian, Sindhi and Spanish from Uruguay to the list of predefined languages
  • Add flags in the predefined list of languages
  • Allow to hide the metaboxes from the screen options
  • The deletion of the plugin’s data at uninstall is now controlled by a PHP constant instead of an option #456
  • Add parent in ajax response when selecting a term in autocomplete field #328
  • Add Vary: Accept-Language http header in home page redirect. Props @chesio #452
  • Improve performance to register/unregister WPML strings
  • Add support for the action wpml_switch_language
  • Add post_status to the list of accepted args of pll_count_posts()
  • Apply the filter pll_preferred_language in wp-login.php
  • Use filtered wrappers to create meta when creating media translations #231
  • Allow to translate the Twenty Seventeen header video Youtube url #460
  • Notices are now dismissed per site instead of per user #478
  • Fix terms not visible in the quick edit when only one language is defined and teh admin language filter is active
  • Fix post state not displayed for translations of the privacy policy page #395
  • Fix wildcards not correctly interpreted in wpml-config.xml
  • Fix product categories with special characters duplicated when importing WooCommerce products #474

2.6.10 (2020-02-19)

  • Pro: Fix sticky posts not filtered in REST API (introduced in 2.6.9)
  • Fix wrong language detected if a child page uses the slug of another language
  • Fix a PHP notice with PHP 7.4. #438
  • Fix lang-item-first class in language switcher when the current language is hidden. #445
  • Fix partially a conflict with Fusion Builder (the other part of the conflict being in Fusion Builder).

2.6.9 (2020-01-15)

  • Pro: Use ‘parse_query’ rather than ‘rest_{$type}_query’ to filter REST requests.
  • Pro: Filter the comments REST endpoint.
  • Pro: Fix duplication of terms without language.
  • Pro: Fix fatal error when Admin Columns is activated and no language is defined yet.
  • Fix shortlink when using one subdomain or domain per language

2.6.8 (2019-12-11)

  • Pro: Fix conflict with JetThemesCore from Crocoblock
  • Fix: better detection of REST requests when using plain permalinks
  • Fix usage of deprecated action wpmu_new_blog in WP 5.1+
  • Fix PHP notices with PHP 7.4

2.6.7 (2019-11-14)

  • Require PHP 5.6
  • Fix PHP warning in WP 5.3

2.6.6 (2019-11-12)

  • Pro: Fix wrong ajax url when using one domain per language
  • Pro: Fix conflict with user switching plugin when using multiple domains
  • Pro: Fix latest posts block in WP 5.3
  • Fix database error when attempting to sync an untranslated page parent
  • Fix a conflict with the theme Neptune by Osetin

2.6.5 (2019-10-09)

  • Pro: Require ACF 5.7.11+ to activate the compatibility to avoid fatal errors with older versions
  • Pro: Avoid translating empty front slug (could cause a wrong redirect to /wp-admin)
  • Pro: Fix filter wp_unique_term_slug not always correctly applied.
  • Pro: Fix a conflict with Divi causing post synchronization buttons to be displayed multiple times
  • Avoid notice in WP CLI context

2.6.4 (2019-08-27)

  • Pro: Fix a conflict preventing meta synchronization when ACF is active
  • Pro: Fix post metas not correctly copied when translating a Beaver Builder page
  • Pro: Fix a fatal error when posts made with Elementor are synchronized
  • Pro: Fix Prewiew button not working correctly when using one domain per language
  • Pro: Fix post synchronization not available for WP CRON and WP CLI
  • Fix future posts not available in the autocomplete input field of the languages metabox
  • Fix translations files not loaded on REST requests
  • Fix deleted term parent not synchronized

2.6.3 (2019-08-06)

  • Pro: Fix fatal error when updating an ACF field from frontend
  • Pro: Add action ‘pll_post_synchronized’
  • Allow to get the current or default language object using the API. Props Jory Hogeveen. #359
  • Fix empty span in languages switcher widget when showing only flags
  • Fix wpml_register_single_string when updating the original string

2.6.2 (2019-07-16)

  • Pro: Fix slow admin in case the translations update server can’t be reached
  • Pro: Fix value not correctly translated for ACF clone fields in repeater
  • Fix strings translations mixed when registered via the WPML compatibility. #381

2.6.1 (2019-07-03)

  • Pro: Fix Yoast SEO sitemap for inactive languages when using subdomains or multiple domains
  • Fix fatal error in combination with Yoast SEO and Social Warfare
  • Fix post type archive url in Yoast SEO sitemap

2.6 (2019-06-26)

  • Pro: Remove all languages files. All translations are now maintained on TranslationsPress
  • Pro: Move the languages metabox to a block editor plugin
  • Pro: Better management of user capabilities when synchronizing posts
  • Pro: Separate REST requests from the frontend
  • Pro: Copy the post slug when duplicating a post
  • Pro: Duplicate ACF term metas when terms are automatically duplicated when creating a new post translation
  • Pro: Fix hierarchy lost when duplicating terms
  • Pro: Fix page shared slugs with special characters
  • Pro: Fix synchronized posts sharing their slug when the language is set from the content
  • Pro: Fix PHP warning with ACF Pro 5.8.1
  • Pro: Fix ACF clone fields not translated in repeaters
  • Better management of user capablities when synchronizing taxonomies terms and custom fields
  • Extend string translations search to translated strings #207
  • Update plugin updater to 1.6.18
  • Honor the filter pll_flag when performing the flag validation when creating a new language
  • Modify the title and the label for the language switcher menu items #307
  • Add support for international domain names
  • Add a title to the link icon used to add a translation #325
  • Add a notice when a static front page is not translated in a language
  • Add support for custom term fields in wpml-config.xml
  • Add filter pll_admin_languages_filter for the list of items the admin bar language filter
  • Add compatibility with WP Offload Media Lite. Props Daniel Berkman
  • Yoast SEO: Add post type archive url in all languages to the sitemap
  • Fix www. not redirected to not www. for the home page in multiple domains #311
  • Fix cropped images not being synchronized
  • Fix auto added page to menus when the page is created with the block editor
  • Fix embed of translated static front page #318
  • Fix a possible infinite redirect if the static front page is not translated
  • Fix incorrect behavior of action ‘wpml_register_single_string’ when updating the string source
  • Fix fatal error with Jetpack when no languages has been defined yet #330
  • Fix a conflict with Laravel Valet. Props @chesio. #250
  • Fix a conflict with Thesis.
  • Fix a conflict with Pods in the block editor. Props Jory Hogeveen. #369
  • Fix fatal error with Twenty Fourteen introduced in version 2.5.4. #374

See changelog.txt for older changelog