Two different domains for two different languages

When a user creates a new page/post/product on one site, use the XML-RPC API to create a matching one on the other site. Make sure to save the ID of the original post under a meta key for the “duplicate” post, and then use the response ID from the API to save the “duplicate” ID under a meta key for the original.

You’ll now have a post on each site with a reference to the other by ID, which will be enough to generate the “edit” link:

http://otherdomain.com/wp-admin/post.php?post=[ID]&action=edit

There are a few caveats worth bearing in mind – firstly, if a user deletes a post on one site, you lose the reference. It would be a good idea to hook onto the delete_post action and either:

  1. Prevent the user from doing so (“this post is a translated version and cannot be deleted”)
  2. Use the XML-RPC API again to delete the reference from the other site.

Also, post authors. If you’re using a shared database with custom user tables (which is what I would recommend), you only have to ensure they have the same capabilities on both sites.

However, if the users are also duplicates (separate installs), you’ll need a similar cross-site reference (to know which author ID to use when creating the “other” post).