Everything you need to run a multilingual site with TranslateLayer. Can’t find something? Write to support@translatelayer.com.
Getting started
- Install TranslateLayer Pro from the download page and activate it.
- Start the 15-day trial under TranslateLayer → License, or paste your license key.
- Add your languages under TranslateLayer → Languages. The language your site is written in now is the default.
- Optional: click Install language packs so WordPress dates, comments and search results are translated too.
Languages and URLs
Your default language keeps its current URLs, such as /about/. Every other language gets a prefix, such as /de/about/. You can change the prefix, the locale and the hreflang value of each language, and drag the languages into the order the switcher should use.
Turn on Redirect first-time visitors to their browser language if you want new visitors on the homepage to land in their own language. Search engines are never redirected.
Translating pages and posts
Open a page and find the Language box. Click Add German (or any language) and a copy opens as a draft. It already has the layout, images, custom fields and SEO fields of the original, so you only replace the text. In the Pages list, the language columns do the same thing.
Posts, pages and products can use the same slug in every language. Category and tag slugs must be unique in WordPress, so their copies get a suffix such as news-de, which you can rename.
Automatic translation
Click Auto next to a language in the Language box. TranslateLayer translates the title, content, Elementor layout, SEO fields and excerpt with DeepL and opens the result as a draft. Block markup, shortcodes and placeholders such as %s are kept as they are.
The circular arrow next to an existing translation replaces it with a fresh automatic translation of the original. Use it after you change the original page.
Every plan includes translation characters each month, and you can buy extra characters in your account. If you have your own DeepL API key, add it under TranslateLayer → Auto-translate to use it instead.
Menus and theme texts
Menus translate themselves: links point to the translated page and labels can be translated under TranslateLayer → Strings. If you prefer, assign a separate menu to each language under Menus.
Texts from your theme and plugins switch with the language when a language pack exists. For anything that stays in the wrong language, turn on Scan mode under Strings, browse your site, then translate what it collected.
Language switcher
- Menus: Appearance → Menus → “Language switcher”.
- Block editor and block themes: the “Language Switcher” block.
- Elementor: the “Language Switcher” widget.
- Anywhere else:
[translatelayer_switcher]or<?php echo translatelayer_switcher(); ?>.
WooCommerce
Products, variations, categories and attributes are translated like pages. Price, stock, SKU and variations stay in sync with the original product, so you manage them once. The cart and checkout follow the visitor’s language, every order remembers its language and customer emails are sent in it.
Moving from WPML or Polylang
- Make a backup of your site.
- Install TranslateLayer Pro. You can keep the old plugin active during the import, or deactivate it first.
- Open TranslateLayer → Import, pick WPML or Polylang and click Start. The import runs in small batches.
- Check a few pages in every language, then deactivate the old plugin.
The importer brings over languages, the links between translated posts, pages, products and categories, menus per language and string translations. It doesn’t change the old plugin’s data. If WPML used ?lang= URLs, your translated URLs change to the /de/ style, so add redirects for links you shared before.
Licenses and sites
Each license works on the number of sites in your plan. Local and staging addresses such as .local, .test, staging. and dev. don’t count. To move a license, deactivate it under TranslateLayer → License on the old site, or remove the site in My account → Licenses.
When a license or trial ends, editing translations pauses and visitors still see every language for 7 more days. After that the site shows the default language only. Nothing is deleted, and everything comes back as soon as the license is active again.
Troubleshooting
“Could not reach the TranslateLayer license server”
Your server could not make an outgoing HTTPS request to translatelayer.com. Ask your host to allow outgoing connections on port 443. The message on the License screen shows the exact reason.
“The license server returned an unexpected response (HTTP 403)”
A firewall or security plugin on your own site is blocking the request or the reply. If the message mentions “Just a moment”, a bot challenge is in the way. Contact us and include the full message.
Translated pages show a 404 error
Go to Settings → Permalinks and click Save Changes once. If you use page caching, clear the cache.
For developers
translatelayer_current_language(); // 'en', 'de' ...
translatelayer_get_post_translation( $post_id, 'de' ); // ID or null
translatelayer_switcher( array( 'style' => 'inline' ) ); // HTML
// Query one language, or all of them:
get_posts( array( 'tl_lang' => 'de' ) );
get_posts( array( 'tl_lang' => 'all' ) );
Filters: translatelayer_post_types, translatelayer_taxonomies, translatelayer_copy_meta_exclude, translatelayer_switcher_items, translatelayer_switcher_html, translatelayer_hreflang, translatelayer_database_strings, translatelayer_language_catalogue.