Synchronize metadatas between translations

Synchronize metadatas between translations

Taxonomies
Comment status, Ping status, Sticky posts
Published date
Post format
Featured image
Page parent
Page template, Page order
Custom fields

Polylang offers the possibilty to synchronize some meta content and options between translations of a post or page. Note however that, whether the synchronizations are activated or not, Polylang always copies all metadatas from the source post when creating a new translation. The content can also be copied when using Polylang Pro.
Go in Languages > Settings.
All synchronizations are de-activated by default and you can activate then by checking the corresponding options in the Synchronization module. Once a synchronization option is checked, a modification to a post or page impacts all its translations.
In some cases an option may seem to have no effect.  It is indeed possible for plugins and themes to force a choice programmatically (or by using a wpml-config.xml file for the custom fields).

1.Taxonomies
Polylang handles the synchronization of the categories, tags and custom taxonomies whether they are translatable or not. A modification of your post』s taxonomies will impact all its translation.
Example with a translated taxonomy: If you choose to add the category 『Category FR』 to a French post, Polylang will automatically add its translation 『Category EN』 to the translated English post. It』s the same behavior if you decide to remove a category.

Individual synchronization of taxonomies: The option in Polylang settings is for all taxonomies and does not allow to activate the synchronization for some taxonomies and not for the other. Developpers can however achieve this thanks to the filter 『pll_copy_taxonomies』.
2. Comment status, Ping status, Sticky posts
When the synchronization is activated, if you check the options comment status, ping status and sticky posts status, in your English post, your choice is automatically copied to the translated French post. Of course, if you uncheck them in your English post, they will be automatically unchecked in the French post too.

3. Published date
Example: If you assign a new published date to your English post, Polylang will automatically assign this new published date to the translated post in French. The synchronized published date is always the last entered date.

4. Post format
Example: When the post format is synchronized, if you choose to assign the Video post format to your English post, the same post format will automatically be assigned to the French translation too.

5. Featured image
Polylang handles the synchronization of the featured image whether you chose to translate media or not.
Example: When the feature image synchronization and media translation are activated, if you assign the 『image-en』 as featured image to your English post, the translated image 『image-fr』 would be automatically assigned as feature image for the translated post in French. If media would not be translatable, the same image would be assigned as featured image for both posts.

6. Parent page
Example: Let』s say that you have an English page 『Parent-en』 with its French translation 『Parent-fr』 and an English page 『Child-en』 with its French translation 『Child-fr』.  When the parent page synchronization is activated, assigning 『Parent-en』 as parent of 『Child-en』 automatically assigns its 『Parent-fr』 as parent of 『Child-fr』.
7. Page template, Page order
Example: If you check the synchronization option, and you choose the 『Full-width Page Template』 for your English page, The same template is assigned to the translated French page. It』s the same behavior for the page order.

8. Custom fields
Check the Custom fields synchronization option to duplicate the same values between translations. If you modify the values of your custom fields in an English post, the same custom fields with the same values are assigned to the translated post.

Keep the custom fields synchronization option unchecked if you need to keep different custom fields or different values accross translations.

Activating the custom fields synchronization may lead to unexpected results with some third party plugins and themes storing their data as custom fields.
Individually synchronize custom fields: The option in Polylang settings is for all custom fields and does not allow to activate the synchronization for some custom fields and not for the other. Developpers can however achieve this thanks to the filter  『pll_copy_post_metas』 or with a wpml-config.xml file.

Adding endpoints in menus

Adding endpoints in menus

Step 1: Create menus
As explained in Polylang Getting started, you must create one menu per language.

Step 2: Filter the content by language
To add endpoints in the right language, you must activate the admin language filter with the wanted language as shown below:

Step 3: Adding endpoints
Once the language filter is activated with the wanted language, you can add your endpoints to your menu as usual:

Step 4: Edit the Navigation label
The navigation label is not automatically translated. You must translate it manually. In the example below 『Edit Account』 has been translated to 『Editer mon compte』:

Note: The endpoint URL slug 『editer-compte』 has been translated in the Strings translations panel. You must have Polylang Pro to translate the endpoints.

URL modifications

URL modifications

The language is set from content
The language is set from the code in the URL
The language is set from the directory name in pretty permalinks
Subdomains name and domains
Hide URL language information for default language
/language/ in pretty permalinks
The front page url contains the language code instead of the page name or page id

Go in Languages > Settings

1. The language is set from content
❶ The URL is not modified: whether Polylang is activated or not, the URL stays the same for posts, pages, categories and post tags. However the URL for the date and the author archives are modified to include the language code. It is indeed necessary to differentiate (for example) English monthly archives from German monthly archives.

