Google reports errors about hreflang attributes

Google reports errors about hreflang attributes

You create one page in a first language and you publish it. Google crawls the page displayed without hreflang attributes because the page is not translated yet.
Later, you translate the page in a second language and publish the translation. Google crawls the translation and finds hreflang attributes since the page is translated. Google has crawled the first page and its translation and reports an error about hreflang attributes not matching.
Even later, Google crawls the first page again and finds the hreflang attributes. They are matching the hreflang attributes of the translated page. Google doesn’t report the error anymore. Please be patient. It can take time for Google to crawl your original page after you translated it.
You would have the same error if you originally have a page in several languages and add later an additional translation. In this case, the error may be reported during even more time as all translations must be crawled by Google before it removes the error.

The random header image of Twenty Eleven does not work

The random header image of Twenty Eleven does not work

Most probably you uploaded the images and did not translate them. You have to either translate the images in all languages or de-activate the languages and translations management of media in Polylang settings.

Widget titles are not listed in the strings translation table

Widget titles are not listed in the strings translation table

If you enter a title in the widget options and this title is not listed in the translation table, it is most likely because the widget uses the very old Widget API (WP < 2.8). Obviously the advantage for the widget is to be compatible with WordPress older than 2.8 but unfortunately, there is no way to make Polylang automatically compatible with all widgets which use this old API.
It is however possible to make them compatible for people who have some PHP skills, using the Polylang API functions ‘pll_register_string’ and ‘pll__’.

A widget has no multilingual capability

A widget has no multilingual capability

WordPress 2.8 introduced a new widget API. Polylang is compatible with this API. Any widget which is compatible with older versions of WordPress should still work but will have no multilingual capability (no possibility to display it in only one language, no possibility to translate the widget title). Of course, all default widgets are supported by Polylang.

The characters are not correctly encoded

The characters are not correctly encoded

1. Open the the wp-config.php in the WordPress root directory and check that the DB_CHARSET is defined to UTF8:
12/** Database Charset to use in creating database tables. */define(‘DB_CHARSET’, ‘utf8’);
2. Go in your database and check that the charset of your database and all your tables is UTF8:

If everything looks OK but the problem is still there, we recommend that you report your issue on the specific language forum to know how native speakers handle these characters.

My theme provides a wpml-config.xml but nothing appears in the Strings translation table

My theme provides a wpml-config.xml but nothing appears in the Strings translation table

This issue could occur with child themes when the parent theme stores its options in theme mods.
In that case, edit the wpml-config.xml file provided by your parent theme, and change the line:

to

Then put this new wpml-config.xml file into your child theme’s directory, or in /wp-content/polylang/. You must create the directory if it does not exist.

The content is displayed in only one language on backend

The content is displayed in only one language on backend

Polylang introduces a new menu in the admin bar on top of the admin screen. You can choose to filter the content by language or display all languages. This filter is persistent (kept when you logout). It has no influence on the language of the user admin interface, which can be chosen in the user profile.

My theme or some plugin is not translated

My theme or some plugin is not translated

There are two main reasons for this to occur:

Your theme or plugin may not be translated (no or incomplete .po/.mo files). You can use poedit the plugin Loco translate to make the translation.
Your theme or plugin may not be compatible with the Polylang option “The language is set from content”. Try using the default setting: “The language is set from the directory name in pretty permalinks“.

I activated Polylang and my posts, my categories are not displayed anymore

I activated Polylang and my posts, my categories are not displayed anymore

When installing Polylang or Polylang Pro using the Setup Wizard, you should have been requested to select one or more languages  and assigned one of these languages to your content (see screenshots below). If you skipped this step, then no language was assigned to your existing content causing some unwanted behaviors such as posts or categories appearing to have disappeared.

Why?
If your posts / pages / categories and post tags are without a language they will not pass the language filter and won’t be displayed on the front-end, therefore you MUST define a language.
How can I solve this?

You can run the Wizard from the Languages menu => Setup sub-menu or by clicking on the button which may still be visible on most admin pages.  See our documentation Setup Wizard.
Or assign a language to your content post installation by clicking on the link “You can set them all to the default language” as shown in the gif below. If your current content is in English for example, choose English as default language and by clicking on the link available in your languages page, English will be assigned to all your existing content.