Discover, trust, install: FAIR 1.0 is here

Plugin Banner

WP Multilang – Translation and Multilingual Plugin

by Magazine3

Version: 2.4.22

Download
Description

WP Multilang is a multilingual plugin for WordPress.

Translations of post types, taxonomies, meta fields, options, text fields in miltimedia files, menus, titles and text fields in widgets.

Home | Help & Tech Support | Documentation | Premium Features

New Features of the plugin WP Multilang

Features of the plugin WP Multilang

  • 100% free.
  • Translation at PHP.
  • Compatible with REST.
  • Support configuration for translate multidimensional arrays in options, meta fields, post content.
  • Support multisite.
  • Support WordPress in sub-folder.
  • Separate menu items, posts, terms, widgets, comments per language.
  • Many filters for dynamic applying translation settings.
  • No duplicate posts, terms, menus, widgets.
  • No sub-domain for each language version.
  • No additional tables in database.
  • Possibility set many languages with one localization. For example, for localization in the region.
  • Possibility to set custom locale for html(If installed locale is en_US, you can set locale like: en, en-UK, en-AU etc. Without installation another localization)
  • Possibility for add new languages for any user with capability manage_options.
  • Exist the role “Translator” for editing posts, terms. It can not publish or delete.
  • No limits by languages or by possibilities.

WP Multilang compatible with plugins

  • Elementor ( available in premium version ) – View Tutorial
  • Divi Builder ( available in premium version ) – View Tutorial
  • ACF, ACF Pro
  • WooCommerce
  • WooCommerce Customizer
  • Gutenberg
  • Yoast Seo
  • SEOPress
  • Contact Form 7 (added mail tag [_language] for send user language in mail)
  • WPBakery Visual Composer
  • Page Builder by SiteOrigin
  • NextGEN Gallery
  • All in One SEO Pack
  • MailChimp for WordPress
  • Newsletter
  • Maps Builder
  • Max Mega Menu
  • MasterSlider
  • WP-PageNavi
  • BuddyPress
  • Meta Slider
  • TablePress
  • Download Monitor (Redefine templates for links in your theme and translate link texts)
  • Better Search
  • Rank Math SEO (thanks for @pratikmts)
  • WPGraphQL (Add lang to the query parameters in URL. Eg: lang=en)
  • Smart Custom Fields
  • Team – Team Members Showcase Plugin
  • Schema & Structured Data for WP & AMP
  • Forminator Forms
  • Gravity Forms

Advance Woocommerce Support

  • Send emails in customer’s selected language
  • REST API Support
  • Import and export products in customer’s selected language
  • Translate products (simple products, variable products, grouped products), categories, tags, global attributes
  • Cart synchronization across multiple languages

Manage translation settings via json.

Add in the root of your theme or plugin file wpm-config.json.

Sample configurations can be viewed in config files in folder ‘configs’ in root the plugin.

Configuration is updated after switching theme, enable or update any plugins.

The plugin has filters for dynamic application configuration for translate.

For turn off translation, set null into the desired configuration.
For example, you must turn off translation for a post type post.
There are two ways:

  1. In json.
    Create in root of a theme or a plugin file wpm-config.json with:
    {
    “post_types”: {
    “post”: null
    }
    }

  2. Through the filter.
    Add in functions.php
    add_filter( ‘wpm_post_post_config’, ‘__return_null’ );

To enable translation pass an empty array in php array() or empty object in json {}.

Supports translation multidimensional array of options, meta fields and post_content.
Supports the removal of established localizations.
Supports translation via GET parameter. Add in the GET parameter lang code desired language.
Supports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.
Supports import term translations from qTranslate(by Soft79).
Supports automatically redirect to the user’s browser language, if he visits for the first time.

Ideal for developers.

For display language switcher in any place add the code to your template if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();
Function accepts two parameters:
$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.
$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.

Or using the shortcode wpm_lang_switcher. It accept two not necessary parameters ‘type’ and ‘show’.