2. The language is set from the code in the URL
❷ This option is checked by default if your Permalinks settings are set to Default.
For a site in English and in French, your posts URLs would look like:
• http://www.yoursite.com/?lang=en&p=2
• http://www.yoursite.com/?lang=fr&p=3

Compared to the option ❶, there are less compatibility risks with third party plugins and themes. This is due to the fact that in the case ❶, Polylang defers the language definition compared to the other cases a explained in the diagram below.

3. The language is set from the directory name in pretty permalinks
❸ This option is checked by default if your Permalinks settings are set to pretty permalinks. In most cases, you should keep this option as is, unless you know what you are doing. For a site in English and in French, your posts URLs would look like:
• http://www.yoursite.com/en/my-post/
• http://www.yoursite.com/fr/mon-article/

Note that, except with the first option which keeps as much URLs as possible, when Polylang is de-activated, every URL loose the language information and thus all external links are broken.
4. Subdomains name and domains
❹❺ For advanced users, it is possible to use subdomains (or a different domain per language). All your subdomains (or domains) must point to the same directory (where the WordPress index.php is present). Polylang checks if your domains or subdomains are correctly accessible. Otherwise, Polylang returns an error message. Contact your host provider to get the documentation for the subdomains and domains installation.
Note: we know that the interface of some host providers does not allow to choose the directory where a subdomain is pointing. Check with your host provider if it offers this possibility.
5. Hide URL language information for default language
❻ This option allows you to hide the language information only for the default language. In this case the monthly archives URL in the default language will look
like:
• http://www.yoursite.com/2015/03/

This option is very useful if you install Polylang on an existing website as none of your existing URLs in the default language are modified.
6. /language/ in pretty permalinks
❼ Here you can choose to include the keyword «language» in your URLs.
Keep /language/ in pretty permalinks: the monthly archives URL will look like:
• http://www.yoursite.com/language/en/2015/03/
Remove /language/ in pretty permalinks: the monthly archives URL will look like:
• http://www.yoursite.com/en/2015/03/

7. The front page url contains the language code instead of the page name or page id
❽ This option is available only if you chosen to display the front page as a static page in Settings > Reading. For a site in English and in French, the URLs of your home pages would look like:
• http://www.yoursite.com/en/
• http://www.yoursite.com/fr/
instead of
• http://www.yoursite.com/en/home/
• http://www.yoursite.com/fr/home-fr/

If English is your default language, you can even hide this language code /en/ by checking the option ❻. When both options ❻ and ❽ are checked, the URLs of your home pages look like:
• http://www.yoursite.com/
• http://www.yoursite.com/fr/

What can I do if I have a problem with my VAT Number?

What can I do if I have a problem with my VAT Number?

Your company is based in the EU
Why can the VAT validation fail?
Your company is based in France or Monaco

1. Your company is based in the EU
When you purchase one of our products, if you are based in the EU (outside of France or Monaco) you can exclude VAT from the sale price. Thus we are required to check your VAT number and company name which you can fill-in by clicking on the link provided for such purpose.

Our verification tool is the official EU server that you can also access and use yourself at http://ec.europa.eu/taxation_customs/vies/.
2. Why can the VAT validation fail?
The VAT number validation can fail when filling-in a different company name from the one registered in the EU database. This system is very binary and the company name must exactly match the one registered with the European taxation customs.
You can check on the site which company name is attached to your VAT number:

select the state in the field Member State (this is the two letters at the beginning of your VAT number).
Then type all the digits composing your VAT number in the VAT number field
and click on the 「Verify」 button.

Nota bene: If you do not fill-in the correct company details, your purchase will be considered as made by an individual. In this case the VAT of your country will be applied and charged. European law requires that VAT is collected for European citizens purchasing digital products as individuals since 2015. See European taxation and customs site.
VAT paid cannot be refunded however, if you are a company you may claim it back by contacting your national tax authorities. If you need an invoice including your company name and/or VAT number get in touch with us through our online support.
3. Your company is based in France or Monaco
VAT will be charged. VAT is only deducted for European companies, outside France, who provide us with a VAT number. We are a French company and for transactions between French companies, the VAT is not deducted during the transaction. You must deduct it yourself when you make your VAT return. If your VAT return is done by an accountant, they will deduct any deductible VAT from the invoices you have paid.

Working with media

Working with media

1. You don』t need to translate media
2. You need to translate media
2.1 The Media Library becomes multilingual
2.2 Translate the media information
2.3 Automatically create all translations at upload
2.4 Add translated media in posts or pages
By default the Media translation module is activated. Note that, when you translate a media, the file is not duplicated. The goal of the media translation is only to translate the text (title, alternative text, description…) attached to the media.
The first question to ask yourself is: Will you need to translate the media (title, caption, alternative text, description …) or not? It is not recommended to change this setting once you started to work with media.
In some cases, you will need 2 different media for 2 different languages (for example when an image includes some text). In that case, you will use 2 different media with no need for translation. Polylang does not provide a way to create a relationship between 2 different media. In the case of 2 different headers see: Multilingual header.
1. You don』t need to translate media
If you don』t need to translate the title, alternative text and the description, deactivate the Media module in Polylang settings
Go in Languages > Settings > Media module

