Smartling Connector


The Smartling Connector facilitates the translation of WordPress content within Smartling.
Easily installed with minimal developer support, the combination of WordPress and Smartling provides users with a powerful technology solution to manage the translation and localization process with full visibility and control across the entire organization.
Translations are requested from within WordPress, and translated content is automatically returned to your WordPress environment.

Integration Features

  • Automatic change detection for content updates
  • Robust custom workflow engine configurable per language
  • Automatic download of completed translations to WordPress
  • Translation Memory integration
  • No tie-ins to translation agencies or vendors
  • Reporting for translation velocity, efficiency


  • Submit posts for translation using the Smartling Post Widget directly from the Edit page. View translation status for languages that have already been requested.
  • The Bulk Submit page allows submission of Post, Page, Category, Tag, Navigation Menu and Theme Widget text for all configured locales from a single interface.
  • Track translation status within WordPress from the Submissions Board. View overall progress of submitted translation requests as well as resend updated content.


Minimale vereisten

  • WordPress 5.5 or higher
  • Multisite mode enabled
  • PHP Version 7.4 or higher
  • PHP extensions:
    • mbstring
    • curl
    • libxml
    • xml
    • xmlreader
    • xmlwriter
    • yaml
    • gd
    • json
  • For “WP Engine” hosting maximum execution time should be set to 300 seconds.

The full step by step guide can be found here.

  1. Upload the unzipped Smartling Connector plugin to the /wp-content/plugins/ directory.
  2. Go to the Plugins screen and Network Activate the Smartling Connector plugin.
  3. Navigate to the Smartling – Settings page (/wp-admin/network/admin.php?page=smartling_configuration_profile_list) and click Add Profile.
  4. Set the Project ID, User Identifier and Token Secret credentials found in the Smartling Dashboard for the project created for WordPress.
  5. Select the Default Locale and the target locales for the translated sites you are creating.


Additional information on the Smartling Connector for WordPress can be found here.


Er zijn geen beoordelingen voor deze plugin.

Bijdragers & ontwikkelaars

“Smartling Connector” is open source software. De volgende personen hebben bijgedragen aan deze plugin.


