WPML requires minimal configuration before you can begin translating content, and a simple installation wizard guides you through the required settings.

Installing and configuring WPML

WPML includes a core plugin and several add-on modules. We recommend Multilingual CMS customers start by installing WPML Multilingual CMS, WPML String Translation, and WPML Translation Management, available from your account downloads page.

Please read the installation instructions if you need help.

When you first activate WPML a setup Wizard will help you specify the essential settings required to prepare your site for multilingual content.

Follow the Wizard to:

  1. set the default language
  2. add additional languages
  3. specify where to display a language switcher (e.g. footer)
  4. register WPML

That’s it. Your site is now ready to translate content.

Using WPML

Even if you do not translate the content yourself you should understand what is involved, so let us manually translate a post to see how it works and then look at what else you need to know.

Translate posts and pages

Here, we start with a fresh WordPress installation, with WPML configured to use English as the default language and Spanish and French as secondary languages.

Viewing the list of posts shows the “Hello world!” post. Note the flag on the Toolbar. It shows that we are currently listing English content. You can switch the current content language from here.

Starting a post translation

Use the plus buttons alongside the post title to add translations.

Clicking the plus button to add a Spanish translation creates a new post that is edited with the default WordPress post editor. WPML records this as a Spanish version of the original post. When users visit the front-end WPML will choose which post to show based on the visitor’s language choice.

Note that the language of the new post is Spanish, and the flag in the toolbar is updated to indicate the same.

Translating your post with WPML

In this screenshot, we manually entered the new title and content in Spanish.

Use the Copy content from English button to copy the text of the original post and edit it into the target language.

Use the Overwrite with English content button to create a duplicate, which is an always up-to-date copy of the original. It is automatically updated whenever the original post is edited and so is useful for pages that do not need translating (e.g. a portfolio showcase). It is also used if no translation has been published yet and you want the original content to be shown.

After the translation is published, return to the list of posts at the page Posts -> All Posts and it will list content in the target language (in this case Spanish).

List of posts in secondary language

Use the pencil icon to edit the English version of the post and the plus sign to add translations for other languages.

The procedure to add translations is the same whether editing standard posts, pages, or posts of a custom type.

Note that posts and pages designed with page builders need special handling. Their embedded text should be edited using the WPML Translation Editor. Read more about Translating content created with page builders.

For a deeper look at the options available when translating posts and pages, read Translating Content.

Posts and pages form the backbone of WordPress content, but there are other site contents that need translation, as well as the texts generated by the theme itself and some plugins.

Translating other site content

Taxonomies

Translating taxonomies

You can manage translations of categories and other taxonomies at the page WPML -> Taxonomy Translation. Terms can be automatically assigned to translated posts while maintaining taxonomy hierarchies.

Read more about Translating Post Categories and Custom Taxonomies.

Custom fields

Translating custom fields

You can manually add translations of custom fields directly on the Post Edit screen of the translated post.

You can set other custom field translation options from the Multilingual Content Setup tab of the WPML -> Translation Management page, or the Multilingual Content Setup section of individual post edit screens.

Read more about the options for translating custom fields.

Images and other media

Translating image texts

With the optional WPML Media module, you can automatically re-use the same media files on translated posts while translating captions and other media metadata for display in different languages.

Read about using the WPML Media module.

Menus

Translating menus

Use WPML to show different menus for each language. Set up different menus manually or automatically synchronize the menu content.

Read more about Translating Menus.

Widgets

Translating widgets

Use the String Translation module to translate standard WordPress widget texts as well as texts from custom widgets registered by your theme or plugins.

Read about Translating Widgets.

URLs

Translating URLs

Edit the permalink directly to translate page names appearing in URLs, and use Translation Management settings to translate slugs of custom post types.

Admin and theme option texts

Translating admin and theme option texts

Use the String Translation module to edit admin texts, such as the site title and tagline, and theme option texts stored in the wp_options table.

Translating theme and plugin texts

Themes and plugins make their texts available for translation by outputting them using PHP gettext functions. The translations themselves are stored as .mo files. Some themes and plugins include .mo files for popular languages, but these are often missing or incomplete.

Use the String Translation module to translate theme and plugin texts, and also texts that are otherwise untranslatable, such as the admin and theme option texts described above. Specify preferences for theme and plugin translations in the settings page WPML -> Theme and plugins localization.

Read about translating your theme and plugin texts.

Compatibility with complex plugins

Some plugins, such as WooCommerce and Gravity Forms, require an additional module to make all their texts available for translation, and you can find these compatibility plugins on your account downloads page.

Working with Translators and Translation Services

Once you have prepared your site for translation the text will still need to be translated.

Depending on the size of the site the translations may be done as follows:

  • manually by one or two users (Administrators and Editors are able to translate by default)
  • by designated translators who are registered users of the site. Use the Translation Management module to set up users as translators for specific language pairs and allocate translation jobs to them
  • by commercial translation services. The same Translation Management module can also send translation jobs to external translation services and manages the entire process from the WordPress backend

Read about Using WPML’s Translation Management.

Preparing a multi-lingual site for hand-off to clients

If you are developing a site for clients you will want to make sure everything is prepared for them to update it with translated content.

  • Register WPML for their site so that they receive automatic plugin updates
  • Invite clients to register as End-Users with WPML, thereby giving them access to targeted documentation about translating content and a dedicated support forum where they can get help with translation issues (see Accounts for WPML End-Users)
  • Review the WPML settings at WPML -> Languages and the Multilingual Content setup tab of the WPML -> Translation Management page. The settings are mostly self-explanatory. When choosing the Language URL format bear in mind that changing this later will complicate SEO. If you are not sure which setting to choose, we suggest using different languages in directories
  • Set up which content can and cannot be translated (e.g. custom post types, custom fields). Ensure that the widget texts, as well as any required admin texts, are correctly registered for translation
  • Agree with your client who will translate what, and use the Translation Management module to set up translators or enable professional translation by external services
  • Understand how to translate different parts of the site so that you can train your clients to use Translation Management and the String Translation module to translate the theme and plugins and some harder-to-find texts