You will be able to work with your media library as usual, regardless the language of the posts and pages.
Note: If you already uploaded some media (while the media module was activated), they will keep their language.
2. You need to translate media
If you want to translate your media title, alternative text or description, make sure to keep the media module activated. Then Go in Media > Library.
2.1 The Media Library becomes multilingual
The language columns appear in the media list table, and you need to assign a language to all your media either by editing it or by setting the default language for the existing content.

If you don』t see all your languages, make sure that the language filter displays  「Show all languages」.
2.2 Translate the media information

Edit your media, then follow the following steps:

❶ Choose the language in the dropdown list.

❷ Fill in all the fields you need.
❸ Then save your changes.

❹ Let』s say that you want to create the French translation, click on the corresponding  in languages metabox. You will notice that Polylang automatically copies the content from the source media. Thus you need to translate only the fields that you want and keep the others common to all translations.
2.3 Automatically create all translations at upload
The default language is assigned by default to new uploaded media. Polylang Pro offers the possibility  to automatically create all translations when uploading a new media.
Go in Languages > Settings > Media module

Click on 「Settings」 then check 「automatically duplicate media in all languages when uploading a new file」 and click on 「Save Changes」.

2.4 Add translated media in posts or pages
Example: If you want to add the media to a French post, Polylang filters the Media library according to the post』s language, so in French. In the screenshot below, only 「Media FR」 is visible in the media library, while its translation 「Media EN」 is hidden.

Note: Wen using the duplicating content feature of Polylang Pro, media are automatically translated when creating translation. Here 「Media FR」 would automatically be replaced by 「Media EN」 when creating the English translation.

Managing Products

Managing Products

With Polylang for WooCommerce, the translation is directly done in the WooCommerce interface. You translate WooCommerce products, categories, tags and global attributes using the same way as for posts.
It is very important to assign a language to all existing products, categories, tags and attributes otherwise they won』t be displayed on frontend.
Note: Polylang Pro allows you to share the same URL slug across the translations.
1. Translating
1.1 Translating global attributes
1.2 Translating products categories and tags
1.3 Translating products
2. Which automatic actions are done by Polylang?
2.1 Polylang copies and synchronizes
2.2 Polylang translates and synchronizes
1. Translating
1.1 Translating the global attributes
You must translate the attributes and their terms before using them in your products. Otherwise you will have some synchronization issues between the product translations.
Translating the attribute name and slug
The attribute name and its slug are translatable in the Strings translations panel.
The attribute name is found in the 『Woocommerce』 group. The attribute slug is found in the 『URL slugs』 group and is available for translation only if you are using Polylang Pro and you enabled the 『Enable Archives?』 option.

Translating the attribute terms
The attributes terms are translated directly in the WooCommerce interface. Use the  icon to create a new translation or the  icon to edit it.

1.2 Translating products categories and tags
The product categories and tag are translated directly in the WooCommerce interface and it works the same way as for the post categories and tags.
1.3 Translating products
If you have existing products without language, you must assign a language to all of them.
If you are using Polylang Pro you can use the 『Duplicate content』 feature (click on the  icon to activate it) to copy the content when creating a new translation.

Duplicating products
To save time, WooCommerce allows you to duplicate an existing product with all its metadatas. While using this feature, Polylang for WooCommerce will duplicate the product translations at the same time.
Let』s say that you have a 『Product FR』 and its English translation 『Product EN』, click on the 『Duplicate』 link below 『Product FR』 in the products list.

Polylang for WooCommerce also duplicates its English translation, resulting in the creation of 『Product FR (copy)』 and 『Product EN (copy)』 translations of each other.

2. Which automatic actions are done by Polylang?
The following explanations are for your information. You don』t have any action to do. When you save a product, Polylang for WooCommerce makes different actions depending on the metadata.
As a reminder, 『synchronization』 means that a modification made in a product impacts all its translations.
2.1 Polylang copies and synchronizes
Polylang copies and synchronizes the metadata such as the SKU, the price, the tax.

Polylang copies and synchronizes the weight, dimensions and the shipping class.

Polylang synchronizes the stock across the different languages when a customer purchases a product.

The stock for the product variation is also synchronized.

The custom attributes and related variations are also copied and synchronized.

If you need to translate attributes, you will have to use global attributes.
2.2 Polylang translates and synchronizes
The Product Categories, the Product Tags, Up-Sells, Cross-Sells, Grouping are all automatically translated and synchronized.