Vertaal “Smartling Connector” naar jouw taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.



  • Added Beaver Builder plugin support


  • Fix scoping to avoid conflict with Symfony\Polyfill\Intl\Idn


  • Fixed post content not being sent for translation when Elementor is active, but not used for a specific post


  • Fixed errors when saving metadata by improving the escaping process


  • Fixed issue where content without Elementor data was unable to be sent for translation


  • Added sending related attachments for translation along with Elementor plugin content


  • Added Elementor plugin support


  • Improved AIOSEO pack plugin translation for fields that contain tags


  • Fixed upload queue length appearing stuck


  • Added actions to alter translated content or do other actions just before translation gets saved
  • Fixed block level locking for nested Gutenberg blocks


  • Added support for sending related items from within ACF Gutenberg blocks


  • Fixed AIOSEO pack plugin translation using wrong fieldset when translating taxonomies


  • Added display of error messages when widget uploads fail
  • Fixed check/uncheck all links in widgets affecting all Smartling checkboxes on a page
  • Fixed source title detection for taxonomy submissions


  • Added support for AIOSEO pack
  • Fixed shortcodes with no attributes preventing content uploads
  • Fixed widget uploads broken when an audit log record could not be created


  • Fixed broken content in ACF fields after translation


  • Fixed cloning affecting fully locked submissions


  • Fixed terms meta values stored as array instead of scalar values


  • Added purge upload queue action (sets all NEW submissions to CANCELLED)
  • Fixed smartlingLockId attribute being sent for translation


  • Fixed taxonomy page widget not downloading content


  • Fixed parent page not being sent for translation when sending content one or two levels deep


  • Added support for nested attributes via JSON path in fine-tuning


  • Fixed related content not being sent for translation from the post based content UI


  • Fixed issue where ACF blocks couldn’t be decoded and were missing in translated submissions


  • Fixed regression where media duplication occured and/or related item ids were not changed when cloning items. This release majorly changes the handling of related items while cloning, from this release onwards only the items directly sent for cloning (including cloning one or two levels deep) should be cloned, without any related submissions.


  • Cloned submissions are excluded from status check background job. This change fixes cloned submissions changing status from completed to failed after time passes


  • Fixed upload widget not uploading content


  • Fixed content not sent for translation when no related content is present


  • Fixed relations to second level content not changed in target blog when cloning two levels deep


  • Fixed media library attachments duplication when cloning


  • Added test run. Test run submits posts and pages to a new blog for “pseudo” translation. This should help quickly check compatibility between your content and the plugin.


  • Changed media attachment rules to Gutenberg block rules. It is now possible to copy a block attribute value instead of translating it, or exclude it entirely. This is set up in the Fine-Tuning section.


  • Added retries for communication with external locking service


  • Fixed submissions not being deleted on media attachments deletion. It is now easier to resubmit missing media attachments when translating related content.
  • Added display of status messages when running cron jobs manually


  • Fixed reference to image in core/image Gutenberg block’s inner HTML class on translation to prevent WordPress notice at translated post edit page
  • Changed serialization to prevent php built-in serialize function vulnerabilities


  • Added escaping for job names in Translation Progress screen
  • Submissions get deleted when content they reference is deleted. For example, this will allow easy resubmission of related content that was deleted on the target site


  • Added new action in Translation Progress screen to check status and fail submissions for which no corresponding Smartling locale exists
  • Fixed nested Gutenberg blocks losing their attributes after translation
  • Disabled loading of external entities in libxml


  • Scoped dependencies to prevent conflicts with other installed versions of GuzzleHttp and Symfony libraries
  • Fixed content not being added to upload from post widget


  • Fixed relations not changed in target blog when cloning


  • Switched from database to external service locking for cron jobs. It avoids the issue when hosting doesn’t allow SQL SELECT ... FOR UPDATE


  • Added two levels deep cloning/translation to post widget
  • Fixed menu items not being submitted for translation when using bulk submit to upload menus


  • Fixed downloads failing if translated content has html anchors


  • Fixed block locking UI not visible when a blog is both a source and a target for translation
  • Fixed overly strict language mappings validation in profile configuration


  • Fixed WordPress fatal error on plugin activation


  • Added support for MultilingualPress3. On creating submissions Smartling connector will also add content relations for MLP3.


  • Visual changes in the locking sidebar


  • Fixed misconfiguration


  • Gutenberg block level locking ids now created on every visual editor operation instead of on saving content
  • Added replacing of relative links in A tags to other post based content


  • Fixed Gutenberg block level locking frontend not working with WordPress 5.7 and above


  • Added validation to language mappings in profile configuration to prevent undefined behaviour when a single Smartling locale was mapped to multiple target blogs


  • Added expert setting to disable automatic generation of Gutenberg blocks locking ids (defaults to OFF)
  • Fixed critical wordpress error when cloning from Bulk Submit page


  • Add locking for Gutenberg blocks in the Gutenberg visual editor based on block ids. Block ids will be generated randomly for all Gutenberg blocks on saving content. After new content is sent for translation and downloaded, a new sidebar block “Smartling lock” will become available for blocks with generated ids. Previous location based method for locking is now obsolete, please re-lock the required blocks in the visual editor, as the support for location-based locking will be disabled in a future release.


  • Added job name search to search field in Translation Progress


  • Fixed delivery of Gutenberg blocks where attributes have nested objects. Before appropriate escaping was done only for attributes on the top level only


  • Improve job link in translations progress


  • Added escaping to HTML output to prevent xss injections


  • Fixed an issue when job links were not displayed on Translation Progress after submitting content for translation for the first time


  • Fixed an issue where image attachments in ACF blocks do not get uploaded


  • Fixed an issue with downloads when the post has links to images that are not attachments


  • Added ability to lock inner Gutenberg blocks


  • Fixed menu translation when menu item is a link to related content


  • Added ability to use all registered post types for references in Gutenberg blocks
  • Fixed menu translation when menu items consisted of post types or taxonomies


  • Fixed critical wordpress error on new profile creation


  • Added more publish options for delivering translated posts. Now you can choose what post status to set after delivering: don’t change existing status; set to draft; set to published


  • Minimum required PHP version is now 7.4!
  • Added a link to the most recent job for submissions on Translation Progress screen


  • Fixed extra slashes being added when using fine tuning forms


  • Minimum required PHP version is now 7.2! The next plugin release will require PHP 7.4.
  • Added ability to lock translation for some of the Gutenberg blocks in post content. The lock will preserve translated blocks, unless there are changes to the parents’ post structure of blocks, such as blocks reordering, or adding new blocks.


  • Added media attachments rules user interface in Fine Tune section. It allows to specify paths to media attachments inside Gutenberg blocks. The plugin will link the attachment ids for known paths between source and target sites


  • Fixed issue where translated image-text blocks appear to have “invalid content” warnings in editor


  • Fixed issue where quotes would break encoded JSON values in custom blocks


  • Fixed issue where deleting a blog would fail with a critical wordpress error


  • Fixed issue where menu items were not sent for translation when sending menus for translation


  • Fixed issue when notices were not displayed on successful translation download
  • Fixed compatibility with newer Multilingual Press plugin versions


  • Auto synchronize properties on translated page with source feature doesn’t alter locked and excluded fields


  • Added new UI (Smartling -> Taxonomy links) where you can link existing translated taxonomies with the source taxonomies. It helps connector to respect existing translations and use them in translated posts.
  • Fixed issue where attachments were partially uploaded if post content contained multiple ACF blocks of the same type


  • Fixed issue where submitting related content type that was not registered in WordPress caused submission to fail


  • Fixed issue where submitting a widget that has navigation menus for translation caused a WordPress emergency


  • Major change in Auto synchronize properties behavior. Starting from this release the connector will always replace all metadata in the translated post with metadata from the source post. The translations are then applied to freshly copied metadata.
  • If you use ACF flexible fields then you should enable Auto synchronize properties. It will force connector always replicate ACF fields from source to target and keep flexible fields consistent
  • Fixed error messages not displaying when adding content to existing jobs


  • Fixed upload flow when post gets uploaded to Smartling without related content


  • Fixed download flow if ACF attachment field has an empty id inside Gutenberg block


  • Fixed upload issue if translation was requested from “Create job” form in WP 5.5.1+


  • The plugin will now mark submissions as failed when receiving certain errors from the API. Such submissions will be skipped while checking submissions statuses unless resubmitted manually


  • Fixed bulk submit page not submitting when post type slug contained dashes


  • Fixed daily bucket job uploads handling failure due to content being added to an unsuitable translation job


  • Fixed issue where submissions would not download if the upload sent only current content for translation


  • Improved support for ACF in Gutenberg blocks when translations are being downloaded in bulk


  • Added support for attachments inside ACF fields in Gutenberg blocks


  • Fixed issue where clicking the download button would not download translations
  • Skip all related content checkbox now has a default state expert setting
  • Further improved support for Gutenberg blocks (editor should no longer display “invalid content” warning)
  • Fixed issue with some items not being ingested when using ACF plugin


  • Display reason for failed submissions in status circle
  • Improved support for core Gutenberg blocks (fixed issue with “This block contains unexpected or invalid content” message when editing the block in translated content)