Available features for translation:
wpm_translate_url( $url, $language = ” ); – translate url
wpm_translate_string( $string, $language = ” ); – translate multilingual string
wpm_translate_value( $value, $language = ” ); – translate multidimensional array with multilingual strings

Update translation occurs at PHP. Therefore plugin has high adaptability, compatibility and easily integrates with other plugins. This is what distinguishes it among similar.

Available translation html tags by JS for strings what do not have WP filters before output.

Add your tags in config:

"admin_html_tags": {
    "admin_screen_id": {
      "attribute": [
        "selector"
      ]
    }
}

Where:
admin_screen_id – admin screen id.
attribute – attribute what need to translate. Available ‘text’ – for translate text node, ‘value’ – for translate form values. Or other tag attribute, like ‘title’, ‘alt’.
selector – css selector for search needed tag. Each selector is a new array item.

If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.
Example, add config for each item ‘title’ in custom post field array:

"post_fields": {
    "custom_field": {
      "wpm_each": {
        "title": {}
      }
    }
}

For set translation uses the syntax:
[:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]

Added shortcode for translate text in any place:
[wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]

If You translate text in established language, add lang parameter:
[wpm_translate lang=”de”][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]

Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.

Compatible with REST-API.
Support transfer the required translation through option lang in the GET request to REST.
Has the ability to keep recording the target language through the transmission parameter lang in the request.

Migration from qTranslate-X

  1. Before installing/uninstalling, make database backup.
  2. Deactivate qTranslate-X.
  3. Install and activate WP Multilang.
  4. Create in root of your theme file ‘wpm-config.json’.
  5. Add all needed post types, taxonomies, options, fields to ‘wpm-config.json’. Setting from qTranslate-X not importing.
  6. Import term names from qTranslate.
  7. Check that everything is okay.
  8. If everything is okay, remove qTranslate-X. If not, make screenshots of errors, restore database from backup and add support issue with your screenshots and description of errors.

Warning

Not compatible with:
– WP Maintenance

Known issues

Function ‘get_page_by_title’ not working, because in title field are stored titles for all languages. Use function ‘wpm_get_page_by_title( $title )’ as solution.

NOTE: Because plugins have different ways of storing data, WP Multilang is not compatible with every single plugin out-of-the-box (mostly page builders). This may result in texts not being translatable or translations not being saved. Most of these issues can be resolved using the integration options (wpm-config.json or filters) of WP Multilang.

Please try WP Multilang in a test-environment before activating it on an existing production site and always make a backup before activating!

Home | Help & Tech Support | Documentation | Premium

Support

We try our best to provide support on WordPress.org forums. However, We have a special community support where you can ask us questions and get help about your WP Multilang related questions. Delivering a good user experience means a lot to us and so we try our best to reply each and every question that gets asked.

Bug Reports

Bug reports for WP Multilang are welcomed on GitHub. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.

  1. Upload the plugin files to the /wp-content/plugins/wp-multilang directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Adjust languages on WP Multilang Settings page.
  1. Settings page

    Settings page

  2. Post list page

    Post list page

  3. Taxonomy list page

    Taxonomy list page

  4. Taxonomy edit page

    Taxonomy edit page

  5. Post edit page

    Post edit page

I add new translation, but it rewrite another translation on different language.

If you have opened several browser tabs for editing this post in different languages, translation will be saved for the language that you opened last.

customer service

By avathan on August 18, 2025

Had an issue with a non-responsive customer service. Apparently I emailed during a holiday which led to a delayed response.

Plugin is good! - I am still trying to figure out all options and license is a a bit tricky - glitching but it is being addressed now and expected to get resolved.

Amazing Plugin, Stellar support

By zpaparidis on January 29, 2025

The support of the developers is simply stellar... The plugin by itself is amazing but I noticed that it didn't work with custom post types. However, the support patiently and quickly replied to my questions and provided me with a code to support them. Search the support forum for it... But maybe you won't need it as they plan to integrate support for CPTs in the near future...

