How to translate Themeisle themes and plugins in your own language?
Premium Themeisle themes and plugins are 100% translation ready, come with .pot / .po / .mo files, and can be translated using any software such as POEdit, or with dedicated plugins like WPML, Polylang, TranslatePress, or Loco Translate.
🇺🇲 Site with just one language |
🌏 Multilingual site |
Translate themes/plugins hosted on wordpress.org
GlotPress is an open source tool used by WordPress for translations. Anyone can login to GlotPress and help translate themes or plugins hosted on wordpress.org.
As most of our free products are available on wordpress.org, here are the steps you can take to translate them in your own language:
Step 1. Visit the GlotPress Project. Login or Register a new account.
Step 2. Search for your locale and click on Contribute Translation for that locale.
Step 3. Navigate to the Themes or Plugins tab ( depending on which product you want to translate ) and search for the project of your choice. In this case, it's the Neve theme.
Step 4. Click on Translate Project.
On the page, you will see the current state of translation of that language and a list of other translators who might have already contributed in translating the project.
Step 5. Click on the project name.
Step 6. Click on any string and translate it.
Once you translate the strings, project admins take a look at them and approve them.
Once the project admin approves the translations or makes updates to the string, the latest translation automatically appears as an update in the WordPress backend.
Translate with POEdit
To translate strings for any theme/plugin using POEdit, follow these universal steps:
- Download and install Poedit from the POEdit website.
- Connect to your website using FTP and navigate to the theme/plugin folder, typically found at
wp-content > themes > your-theme-name > languages
for themes orwp-content > plugins > your-plugin-name > languages
for plugins. - Look for the
.pot
file, which is the template for all translations. - Copy this
.pot
file and rename it to match your language and country code,theme-name-lang_COUNTRY.pot
(e.g., for Romanian, it would betheme-name-ro_RO.pot
) orplugin-name-lang_COUNTRY.pot
(e.g., for Romanian, it would beplugin-name-ro_RO.pot
). - Download the renamed
.pot
file to your computer. - Open the
.pot
file with Poedit, translate the necessary strings, and save your changes. Saving will also create automatically two files:.mo
and.po
. Make sure they have the same name as the pot file. - Upload both the
.po
and.mo
files back to the languages folder of your theme/plugin on your server.
Translate with Loco Translate
While Loco Translate can successfully translate strings into any language you’ve added, only one translation can be activated at a time. That’s because the plugin relies on the core WordPress language switcher. To show translated strings to your visitors in a particular language, you need to select that language as the default in your site’s settings.
1. Setup the Loco Translate plugin
Install the Loco Translate plugin, using these instructions.
2. Choose your site language
Head to the Settings > General admin screen and scroll to the bottom. You should see a dropdown list with the label "Site Language". Changing this will set a new default language for all site visitors.
3. Translate your theme/plugin
Head to the Loco Translate > Themes or Plugins and select the theme/plugin of your choice.
After that, click on the New language button to start the translating process.
For full details on how to use Loco Translate, we recommend you follow the official recommendations from Loco Translate.
Choose a translation plugin for a multilingual site
When selecting a WordPress translation plugin, there are various factors to consider, like: ease of use, features offered and price. The best plugin for you will depend on your specific needs and budget. While this is a personal decision for everyone to make, we can share a few things to consider about some popular solutions:
Plugin | Pros | Cons |
Polylang | Offers a free version with basic features. Benefits from a large and active community. |
May require more advanced configuration for complex multilingual setups. |
WPML | Powerful, flexible, and offers a wide range of features | Can be complex for beginners. Does not offer a free version. |
TranslatePress | Offers a free version with basic features. User-friendly, easy to use, and allows you to translate directly on the frontend. |
Might not be as feature-rich as WPML |
Translate with Polylang
1. Setup the Polylang plugin
For this part (plus, for creating menus and widgets for each language of your site), we recommend you follow the official recommendations from Polylang.
2. Translate posts and pages with Polylang
Note: The process is similar for posts and pages.
To translate a post, navigate to the WordPress Dashboard > Posts, find your post, and click on the plus sign corresponding to the language that needs a translation.
That moment, a new post is created.
Just add the translated title and content for the new post.
Editing the post language can also be done while editing the post.
Important note: Some of our themes like Hestia Pro, Zelle Pro, and ShopIsle Pro have their frontpage built using options from Customizer. In these cases, to translate the frontpage, follow the steps from the next section.
3. Translate theme built-in sections/options from Customizer with Polylang
All options from Appearance > Customize can be translated by going to Dashboard > Languages > Translations.
Note: If a string is missing, it's possible that the option is using the default value. To fix it, make sure you locate the option in Appearance > Customize, change its value and publish the changes.
Note for Hestia PRO: In the case where the homepage is set to be a Static Page, you also need to make sure that that page has an equivalent page for each language of the site.
Here is where you can translate options that are just text, but also other options, like images or shortcodes.
Here are a few examples with Polylang
1. "Translate" the Logo option from Hestia PRO
- Upload the logo in Dashboard > Appearance > Customize. This will be the logo displayed for the default language of the site.
- Go to Dashboard > Languages > Translations. Locate the custom_logo option. You will notice there the ID of the media file uploaded for the logo.
- To add the logo that will be displayed for the second language of the site, go to Dashboard > Media > Library and click on the "Add New Media File" button to upload the new image.
- Locate the ID of the new image, from its URL.
- Go to Dashboard > Languages > Translations and add the new ID. Save the changes.
2. "Translate" the Logo option from Neve PRO
The same principles can be applied when using Neve PRO.
Search for the logo option in Dashboard > Languages > Translations and use the ID of the new uploaded image in the corresponding language field. The difference consists of the format of the option. For Hestia PRO, it was just the ID of the image, while for Neve PRO, there is a JSON with various other options.
3. "Translate" the Frontpage Contact form in Hestia PRO
- in Dashboard > Appearance > Customize add the shortcode of the Contact form you want to have displayed for the default language of the site.
- Create a different Contact form for the second language of the site.
- Go to Dashboard > Languages > Translations and add the new shortcode.
4. Enable/Disable specific frontpage sections, based on the language, in Hestia PRO
In Hestia Pro, each frontpage section has an option to be disabled or not.
To have some of the sections enabled in just some of the languages of the site, you first need to use a child theme, with this wpml-config.xml file in the root of the child theme folder. ( Make sure to replace theme_mods_hestia-pro-child with the correct name of your child theme folder ). For more details on child themes, follow Section 4. Using Polylang with a child theme.
After that, you can navigate to Dashboard > Languages > Translations and look for the options to disable each frontpage section. You can use 1 or 0 to disable or enable each section for a specific language.
4. Using Polylang with a child theme
The following step is required when using a child theme of one of our themes.
Locate and copy the wpml-config.xml file from the parent theme folder(it's located in the root folder) into the child theme folder.
At the beginning of the file, you will see a line similar to this (in this case, we have Hestia PRO as the parent theme):
<key name='theme_mods_hestia-pro'>
Update the theme name, with the child theme name folder. For example:
<key name='theme_mods_orfeo-pro'>
Save the file. At this point, all the previous steps should function as normal.
Note: When using a child theme with Neve and it's premium version Neve PRO, you need to take an extra step of copying these type of lines from the wpml-config.xml file from Neve PRO, to the wpml-config.xml file of your child theme:
<key name="header_palette_switch_placeholder"/>
Translate with WPML
1. Setup the WPML plugin
For this part (plus, for creating menus and widgets for each language of your site), we recommend you follow the official recommendations from WPML.
2. Translate posts and pages with WPML
Note: The process is similar to the one in Polylang.
To translate a post, navigate to the WordPress Dashboard > Posts, find your post, and click on the plus sign corresponding to the language that needs a translation.
That moment, a new post is created. Just add the translated title and content for the new post.
Important note: Some of our themes like Hestia Pro, Zelle Pro, and ShopIsle Pro have their frontpage built using options from Customizer. In these cases, to translate the frontpage, follow the steps from the next section.
3. Translate theme built-in sections/options from Customizer with WPML
All options from Appearance > Customize can be translated by going to Dashboard > WPML > String Translations.
Important notice: To have access to the String Translations module from WPML please refer to the WPML official documentation as the module requires a specific type of subscription.
Note: If a string is missing, it's possible that the option is using the default value. To fix it, make sure you locate the option in Appearance > Customize, change its value and publish the changes.
Note for Hestia PRO: In the case where the homepage is set to be a Static Page, you also need to make sure that that page has an equivalent page for each language of the site.
Use case: Translate FSE themes with WPML
For full details, we recommend you follow the official recommendations from WPML.
Translating the Site Editor Templates
Site Editor Templates can be found by navigating to Appearance > Editor > Templates.
Before you can translate a Site Editor template with WPML, you first need to save it.
This requires you to edit the template by making a small change to it or by customizing it. Alternatively, you can create new templates.
It’s important to note that any changes you make to a template apply to any page or post assigned to it.
Once you edit a template and save it, those changes are saved to your site’s database. This means that you can translate the edited templates by going to WPML > Translation Management. Choose the Template post type from the dropdown menu, and select the templates you would like to translate. Then, choose how you want to translate it.
Just like with any other post type, you can choose to translate it automatically, translate it yourself, assign it to a translator, or send it to a professional translation service.
Translating Menus in Site Editor Templates
With the Site Editor, you can add a menu into any template using the Navigation block. However, when you send your template (or template parts) for translation, it does not include the items from your menu.
You need to send the Navigation block to translation separately.
For this:
- Go to WPML > Translation Management and use the Type dropdown menu to choose Navigation Menu.
- Select the Navigation Menu you would like to translate and choose how to translate it.
3. From WPML > Translations, click the Translate button next to the Navigation Menu you want to translate.
4. This takes you to the Advanced Translation Editor. In the upper left corner, search by “https” to find all the links menu items. Then, input the corresponding URL of your secondary language posts or pages as the translation.
Use case: Translate Visualizer PRO charts with WPML
The Visualizer: Charts and Graphs plugin has integrated WPML support. To translate charts created with Visualizer:
1. Navigate to WPML > Settings and scroll until Post Types Translation.
2. Check the Translatable button next to the Visualizer Charts type.
3. Navigate to Visualizer > Charts Library and click on the + button to translate a chart in the other language of your site.
4. From the top menu bar, switch the language, or choose All languages to see the corresponding charts.
5. The chart can be displayed as normal, using its shortcode in a page. Just make sure you create a corresponding page for every language of the site in WPML.
Translate with TranslatePress
1. Setup the TranslatePress plugin
For this part, we recommend you follow the official recommendations from TranslatePress.
The free version of TranslatePress allows you to add one additional language. If you need more than that, you can upgrade to the paid version, which will let you translate your site into unlimited languages. Also, TranslatePress allows you to connect your site to Google Translate API or DeepL – an advanced machine translation solution (DeepL is available with the pro version of TranslatePress).
2. Translate posts and pages with TranslatePress
Translating posts and pages with TranslatePress is very simple and intuitive.
Just click on the Translate Page button at the top of the page, select any element of the page and add the translation of your choice.
To "translate" images, meaning to have different images for different languages of the site, make sure to have two different images uploaded in the Media Library, and add their corresponding links in TranslatePress editor.
3. Translate SEO parameters of your site with TranslatePress
Translating key SEO parameters of your site is an important step for your translated pages to appear in Google searches correctly.
The premium version of TranslatePress allows you to handle this through the SEO Pack add-on. It has options for translating your pages URLs, page titles and descriptions.
4. "Translate" the background images from Hestia PRO's frontpage sections with TranslatePress
To have different background images for Hestia PRO's frontpage sections, in different languages, you'd need to add some custom CSS in Appearance > Customize > Additional CSS.
Each language configured in the plugin adds a CSS selector on the frontpage (for example: .translatepress-en_US ).
Based on this selector, each frontpage section's background-image can be targeted and replaced with another image URL
Here are a few examples (that need to be adjusted for each particular case):
/* Big Title section (Hestia free) */ .home.translatepress-en_US #carousel-hestia-generic .item > .page-header > .header-filter { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }
/* Slider section (Hestia Pro) */ .home.translatepress-en_US #carousel-hestia-generic .item.item-1 > .page-header > .header-filter { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }
/* About section */ .home.translatepress-en_US .hestia-about section-image { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }
/* Ribbon section */ .home.translatepress-en_US .hestia-ribbon { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }
/* Subscribe section */ .home.translatepress-en_US .hestia-subscribe { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }
/* Contact section */ .home.translatepress-en_US .hestia-contact { background-image: url('https://live.staticflickr.com/5797/21575333719_2e2b3b658c_o.jpg?fdl=1') !important; }