Added expert setting to support regular expressions for Exclude fields by field name and Copy fields by field name


  • Fixed issue when Smartling widget erroneously reported that translations were downloaded even if they weren’t
  • Fixed issue with daily bucket jobs being created when active profile is set to manual upload


Improved translation support of ACF Blocks for Gutenberg


Fixed issue where a content linking error causes a wordpress critical error message


  • Fixed time submitted display on translation progress page
  • Fixed ACF integration: images and other non-translated media should copy to translated content


Fixed issue with locale labels in locale selection wizard when Multilingual Press locale is unknown


Fixed issue with creating a new job from the Post Edit screen


  • Changed the default behavior for how we handle related content for the “request translations” flow (see v1.12.0 for more details):
    • When you request the translation from the Post Edit screen it submits only the current page and optionally you can tell it to submit only the immediate related content (tags, categories, images, etc)
    • When you request from the Bulk Submit screen, it will only submit the selected content (any related content should be requested manually)
  • Fixed compatibility with the ACF plugin and extended support for unicode characters (emoji, accented characters) in translation


This release brings major changes to how the connector works with related content. An example, a page may have a tag and a featured image. Before when you requested translation for a page, the connector submitted the page, plus the tag and image (3 file uploads in total). This approach guarantees that the translated page will look similar to the original page and the layout is not broken. The drawback of this approach, you can’t control how much content will be uploaded to Smartling. If your site has cross-references between pages then requesting a single page may trigger hundreds of uploads.
The new connector version adds the new toggle that controls this behavior. Now you can tell the connector to submit only requested content or requested content + immediate related content.

The new toggle can be found in Smartling -> Settings -> Show Expert Settings -> Handle relations, where:

  • Automatically – use the legacy approach, upload as much related content to Smartling as possible.
  • Manually – use the new approach, upload only the requested content or the requested content + the immediate related content.


  • Fixed issue with download button at post edit page.


  • Added required third-party libraries


  • Added extension to manage shortcodes and filters to be handled by smartling-connector.

Old entries moved to changelog.txt