Amazing translation plugin, easy to use. Love it.

Great plugin

By Vadim (ls3run) on November 21, 2024

Simply a great plugin. Constantly something is being improved and updated. Responsive technical support. More convenient than analogues. There is the possibility of customization through configuring. And most importantly, it is free.

Not for Woocommerce

By justynawilaszek on August 27, 2024

Impossible to have home page in language version. Functional pages take the name in different language, then it gets erased snd page continues in language version but without the title. After 2 days of desperation, I purchased Polylang for Woocommerce. Maybe good for simple posts, but not functional when you want to do money from ecommerce.

Fantastic support, and quick response

By dmmgp on August 18, 2024

Got really fast responses from the support team when I had a problem with the plugin, and was able to have my support request closed very quickly. They were very friendly and knowledgeable. Plugin is a great tool, and very user friendly, with my limited experience with wordpress I was able to find everything easily. Thanks a lot for the great service!

high-quality service

By s4shkaa on July 10, 2024

Thank you very much to your team for timely and high-quality service and good communication. I recommend it to everyone! Thank you.

Cela fonctionne !

By umutaakt on May 23, 2024

Pour l'instant, pour moi, cela fonctionne. Merci de votre temps pour avoir créé ce plugin !

Websites and WordPress Core Damage

By eupipe on May 22, 2024

For 3 days I have been trying to remove this plugin, which only causes annoyance and has left me countless empty pages without titles, even with the help of the support team.

This is already damaging to my business as I can't rollout according to the schedule, which means we have to bear daily costs and can't generate any revenue.

For each day the purchase price of the module should be introduced as a penalty or simply banned from WordPress.org.

Does what it is supposed to do.

By solocare on September 26, 2023

WordPress 6.3.1 with PHP 8.1 and 3 different languages. No Problems.

Nice plugin

By Segoro on August 20, 2023

The plugin is not bad, perhaps the most convenient for self-translation of articles into different languages. But, I don't understand how to remove this message that keeps popping up when editing an entry.

>>>The backup of this post in your browser is different from the version below. «Restore the backup»
This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version.<<<

2.4.22

  • enhancement Fixed woocommerce attribute translation issue for third language #175
  • fixed Auto Translate style issue on product taxanomies/terms #196
  • enhancement Added re-translate option for taxonomies #197
  • feature Added an option to exclude page/post from auto translation #200 (Pro)
  • fixed Featured image issue on block editor #203

2.4.21

  • fixed Rankmath title translation improvement #177
  • fixed Flag translation issue on products #185
  • fixed Memory size limit improvement #189
  • feature XLIFF export compatibility with ACF fields on post/pages #190
  • feature Added Bulk Translation Option for Tag and Categories #191
  • fixed Retranslation issue with Elementor pages #192
  • fixed Code improvement for duplicate queries #194

2.4.20

  • feature Compatibility with SEOpress #170
  • feature Auto url slug translation #171
  • fixed Divi builder content translation improvement #173
  • fixed Conflict with latest pro 1.12 version #178
  • feature Added option to retranslate #180
  • fixed Yoast default title issue #181
  • feature Added support for exporting and importing content in XLIFF or XML format for pages #182
  • fixed Code improvement for custom post taxonomy description #183

2.4.19.1

  • fixed Vulnerability fix reported by patchstack

2.4.19

  • fixed Code-profiler plugin execution time issue #149
  • fixed Woocommerce settings translation improvement #161
  • feature Compatibility with ACF Pro Pages Option #162
  • fixed Conflict issue with pinnacle theme #163
  • fixed Code improvement of translation #164
  • fixed Compatibility with WordPress 6.8 and updated readme.txt #165
  • feature Added compatibility with Cyr-To-Lat plugin #169

