This release of WPML is packed with new features, overall improvements and compatibility with WordPress 4.7.
Translation for shortcodes-based page builders
As of now, it’s a lot easier to translate sites that use page builders. In this release, we managed to add full support for page builders that use shortcodes. In the next release, we’ll also add support for other page builders, which store their design in different ways (usually in postmeta).
Fortunately, we manage to cover the full support for shortcode-based builders using WPML’s language configuration file. This means that we can add compatibility for any such page builder, without releasing new versions of WPML.
This release comes with the support for Visual Composer, Divi and Cornerstone (X Theme).
The new support means that you only need to translate the texts and not re-create the entire design per language.
To take advantage of this new integration, you’ll need to install Translation Management and String Translation. Then, configure WPML to translate using the Translation Editor.
See how this works in Dario’s video:
And, you can follow the entire description on how to translate content created by page builders.
If you want to add such support for other page builders, you’ll need to create language configuration files for them. The document on how to integrate page builders that use shortcodes with WPML explains it in detail.
New options for language switchers
WPML does a lot behind the scenes, but your visitors will always notice is the language switcher. WPML 3.6 makes it easy to create custom language switchers for themes and to display your language switchers exactly like you want them.
This release comes with a complete redesign for the language switcher. The main features are:
- Full backward compatibility – you can upgrade safely and enjoy the new features, but you don’t need to worry about sites breaking.
- Menu language switcher adds menu items instead of HTML – previous versions of WPML injected HTML into the menu, in order to create a language switcher item. This was OK for many themes, but not compatible with all. The new language switcher injects menu items, so it’s bulletproof for any theme. It also makes it a lot easier to style the menu language switcher.
- Support for multiple-switchers in multiple locations – some language switchers, like the footer, can only appear once in each site. However, other switchers, such as the widget switcher, can appear in several places. Now, you can add as many as you like.
- Twig templates for easy customization and theme embedding – the new language switcher uses Twig templates. It’s a simply templating language that doesn’t require programming to understand and modify. This makes it a lot easier to create custom language switcher. But that’s not all. Themes can now include a language switcher folder, which WPML will use. When present, WPML will get the default switcher design created by the theme.
- Nicer GUI – a nice GUI means that it’s easier to understand the options and control them. Since this version includes a number of new options, we’ve decided that it’s also time to completely refresh the GUI. After three rounds of usability testing, we came to a design that we like. We hope that you’ll like it too.
Automatic download for WordPress language packs
When you add languages to WPML, it will automatically download the respective language pack for WordPress core. This is good for a number of reasons. Obviously, it’s nice to be able to switch the admin language and see everything localized. It’s also good for WordPress 4.7 compatibility, so that WordPress can offer this language to users.
WordPress 4.7 compatibility
We’ve been developing and testing with WordPress 4.7 since the first alphas came out. WPML 3.6 QA ran on both WordPress 4.7 and on 4.6. The most noticeable change for WordPress 4.7 is the introduction of the User Language preference. Now, WPML’s setting is merged into the WordPress setting (and WPML tells WordPress to download the language packs). There are more subtle changes for API updates and deprecated functions.
As always, stability, security and performance come before any new feature. This release includes a list of enhancements that solve different edge cases.
- Improved validation of “Different languages in directories” negotiation type
- Adjusted URL in wp_upload_dir return for when WPML is set up to use languages in domains
- Fixed handling of slashes when copying custom fields
- Fixed ‘Create PO file’ functionality so it includes the msgctxt when required
- Prevent sending empty units in XLIFF files
- Fixed GravityForms date in translation dashboard
- Fixed issue where radio choices with long text and HTML were not being displayed
- Fixed a compatibility issue with Yoast redirections
- Fixed an issue with the browser redirection when using languages with regional variations
- Fixed multisite install compatibility issue with WP 4.6+ using sunrise
- On multisite, the main site settings are not altered anymore during sub-site setup
- Fixed a login redirection issue in sites with languages configured as domain
- Fixed a redirection issue Nginx servers with language configured as domain
- Fixed issue with cloning non object values for wp_query object
- Fixed page template synchronization if template is set to default
- Removed Snoopy class and use WP_Http class instead (yeah, finally)
- Fixed a compatibility issue with get_option(‘siteurl’) in sites with languages set as domain
- Fixed WPML_Backend_Request::get_ajax_request_lang
- Fixed \SitePress::_sync_custom_field to handle serialized data
- Removed the restriction of only English as default language when synchronizing WP menu
- Fixed issue in the WPML notice when adding posts from frontend
- Fixed issue when duplicating posts that have comments to be duplicated
- Fixed issue while dismissing admin notices from plugin that contains special chars in the title
- Fixed issue with setting static blog page when page is permanently deleted
- Fixed compatibility issue when using Google PageSpeed Tools in Apache or Nginx
- Prevent double ampersand encoding in language switcher URL
- Fixed issue where language information wasn’t saved when posts were created via AJAX call
- The language switcher in Twenty Sixteen’s footer was cut off
- The language switcher in Twenty Fifteen’s footer was partially hidden by the sidebar
- Changed the message style in Sync Field Functionality
- Added a warning about missing menu items when only one language is configured in the site
- Improved usage of server’s resources when scanning themes or plugins for strings
- Improved page loading and memory consumption in Theme’s and Plugin’s localization page
- Fixed an issue when trying to register a string with 0 as name
- Fixed an issue in double registering of Multilingual Widget content
- Fixed an issue that was happening when you try to scan strings before completing the wizard. Now it is not allowed
- Fixed database error when running WPML reset
- Fixed an issue when importing large .po files
But what about other features that we talked about?
We know that the wishlist for features is always bigger than what we manage to include in each release. There are a number of features and improvements that we wanted to include in WPML 3.6, but could not, due to schedule. We hope that you know that we’re doing our very best to make everyone happy. If we promised something that it’s not here, feel free to remind us. The list of features for WPML 3.6.1 has about 30 items. The list of features for WPML 3.7 includes more than 100 things.
Download and update
As always, we highly recommend backing up your sites before updating WordPress, the theme and plugins. Everyone does their job and test for WordPress compatibility. However, you never know what surprises are going to pop up due to cross compatibility and configuration changes. No matter what we update in our sites, we always perform full backup before.
You will receive WPML updates automatically for all your registered sites (you do register all your sites, right?). You can also download WPML manually from your account. Be sure to always update all of WPML’s components together.
We’d love to get your feedback, ideas, suggestions and questions.