Skip to main content
Signocore
// signocore multilanguage docs

Switch from WPML or Polylang

Import languages, translation links and WPML strings from WPML or Polylang into Signocore Multilanguage without touching your content.

If your site used WPML or Polylang, Signocore Multilanguage can take over your languages and the links between your translations. The importer reads the other plugin's data straight from the database, so that plugin does not have to be active, and it never changes the content of your posts and terms.

What the importer finds

Signocore ML → Import only appears in the menu while data from WPML or Polylang is in the database. The page shows one card per plugin it found, with what it will import before anything is written:

  • What was found: the number of languages, of posts and pages to import, of categories and tags to import, and of interface strings.
  • Languages: every language from the old plugin, with a badge that says what happens to it.
Badge Meaning
Already set up The language exists here already.
Will be added Step 1 adds the language.
Needs Pro The language does not fit within the two active languages of the free plan.
Not supported The language is not in the plugin's list of languages and is skipped.

What gets imported

WPML Polylang
Languages Yes, the languages that were active in WPML Yes
The language of each post, page and custom post type item Yes Yes
The links between translated posts and pages Yes Yes
The language of categories, tags and custom taxonomy terms, and the links between them Yes Yes
Interface strings and their translations Yes No
Menus No No
Settings, such as the URL format and the language switcher No No

WPML interface strings land on String translation, with their translations for the languages that are active here. Polylang stores its interface strings in a format the importer cannot read, so the card says "No interface strings that can be imported." Translate those strings again on Signocore ML → String Translation.

A few rules decide what the importer touches:

  • Only post types and taxonomies that are translatable here are imported. By default that is posts, pages, media, categories and tags. Turn on your custom post types and taxonomies first, see Choose what can be translated.
  • Only content in languages that are active here is imported. Content in a language you did not add gets no language here and counts as default-language content.
  • Links you already made in Signocore Multilanguage are kept. An item that is linked to other translations here is left unchanged and counted as a conflict. This also means you can run the import again, and it only fills in what is missing.

Before you start

  1. Take a database backup.
  2. Deactivate WPML, including its add-ons, or Polylang. Do not delete it: its data must stay in the database until the import is done. Two plugins that both rewrite addresses give confusing results.
  3. Install and activate Signocore Multilanguage, see Installation and setup.
  4. In the setup wizard, choose the same languages and default language as before, or click Skip Setup and let the importer add the languages.
  5. Go to Signocore ML → General, tick your custom post types under Translatable Post Types and your custom taxonomies under Translatable Taxonomies, and click Save Changes.

Run the import

  1. Go to Signocore ML → Import.
  2. Check what the card for your old plugin found.
  3. If the old plugin had another default language than this site, tick the option that names it, for example Make Spanish the default language here, as it was in WPML. The option only shows while there are languages to add.
  4. Click 1. Add the languages. The result appears below the buttons, for example "2 languages added.", and the page reloads. The button shows a check mark and is disabled when every language that can be imported is already set up.
  5. Click 2. Import translations. This button needs at least two active languages.
  6. Keep the page open while the progress bar runs. The import works through posts and pages, then categories and tags, then interface strings, 200 at a time.
  7. When it finishes, the card says how many items it updated, for example "Import finished. Updated 124 posts and pages, 18 categories and tags, and 0 strings." Items that were already linked to other translations here are counted separately.

Only administrators can run the import.

After the import

  1. Open a few translated posts and check the Translations box, and the Translations column in your post lists. See Translate posts, pages and terms.
  2. Set up what the import does not cover:
    • Menus per language, see Menus.
    • The URL format of your languages, see Language URLs. If the old plugin used language directories such as example.com/es/, the Directory strategy with the same language codes keeps those addresses. Compare a few translated addresses with the old ones.
    • The language switcher, see Language switcher.
    • Polylang interface strings, see String translation.
  3. Check your theme and custom code, as described below.
  4. Delete the old plugin once you are happy with the result. Keep your backup: the importer only works while the old plugin's data is still in the database.

Note: If translations in the old plugin shared a slug, such as example.com/about/ and example.com/es/about/, the translated address needs the shared slugs feature in Pro to open the right page. See Shared slugs.

Theme code written for WPML

Many themes and plugins talk to WPML through its filters and actions, for example wpml_object_id to find the translation of a post, or wpml_current_language to read the current language. While WPML is not active, Signocore Multilanguage answers the most used of these hooks, so that code keeps working without changes. WPML compatibility lists every hook it answers and how each one behaves.

Important: The compatibility layer covers WPML's hooks only. Older WPML functions and constants such as icl_object_id() and ICL_LANGUAGE_CODE, and Polylang functions such as pll_current_language() and pll__(), are not provided. Code that calls them stops working when the old plugin is deactivated. Replace them with the template functions.

Stuck on something the docs don't cover?

Questions go straight to the developer who builds the plugins. Replies usually within a day.

September Sale

€20 off Signocore SEO Pro

Pay €49 instead of €69, one time for unlimited sites. code SEP20