The global attributes, previously translated, and their related Variations are also translated and synchronized.

If you activated the translation management for the media, then the Product Image and the Product Gallery are automatically translated and synchronized.

Is Polylang compatible with my theme or my plugin?

Is Polylang compatible with my theme or my plugin?

Due to the huge number of themes and plugins available, it』s impossible to answer clearly to this question.
Because it uses standard WordPress functions and does not add any extra tables, Polylang is compatible, out of the box, with a lot of themes and plugins.
However, complex themes and plugins sometime require some extra work to make them multilingual ready. Fortunately, more and more developpers are testing their themes or plugins in multilingual environments.
A few very complex plugins, sometime adding extra tables, may require a lot of extra work be compatible with Polylang.
We guarantee that Polylang works with the default Twenty themes. We also included extra code to support a few very popular plugins such as Yoast SEO, some Jetpack modules, YARPP…

5 – Widgets

5 – Widgets

Polylang language filter

Legacy widgets
Widgets block editor

Languages options

All languages
Choosing one language

Polylang language switcher

Language switcher with legacy widget
Language switcher in block editor

1. Polylang language filter
1.1 Legacy widgets
Legacy widgets are the ones that were available prior to WordPress 5.8 (Appearance tab => Widgets sub-tab). They still work in WP 5.8 and beyond and can be accessed in the legacy widget block. You have the possibility to choose to display them for all languages (default setting) or only one language.

1.2 Widgets block editor
Since WordPress 5.8 widgets are now managed in the widgets block editor (Appearance tab => Widgets sub-tab). With Polylang Pro the language selector is also available in the block embedded view. As for the legacy widgets you can choose to display them for all languages (default setting) or only one language.

2. Languages options
2.1 All languages
Choosing 「All languages」 in the language dropdown means, as the option suggests it, that this particular widget will be available regardless of the language that is displayed. With this option  you will have the possibility to translate the title in the Strings translations option.

2.2 Choosing one language
Choosing to display a widget for one language (selecting a language in the dropdown list) implies that this particular widget will only be visible on pages and posts available in this particular language. Once the language is selected a flag is displayed on the left of the dropdown list (replacing the language icon)  corresponding to the selected language.

3. Polylang language switcher
3.1 Language switcher with legacy widget
With Polylang you have the possibility to add our widget Language switcher (Appearance tab => Widgets sub-tab) by first adding a block 「Legacy Widget」 in which you then select the Polylang Language Switcher

3.2 Language switcher in block editor
With Polylang Pro comes a block allowing you to display a language switcher. Regardless of the chosen option(s), the block will only display a language if at least one post or one page has been published in this language. More about this block in The language switcher documentation.

How to upgrade a license key?

How to upgrade a license key?

Go to your Account page > License keys tab then click on the 「View Upgrades」 link next to your license key.
How will my upgrade price be calculated?
When upgrading your license you will pay the difference between the cost of your current license and the license you are upgrading to.
Case 1: Upgrade a Polylang Pro license to 3 or 5 or 25 sites.
In the following example we want to upgrade a Polylang Pro license 1 site at 99 € to a Polylang Pro license 3 sites at 198 €:
* the upgrade price will be: 198 € – 99 € = 99 € ex VAT
Case 2: Upgrade a Polylang Pro license to a Polylang Business Pack license.
Here we want to upgrade a upgrade a Polylang Pro license 1 site at 99 € to a Polylang Business Pack license 1 sites at 139 €:
* the upgrade price will be: 139 € – 99 € = 40 € ex VAT
Case 3: Upgrade a Polylang Business Pack license to 3 or 5 or 25 sites.
Here we want to upgrade a Polylang Business Pack license 1 site at 139 € to a 3 sites at 269 €
* the upgrade price will be: 269 € – 139 € = 130 € ex VAT
Note that the Polylang Business Pack is the package containing Polylang Pro and Polylang for WooCommerce. Since they are included in a package, you can not renew or upgrade your Polylang Pro and Polylang for WooCommerce license keys separately. You can only renew or upgrade the complete package.
Should I renew first before upgrading?
Upgrading a license key doesn』t extend its expiration time. Upgrades and renewals are completely disconnected and the order in which you do things is important. It』s indeed cheaper to renew first and upgrade after.
In the case you renew first your Polylang Pro license 1 site and upgrade to 3 sites, the cost will be 49,50 € (renewal cost of a license 1 site) + 99 € (difference cost between 1 site to 3 sites) = 148,50 € ex VAT
In the case you upgrade first your Polylang Pro license 1 site to 3 sites and renew it, the cost will be 99 € (difference cost between 1 site to 3 sites) + 99 € (renewal cost of a license 3 sites) = 198 € ex VAT