MultilingualPress enables you to publish translated versions of your WordPress site. Switch between languages just by hitting a link, or redirect your visitors automatically to their preferred language according to their browser settings.

Price:$99.00 Including tax

Version: 2.4.1 - Changelog

Release Date: 2011

Last Update: 09.05.2016

Compatible With: PHP 5.2.4+, WordPress 4.0


Developer: Inpsyde GmbH

Plugins / Themes: 2

  • Close Changelog
  • Expand All
  • Collapse All

Version: 2.1.2

  • Combine all scripts and stylesheets, separated for frontend and backend.
    Minify scripts and stylesheets when SCRIPT_DEBUG and MULTILINGUALPRESS_DEBUG are not set.
    Make the icon/flag for the current site available in nav menus.
    Sites with custom name are now returned in Mlp_Language_Api::get_translations().
    Better updates: Make sure that site relations are not lost and languages are not duplicated.

Version: 2.1.1

  • Better flag handling
    Link search result pages
    Improve table duplicator
    Fix usage of glob() on Solaris (Strato)

Version: 2.1.0

  • Added links to translations to the head element.
    Relations between sites are now stored in a separate table mlp_site_relations. This is faster than the previous option call, and it is less error prone, because we don’t have to synchronize these relations between sites. The old options will be imported into the table automatically during the upgrade.
    You cannot edit trashed translations anymore. If a translation has been moved to trash, you get a notice on the original editor page now, not the post content.
    Post meta fields in poorly written plugins will not be overwritten anymore. We had many reports about plugins without a check for the current site when they write meta fields. Now we remove all global post data before we synchronize the posts, and we restore them when we are done.
    The HTTP redirect will respect the visitor’s language preference now correctly.
    All users who are logged in can disable the automatic redirection in their profile settings now.
    You can see for which site the HTTP redirect is enabled in the global site table in the network administration in an extra column.
    Installation and uninstallation are heavily improved now. We catch many more edge cases and switches from Free to Pro.
    Languages are now synchronized between MultilingualPress and WordPress. When you assign a language in MultilingualPress to a site the first time and the language files are available, we set the site language in the WordPress option to that value.
    You can add language links to regular navigation menus in the backend now. These links are adjusted automatically on each site: if there is a dedicated translation, the link will be changed to that page. It will point to the other site’s front page otherwise.
    Users who are not logged in will not get permalinks for non-public sites anymore. You can work on a new site now safely, test all the links while being logged in, and your visitors will never see that until you set the site to public.
    Post formats are now supported in the post translation page. We offer only formats that you have used on the other site at least once, because that is the onloy way to know that they are actually supported on that site.
    Post parents are now synchronized when you save a hierarchical post type like a page.
    You can link existing terms (tags, categories, whatever) now. We will add support for term creation on that page later.
    There are hundreds of other, minor improvements.

Version: 2.0.3

  • Show current site in mlp_get_available_languages_titles() with proper language name.

Version: 2.0.2

  • Add check to Quicklink to avoid broken links.
    Avoid notice when duplicating blogs with broken attachments.

Version: 2.0.1

  • Bring Quicklink options back.
    Add a button to the translation metabox to copy the source post.
    Extend return value of Mlp_Helpers::get_blog_language(): lang and language_short return just the first part of a language tag, language_long the complete language tag.
    Include post status private in relationship changer.
    Make get_available_languages_titles() use the correct source.
    Remove language-list.php.

Version: 2.0.0

  • Code refactoring
    New Language Manager with editable languages
    Rename Widget to Language Switcher
    Improved storage of site relationships
    Set attributes width and height for flags
    Fixed error on plugin deactivation
    Implement uninstall.php to clean up on deletion properly
    Simplify user interface in site settings
    Better keyboard accessibility for form fields
    Convert text domain calls to static strings
    Better label texts
    Missing translation does not prevent translating a post again anymore
    Post authors of translations are not overwritten anymore.
    Show current site in widget works now
    Rework translation metaboxes, there is now one box for each language
    Rename blog to site in the user interface
    Update German translation, remove outdated other translations

Version: 1.1.1

  • Fixed URLs for static front page.

