Resources / Blog

Translating Your WordPress Site Into Multiple Languages

Jul 19, 2022

WordPress is a powerful content management system. It can be used to build different websites, from simple blogs to e-commerce sites.

The WordPress interface is available in over 70 languages, making it easy for users worldwide to set up a website. But what happens when you want your audience to be able to view your website in different languages on the front-end?

The globalization of corporations and organizations has inevitably increased the demand for translating your WordPress site into multiple languages to remain competitive.

With WordPress-compatible translation plugins like WPML, you can create a fully multilingual website in no time.

Translating Your WordPress Site with WPML

Although many translation plugins are available, WPML is the leading multilingual plugin for WordPress. It supports over 40 languages out-of-the-box and lets you add custom languages.

It’s also worth noting that Morningside is officially integrated with WPML. Thanks to our partnership, you can easily send content for translation directly from your WordPress admin panel without worrying about the theme, plugin, or site configurations.

With WPML, you can translate every part of your WordPress site, including:

  • Posts and pages
  • Custom post types and custom taxonomies
  • Categories and tags
  • Menus
  • WooCommerce products

Once you send the content for translation, your translation service partner, like Morningside, can handle the translation process from start to finish.

For an in-depth overview of all the translation features and options WPML provides, we suggest checking out WPML’s Getting Started Guide.

Translating Posts, Pages, and Custom Post Types

Once you have your WordPress site set up in your default language, you can send your posts and pages for translation:

  1. From your dashboard, go to WPML → Translation Management.
  2. Select the items you want to translate as well as the languages you want to translate them into. Then, click on Add selected content to the translation basket.

Translating Your WordPress Site - Translation Management Dashboard

Selecting content for translation from the Translation Management Dashboard

  1. Click over to the Translation Basket Once you review the documents you are sending, set a batch name, and deadline, and use the dropdown menu next to each language pair to select who will translate the items.

Translation Basket

Assigning items for translation from the Translation Basket

  1. Click on the Send all items for translation

Note: if your site uses custom fields, you may need to adjust their translation settings before sending posts and pages for translation. For details about working with ACF, see this guide to Translating Sites Built with ACF.

Translating Custom Post Types

You’re already aware of the two most common post types – posts and pages. However, some themes and plugins also come bundled with custom post types.

Custom post types expand the in-built functionality of WordPress and let you add a particular kind of content to your site. Let’s say your website sells products or services. You’ll probably want to show off some positive customer reviews to bring credibility to your business. With the Testimonials custom post type, you can easily add and manage your client testimonials from one place and separate them from your other content.

Some other popular examples of custom post types are:

  • Portfolios
  • FAQ
  • Events
  • Slides

The process of sending custom post types for translation is exactly the same as for posts and pages. However, you may first need to set your custom post types as Translatable.

To demonstrate this, we’ll set up the translation preferences for our Portfolios custom post type:

  1. Navigate to WPML → Settings and scroll down to the Post Types Translation
  2. Choose one of the two Translatable options for your custom post type and Save your changes.

Translating Your WordPress Site - Portfolios Custom Post Type

Setting the Portfolios custom post type to Translatable

Translating Content from Widgets, Menus, and Other Places

Once you’ve translated your posts, pages, and custom post types, you may notice that bits of content aren’t translated. For example, there may be some untranslated words in your site’s header or footer. These texts are called strings.

Here, we have a page translated into Spanish with some untranslated text in the footer. The text comes from a widget, which is why it wasn’t available for translation with the page’s content.

Untranslated widget text

An example of untranslated widget text in the footer

To translate these texts:

  1. Go to WPML → String Translation.
  2. Use the display filter at the top of the String Translation page to determine which strings to display. You can also select the domain the string belongs to or search for the exact string. In our case, we need to select In domain: Widgets.

String Translation Table

Determining which strings to display in the String Translation table

  1. To send the text to Morningside or your translation service, check the box next to each string and select the language you want to translate them into from the list. Then, click on the Add to translation basket

Translating Your WordPress Site - Strings for Translation

Selecting strings for translation

  1. Now, you can head over to the Translation Basket tab in WPML → Translation Management and send your strings to Morningside.

You can follow the same steps to translate menu items, admin texts, and other texts from your theme and plugins.

Scanning Your Theme and Plugins For Untranslated Text

While many texts are immediately available for translation on the String Translation page, some aren’t. For example, this might be the case if your theme provides custom widgets or if you are coding your own widgets.

By default, WPML doesn’t scan or load translation files from themes and plugins into the database.

To scan the translation files of the relevant theme or plugins:

  1. Go to WPML → String Translation and try searching for the untranslated text.
  2. You should see a dropdown called Can’t find the strings you’re looking to translate? Expand it and choose the theme or plugins you would like WPML to scan in the Some of the translations have changed section. Then, click on Scan translation files.

Translation FIles
Scanning your theme and plugins for translation files

  1. After the scan is complete, your page refreshes. You can select the related theme or plugin from the In domain dropdown and search for your strings.

Scanning for Hard-Coded Strings

If you still can’t see your texts in the String Translation table, your theme or plugin may have hard-coded the strings and wrapped them in a gettext function.

Because String Translation only scans the MO files for translatable strings, you’ll need to run a scan for hard-coded strings:

  1. From your dashboard, go to WPML → Theme and plugin localization.
  2. Depending on where your text comes from, scroll down to either the Strings in the themes or Strings in plugins Then, select the theme or plugin and scan it.

plugin for strings
Scanning a theme or plugin for strings

  1. Once the scanning process is complete, you can return to the String Translation page and search for the text again.

If you want to learn more about translating strings, we recommend reading through all the pages in WPML’s documentation about String Translation.

Wrapping Up

While WordPress is an excellent platform for building your website, you’ll need the help of external translation services to make your site’s content multilingual.

With WPML, translating your WordPress site is not only simple but also well-documented. On WPML’s website, you’ll find everything from beginner how-to guides to more advanced documentation, like how to translate content coming from ACF fields or how to create multilingual sliders.

And thanks to the collaboration between WPML and Morningside, a few clicks are all it takes to send your site’s content to your translation team and start your multilingual journey.

Get the latest insights delivered to your inbox

  • ¨ You agree we can store your data. We promise to keep it safe. Learn More