2.4.18

  • feature Feature to enable support for any custom post type #143
  • fixed Language Switcher issue on gutenberg editor #147
  • fixed Navigation links are not translatable #151
  • fixed Code improvement for bulk translation #153
  • fixed Code improvement of on language switcher on custom post type editor #155
  • fixed code improvement for Category base translation #157
  • fixed Elementor css file creation for respective language #158
  • enhancement Auto translation code improvement when some specials characters are present #159

2.4.17

  • feature Comments translation compatibility #38
  • feature Export and import content in XLIFF or xml format to translate outside #48
  • enhancement Made uninstall easy #138
  • feature Advance woocommerce support #139
  • feature Auto-translate single post/product #142
  • enhancement Checked license key for autotranslation feature #144
  • feature Added compatibility with Gravity form #148
  • fixed Execution timing issue with the code-profiler plugin #149
  • feature Auto-Translation for Reviews and Collections in Schema Plugin #150

2.4.16

  • feature Rankmath multilingual schema and structured data support #56
  • feature Yoast multilingual schema and structured data support #57
  • feature AIOSEO multilingual schema and structured data support #58
  • feature Added a new feature that helps users select different logos as per the language of the site #71
  • feature Compatibility with Forminator form Plugin #132

2.4.15

  • feature Added compatibility with Schema & Structured Data for WP & AMP Plugin #59
  • feature Added compatibility with Team – Team Members Showcase Plugin #75
  • feature Added option to reset the translation languages #122
  • fixed WPBakery Builder Meta Descriptions and Meta Titles Not Translating #128
  • fixed Auto translate not working when adding post via elementor #130

2.4.14

  • fixed Woocommerce product attributes are not getting translated #93
  • feature Added compatibility with the WP Githuber plugin #99
  • enhancement Use ‘translate’ keyword for search the plugin from add new plugin section #103
  • feature Added compatibility with Smart Custom Fields Plugin #116
  • feature Added eature to translate slug for 2nd level of hierarchy of urls #121
  • fixed Code improvement #125
  • fixed Compatibility with WordPress 6.7 and updated readme.txt #126

2.4.13

  • feature WP GraphQL support #44
  • fixed Post Title translation issue for multiple languages #78
  • enhancement Language switcher disappears too early in WordPress 6.6 #91
  • enhancement Code improvement #96
  • fixed Out of memory error after update to 2.4.11 #111
  • fixed Issue with yoast meta description #113
  • fixed License key wrong link issue #118
  • fixed Error after the update 2.4.11 #109

2.4.12

  • feature URL Slug Translation #25
  • fixed PHP waring #102
  • fixed Yoast meta description translation issue #113

2.4.11

  • fixed Product attributers are not getting translated in frontend #94
  • enhancement Code improvement #96
  • fixed Warning: Undefined array key #102
  • feature Automatic translation #77

2.4.10

  • feature Added compatibility with Divi #72
  • fixed issue with canonical and href URL as per the language. #85
  • fixed issue with Language switcher block in site editor #86
  • fixed Compatibility with WordPress 6.6 and updated readme.txt

2.4.9

  • feature WordPress full site editing support #46
  • fixed Conflicts with the Newsletter plugin #61
  • enhancement Changed premium tab to Premium Features in readme.txt #80
  • feature Added Language Switcher Gutenberg Block #82

2.4.8

  • fixed admin_html_tags leaving empty fields #41
  • feature Gutenberg view post should redirect to current language post #55
  • fixed Conflicts with the Newsletter plugin #61
  • feature Woocommerce product attributes translation issue #70
  • fixed Issue with CF7 form #73
  • fixed Language switch button interface Guternberg block button #74

All changelog available on GitHub.

  • Version:Version: 2.4.22
  • Active installs:Active installs: 10K
  • Last updated:Last updated: 2 weeks ago
  • Requires:Requires: 4.7
  • Tested:Tested: 6.8.2
Average rating:4.3 out of 5 stars.
  • Number of ratings: 74 ratings
  • Number of ratings: 5 ratings
  • Number of ratings: 1 ratings
  • Number of ratings: 2 ratings
  • Number of ratings: 14 ratings
Back to top