Version: 1.1

  • Fixed wrong links in widget on the front page.
    Removed need to reload settings after adding a new relationship.
    Copy post meta data and featured image for connected posts.
    Show languages in site list in native writing style (alphabet), not flags.
    Added a Catalonian flag, the Canadian flag was used for ca accidentally.
    Better data handling during setup of post relationships.
    Copy post meta data only once, avoid overwriting existing meta values later.
    Set preview of connected posts to readonly, not disabled to make copy and paste easier.
    Improved German translation.
    Made all text domain references static strings.
    Added a language list in inc/language-list.php to get languages in native and English writing by ISO codes.
    Added a helper class Mlp_Db_Replace to update multiple tables and columns at once.
    Many minor stability and performance improvements.
    Duplicate blogs without relationships.
    Quick edit does not delete Trasher settings anymore.
    Trasher forgets to trash linked posts sometimes.
    Avoid multiple confirmation messages in blog settings.
    Avoid broken permalinks for linked custom post types, use dynamic links instead of pretty permalinks optionally.
    Show translation metabox for activated post types only.
    Open links from dashboard widget in the same window.
    Fix label for User Backend Language switcher.
    Make all strings in site settings translatable.
    Fix relationship links in Advanced Translator.
    Make language switcher appended to post content keyboard accessible.
    Change appearance of language switcher: plain links for less than four languages, a select element for more.
    Fix ID attributes in Advanced Translator to avoid JavaScript and CSS issues.

Version: 1.0.3

  • Removed link to blog posts on is_home()
    Removed static ?noredirect parameter
    Added modern greek as language
    Added private posts for translations
    Added parameter handling for mlp_show_linked_elements template function
    Added parameter show_current_blog on mlp_show_linked_elements template function
    Added show current blog at the MLP Widget
    Added hook for checkbox “translate this post”
    Added hook to change the default meta box
    Added hook to change the link to the blog
    Changed admin_url into network_admin_url
    Redirect Feature: Added better check for session_start
    Redirect Feature: Added redirect on is_home()
    Redirect Feature: Added ?noredirect link with core plugin hook
    Redirect Feature: Added english as browser language
    Quicklink Feature: Added blog language to quicklink
    Dashboard Widget: Fixed “This post is translated” checkbox
    Advanced Translator: Removed default metabox when feature is active
    Added Feature: Default Actions
    Autoupdate Feature: Removed autoupdate module from module list

Version: 1.0.2

  • Code: Fixed Auto Updater
    Version: Hopping due to some Auto Update Issues

Version: 1.0.1

  • Code: Fixed Wrong Encoding in different files
    Code: Fixed several warnings, notices and small bugs
    Pro Code: Fixed Auto Updater
    Pro Code: Fixed several Advanced Translator Bugs
    Pro Code: Fixed Post Relationships in Blog Duplicate

Version: 1.0

  • Pro Feature: Advanced Translator for Posts and Pages
    Pro Feature: Support for Custom Post Types
    Pro Feature: Dashboard Widget
    Pro Feature: Duplicate Blogs
    Pro Feature: Quick Load of new language packs
    Pro Feature: Automatic browser redirection
    Pro Feature: Systemwide Trash
    Pro Feature: Individual backend language user settings

Version: 0.9

  • Feature: Added Demo Module
    Feature: Added sort option to widget
    Feature: Added is_home() to our queries
    Feature: Added mlp_get_interlinked_permalinks
    Feature: Added mlp_get_blog_language
    Code: Fixed Widget
    Code: Fixed several notices
    Code: Fixed Buffer Bug in Settingspage
    Code: Fixed Notices on refresh of the blog settings
    Code: Fixed Column Content
    Code: Fixed Relationship Error Notice
    Code: Better Error Message for blog relationships
    Code: Constant Language Strings
    Code: Added Korean Language

Version: 0.8.2

  • PHP 5.2 Fix

Version: 0.8.1

  • Adding Plugin Settingspage, Code Cleanup
    Added check that prevents the use of this plugin in a not-setted blog
    Codexified several stuff
    Fixed Missing Table from external Module
    Added filter for the list, fixed Style
    Fixed several notices
    Fixed language key output

