Most problems with Signocore Multilanguage come down to URL rules that need refreshing, translations that are not published or linked, page caches, or a second plugin handling languages. Start with the section that matches what you see.
Translated pages show a 404 error
Work through these checks:
- Refresh the URL rules. The plugin does this by itself when you add or change a language, switch URL strategy or save the permalink translations. If a translated address still shows the 404 page, go to Settings → Permalinks and click Save Changes without changing anything.
- Check that the translation is published. Visitors cannot open drafts, and the language switcher and hreflang tags only use published translations.
- Check that the page exists in that language. An address in a language where the page has no translation shows the 404 page by default. To send visitors to the default-language page instead, change Untranslated Page on Signocore ML → URLs, see Visitor language and fallbacks.
- Check that the language is active. Content in a deactivated language is kept but hidden from visitors until you activate the language again on the Languages screen.
- Empty archives are 404 on purpose. A post type archive or author archive with no posts in a language other than the default returns a 404, so search engines do not index an empty copy in every language.
- Changed the address of a language? With language directories, the old addresses redirect to the new ones by themselves. Update your own links where you can.
Subdomains or domains show the wrong language
Subdomains and separate domains are set up on Signocore ML → URLs, and the hosting side at your host. See Language URLs.
| What you see | Why | What to do |
|---|---|---|
| Every subdomain or domain shows the default language | The Pro license is not active, and subdomain and domain detection need Pro | Check the license under Signocore ML → License and click Verify license |
| One domain shows the default language | That domain is not entered under Domain Mapping. A domain that belongs to no language counts as the default language. | Enter the bare domain, such as example.es, next to the language and click Save Changes |
| A language is missing from the switcher, hreflang tags and sitemaps | With separate domains, a language without a domain cannot be reached | Enter a domain for it under Domain Mapping |
| A subdomain shows the default language | The subdomain does not match the address of any active language | Use the address shown for the language in the Address column of the Languages screen, such as es.example.com |
| The browser cannot open the subdomain or domain, or warns about the certificate | The address does not point to your site yet, or has no SSL certificate | Point the DNS to your server, add the address to your hosting account and issue a certificate for it |
The language switcher shows the wrong languages
- A language is missing. Switchers hide languages where the current page has no published translation. Publish the translation, or check that the language is active. With separate domains, a language without a domain is hidden too.
- A language leads to a 404 page. On archives, search results and other lists, the switcher links to the same address in each language, which may not exist there. The same happens on single pages when a switcher is set to show languages without a translation. Translate the page, or set Untranslated Page to redirect.
- A draft translation is ignored. Only published translations count.
See Language switcher for the switcher settings.
Translations are not linked after an import
The import from WPML or Polylang only links translations it can place. Check these causes:
- The language was not added. Languages marked Needs Pro (beyond the two languages of the free plan) or Not supported are not created, and links to content in them are left out. For a Needs Pro language, activate Pro, click 1. Add the languages and then 2. Import translations on Signocore ML → Import again. Links that already exist are kept, so running the import twice does no harm. A Not supported language is not in the plugin's language list and cannot be imported.
- The language is inactive. Only active languages are linked. Activate it and import again.
- The post type or taxonomy is not translatable. Content types that are not ticked under Translatable Post Types and Translatable Taxonomies on Signocore ML → General are skipped.
- The item was already linked here. The import reports "Items left unchanged because they are already linked to translations here" and keeps your own links. Fix those by hand.
To link a translation by hand, open the original, click Link next to the language in the Translations box, search for the post and pick it. Unlink removes a wrong link. See Switch from WPML or Polylang.
Caching plugins show the wrong language or skip the redirect
- The language comes from the address. With the default settings, every address names its language, so a page cache cannot mix languages up. The exception: with Hide Default Language Prefix turned off, an address without a prefix, such as
https://example.com/, shows the language stored in the visitor's cookie. Exclude those addresses from the page cache. - Browser language detection does not redirect. A cached page is handed out without running the plugin, so the server-side redirect never happens. Tick JavaScript Fallback on Signocore ML → URLs and clear the page cache.
- The language cookie. The cookie is named
sml_languageand holds only the language code. The plugin sets it on page views only when something reads it, for example when browser detection is on or Hide Default Language Prefix is off, so ordinary pages stay cacheable. - New translations do not show in the switcher. Cached pages still carry the old switcher and hreflang tags. Clear the page cache after you publish translations or change language settings.
Another multilingual plugin is active
Run one multilingual plugin at a time. WPML, Polylang and similar plugins also rewrite addresses and filter content by language, and two of them at once lead to wrong languages, broken links and 404 errors.
- Import your languages and translation links first, see Switch from WPML or Polylang.
- Deactivate the other plugin.
The WPML functions that Signocore Multilanguage provides for themes and plugins only load while WPML itself is inactive. See WPML compatibility.
Admin notices
| Notice | What it means | What to do |
|---|---|---|
| Signocore Multilanguage requires PHP ... or higher. This site runs PHP ..., so the plugin has been paused until PHP is updated. | The plugin does not run on this PHP version. | Ask your host to update PHP. See platform support. |
| Signocore Multilanguage: planned platform requirements | The next major version will need a newer PHP version than your site runs. The current version keeps working. | Plan a PHP update with your host. Dismissing the notice hides it for every user. |
| Signocore ML: The license key seems invalid. | A license key is saved, but Pro is not active. | Check the email and key under Signocore ML → License and click Verify license. |
| Signocore Multilanguage: translation records need attention | Items created with an earlier version have two linked translation records, so they can show up in two languages. | Open each listed item and unlink the translation that does not belong. The notice disappears when the last one is fixed. |
| You only have one language configured. | Nothing can be translated yet. | Add a language on the Languages screen, or run the setup wizard again. |
| ... is the default language but it is inactive, so ... is used as the default instead. | The default language was deactivated. | Click the link to activate it, or make the other language the default. |
| No default language is set, so ... is used as the default. | No language is marked as default. | Click the link to make that language the default. |
| Signocore ML: The WooCommerce integration is active, but products are not enabled for translation yet. | Products cannot be translated yet. | Click Enable products, categories and tags, see WooCommerce stores. |
| The free plan supports up to 2 languages. Upgrade to Pro for unlimited languages. | You tried to add or activate a third language on the free plan. | Upgrade to Pro, or deactivate a language you do not need. |
| This language has posts or terms, so it cannot be removed. | The language still has content. | Deactivate the language instead. Its content is kept and hidden from visitors. |
| The translation files could not be installed. | WordPress could not download the language files for that locale. | Check that WordPress may install updates on your site, then click Install them now on the Languages screen again. For some locales, WordPress has no translation yet. |
| The content could not be duplicated. It may already have a translation in that language. | A copy could not be made, usually because the language already has a translation. | Open the Translations box of the original to see the existing translation. |
| The translation could not be created. It may already have a translation in that language. | Create could not add the translation, usually because the language already has one. | Open the Translations box of the original to see the existing translation. |
| You do not have permission to perform this action. | Your account cannot edit one of the items, or cannot add items of that type. | Ask an administrator, or an editor who can edit both items. |