Bulk translate and replace all existing media in content, featured image and meta fields when you enable translations in media with Polylang.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE Fix invalid license Feb 3, 2018
composer.json Fix invalid license Feb 3, 2018
index.php
polylang-translate-existing-media.php Fix invalid license Feb 3, 2018
readme.md

readme.md

Polylang Add-on: Translate existing media

Contributors: Teemu Suoranta

Tags: polylang, media, attachments, translations

License: GPLv2 or later

screen shot 2017-01-23 at 17 02 03

Description

Polylang Translate existing media is an add-on for the multilingual WordPress plugin Polylang. This add-on let's you bulk translate and replace all existing media in content, featured image and meta fields you enable translations in media. This plugin is based on my other Polylang plugin polylang-copy-content.

When to use:

  • When turning existing site to multi-lingual
  • When enabling media translations when you already have media uploaded and added to content

Basic feature list:

  • Translate all media (images and galleries) that are inside content, meta fields and featured image
  • Takes care all post types (that are not 'attachment', 'revision', 'acf-field', 'acf-field-group', 'nav_menu_item', 'polylang_mo')
  • Image translations are linked automatically
  • You can add your own custom fields that have image IDs
  • Uses Polylang's functions, no messing around

This is open source and I cannot give you any guarantees, though it has worked for me in many projects. Please, report issues and contribute!

Installation

How-to use (takes around 5 minutes):

  • Take a backup of your database
  • Download plugin and activate (you will need Polylang active)
  • Enable Media translations in Polylang Settings
  • Set all content without language to default language from "Languages" admin page
  • Click "1. Translate the whole media library" from the admin notice
  • Click through steps (50 posts at a time). Each step will take some time.
  • Click "2. Translate existing images in content" from the admin notice
  • Click through steps (50 posts at a time). Each step will take some time.
  • Deactivate and delete plugin when you have gone through all the steps

Composer:

$ composer aucor/polylang-translate-existing-media

With composer.json:

{
  "require": {
    "aucor/polylang-translate-existing-media": "*"
  },
  "extra": {
    "installer-paths": {
      "htdocs/wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
    }
  }
}

Filters

Add your own custom fields that have images saved as IDs:

function prefix_custom_fields_to_translate($custom_fields) {
	// return keys of your custom fields with image id
  return array(
    'my_custom_image_field',
    'other_custom_image_field'
  );
}
add_filter( 'polylang-translate-existing-media-custom-fields-with-image-id', 'prefix_custom_fields_to_translate' );

Issues and feature whishlist

Issues:

(No known issues, yet)

To-do:

  • Include terms and their custom fields
  • Replacing count might be off, make it more informative

Changelog

0.2

  • New Feature: Translate whole media library
  • New Feature: API for custom_fields that save the image as ID
  • New Feature: Add filter to excluded post types polylang-translate-existing-media-skip-post-types
  • Improvement: Include all post_status
  • Bugfix: Don't copy featured image, just translate the existing one