The «Migrate Polylang to WPML» plugin makes it easy to move sites form Polylang plugin to WPML. It migrates the language information for posts, pages, custom post types and taxonomies.
Of course, you need to have a WPML account to migrate to WPML. The Multilingual Blog account will work for most sites coming from Polylang. To enjoy all the features of WPML, you should get the Multilingual CMS account, which includes String Translation and Translation Management.
You also need to install the Migrate Polylang to WPML plugin.
To download it, go to Migrate Polylang to WPML on Github and get the latest release (on top of the list). In the Downloads section choose the format that you prefer (zip or tar.gz).
Once downloaded, you can upload the migration plugin to your WordPress site like any other plugin: Go to the Dashboard -> Plugins page and click the Add new button. On the next page, click Upload plugin and choose downloaded archive.
You must disable Polylang before initiating the WPML migration process. Attempting to activate WPML while Polylang is active will lead to a WordPress fatal error. So please remember to deactivate Polylang, before activating all the plugins mentioned in the Requirements section.
The migration process modifies global site settings and updates the language information of all the content in your site. You should definitely create the full backup of your database before starting the migration process (even if you already did it successfully on other sites).
There are several great backup plugins and you can also take a DB snapshot from your hosting control panel.
When you activate WPML, you will see a message requesting you to complete the WPML Installation Wizard. This is the standard WPML plugin installation wizard displayed to every WPML user, not only those who are migrating from Polylang. Please follow the wizard’s on-screen instructions. Remember to select the same languages you selected in Polylang. The migration plugin will display tooltips reminding you which settings you have chosen for Polylang:
RedirectMatch 301 /en/$ http://example.com/index.php