Version: 0.8.0

  • Codexified
    Renamed the files
    changed textdomain
    fixed fi_FI language pack
    fixed several widget bugs ( #10, #13, #18, #22 )
    Only load the Widget CSS when widget is used
    added a check box to the editing view asking whether you want to create the drafts to other languages
    Translation is availeable for drafts
    Fixed up JS
    Blog Checkup for invalid data

Version: 0.7.5a

  • Display an admin notice if the plugin was not activated on multisite
    Set the parent page if this page was also handled by the plugin Issue 2
    Fix a problem that a new multisite cannot set related blogs
    Change filter Issue 12
    Widget bugfix Issue 12
    Smaller source via use function selected() Issue 12
    Static value for register widget Issue 12
    Update Wiki for wrapper functions Wiki on Repo
    Add new pages on Wiki on Repo for Filter- and Action Hooks inside the plugin
    Fix bug, if you kill data on an blog for dont interlinked with other blogs

Version: 0.7.4a

  • Exported the basic UI and userinput handling functionality into “default-module” class
    By default post types other than post and page are excluded
    Incorrect flags for some languages Issue 7

Version: 0.7.3a

  • Exported helper functions into own class
    Code documentation

Version: 0.7.2a

  • Updated language codes
    Pro Feature: Systemwide Trash

WordPress Translation Plugin

Your site in all the languages

MultilingualPress enables you to publish translated versions of your WordPress site. Switch between languages just by hitting a link, or redirect your visitors automatically to their preferred language according to their browser settings.


  • SEO-friendly URLs & Permalinks

  • High Performance
  • Top-level Domains per Language
  • Translate All The Things
  • Add Language Links to WP Nav Menus
  • Language Manager
  • Future-proof, WordPress-Core-based Architecture
  • Inline Docs & Developer Support
  • No Lock-in, just honest Open Source Software.
  • Visual editor (Advanced Translator)
  • Automatic language redirection
  • Translate Custom Post Types
  • Quick Nav
  • Automatically Trash Translations
  • Duplicate Sites
  • Back-end Language
  • Dashboard Widget

Getting Started

There are a few things to consider when it comes to publishing web content in multiple languages. Most technical aspects, however, you shouldn’t need to worry about. Especially when your content gets more complex, WordPress should remain easy and intuitively usable.

That’s why we have built MultilingualPress leveraging a powerful WordPress core feature: Multisite. Working on top of Multisite, MultilingualPress enables you to create a network of sites in different languages, all interconnected with and related to each other.

Learn how to quickly set up WordPress Multisite »

Translate Content

Posts, Pages, Custom Post Types

Translate Content

For every language you have created a site in your Multisite network for, MultilingualPress will insert an extra Visual Editor when you edit a Post. Or a Page. Or Custom Post Type. Just translate away on the same screen while you’re on it!

Hired a professional translator? Create a regular WordPress user account for them and grant them author permissions on a per-language basis. Whenever you’ll draft a new post in one language, MultilingualPress automatically will create drafts of that post for each language within your network. Translators just need to open their Dashboard and find new drafts right there to go to work with.

Menus & Widgets

Translating Custom Menus, Widgets and other WordPress components on your website remains extremely flexible. Each language you set up literally translates into a separate site within your WordPress Multisite network. MultilingualPress interacts very carefully with the changes you make on a per-site basis and will only take action when it detects a translated ›sibling‹ of a particular Post, Page or Custom Post Type.

For example, you can add a widget displaying your latest blog posts on your English site. When you add the same widget on your French site, it will, of course, fetch the latest posts from your French blog. Those could be translations of your English blog posts, or not, just as you see fit.


“An image is worth a thousand words”, as the saying goes. But is it in any language? Maybe the image you chose to illustrate a point for anglophone visitors won’t necessary translate to people socialised in non-English spoken society? A video in Portuguese would look great with German subtitles on your German site, wouldn’t it?

MultilingualPress adds great flexibility to the cultural aspects of translation by keeping separated media libraries in WordPress Multisite intact. Yes, it means you have to upload each image for each language and possibly host multiple versions of one and the same image. Just think it through—it’s a feature. (There’s a nifty checkbox to have your Featured Image copied over to other languages automatically, though.)

Licence Anchor


The plugin itself is free available on
With the license you acquire our premium support.


$99.00 Including tax
  • Domains:unlimited
  • Updates:365 Days
  • Supportforum:365 Days
  • Renewal*:365 Days / $69.00