Brand New Lingua System Feels Pretty Much The Same

Hi everyone! Today we're launching an update to the Lingua Translation system used on GV sites that I've been working on for many months now. To make the transition easy on you the goal was to keep it working almost exactly the same from the perspective of authors and translators, so hopefully it won't cause any extra strain in your lives.

JSON API makes things secure and reliable.

The most important and boring change we're making is to implement the new JSON API as the way the different sites communicate with each other about translations. Previously they used a secret but insecure system to fetch content and it was hard to work with (i.e. improve). The JSON API will be a big help in the long run for keeping things private and reliable.

Crossposting is no longer insane.

screenshot of lingua metabox showing crosspost credits

Example of admin credits on a story crossposted from Advox to GV English.

While we were rewriting the system to use the new API we worked hard to clean up the mess that was the old “crossposting” system. Not many of you really used “crossposting” which for GV refers to having a post on two sites in the same language (i.e. GV and Advox), but it wasn't well implemented, and there were a lot of confusing aspects to it. NO MORE!

The new system has a proper understanding of crossposts and will correctly show the source author by default and never erroneously show the crossposting user as “translator”.

Accurate credits for all translators in admin and frontend.


Credits for a post translated from Arabic to French, then into English.

In the process of cleaning up crossposting credits we rewrote the entire system that shows authors/translators, and it's much more accurate now. Rather than only showing the original author and the final translator, the system will now show anyone involved in the process. This means sometimes you'll see many people rather than just two!

For example, a post written in French, translated to English, then translated to Arabic will have three faces: French author, English translator and Arabic translator. All getting credit for their work.

Note: This feature will still only display one user per post created, and won't solve the problem where multiple users collaborate on a single post (either as authors or translators). That feature will get to you in a future update!

Lingua knows when there is a “Local copy” of a user from another site on the current site.

Translation credits in post editor showing the "local matching user" links for Jeremy and Mohamed, who have accounts on both the translation (current) site and the source site.

Translation credits in post editor showing the “local matching user” links for Jeremy and Mohamed, who have accounts on both the translation (current) site and the source site.

While the user accounts on different sites will still be separate (for now) the new system is able to determine when there is a user on the current (translation) site that matches the original source author of a post (based primarily on email). Local matching users will be shown in the post editor along with the link to the user on the source site.

By default it won't do very much, but these “local copies” work together with a new setting on each post: “Link to local copies of users if available”

In the example of the image at right, ticking the box would mean that the “Author” credit for the post would link to the “Local copy: Mohamed ElGohary” account on the current site, rather than his account on the Arabic site which would happen by default. The same would apply to the translation credit for “Jeremy Clarke” because it has a local copy too. The credit for Claire Ulrich would still link to her profile on the French site because she doesn't have a user account on this site.

This new feature is a bit complex but can be very helpful on translations where the author or translator would rather link to the local user, and especially for cases where the same person is both writing and translating a post and wants both links to lead to the same place.

If you find it confusing don't worry! No one needs to use this feature if they don't want to, and it was mostly implemented for special cases like crossposting to Advox.

“Import User” button instantly clones a user into the current site

Before and after importing a user in the post editor

Before and after importing a user in the post editor

To go along with the new “Local copy” feature we also added a button that can instantly copy a user profile from one site to another. The button will only show if you can edit other users, so only “editors” and “administrators” will see them. If you aren't an admin you can ask you editor for help in importing or creating new user accounts.

The imported user will have all the properties and bio that they had on the source site, such as their avatar, user name, and email. They will NOT have a password set up, so to log in you'll need to tell them to use the “password reset” feature with their email or username from the other site.

Imported users will automatically be marked as “Local copy” in the credits, and the main reason to import a user is to then use the “Link to local copies of users if available” option.

Importing users can also be useful for editorial workflow, since once you import someone you can add them in Edit Flow and start discussing the post with them. This could be handy to summon the author of a post to discuss how to translate it.

Caution: Because the “Import user” button also imports their whole profile, it's important to review the new user account after you import someone. This is especially important if you imported them to a site with a different language, in which case you need to remove or translate any bio text they have entered so it matches the new site.

That's it! :P

I know it sounds like a lot of changes, but if everything goes as expected none of these changes should get in your way while working. The procedure for translating should keep working like it always did but with more accuracy in how credits are displayed.

That said any bug reports will be really important in the coming days! There will surely be rare cases where the new system fails and I need your help to identify them.

If you have any issues with translation please let me know about them by email (jer at and include The time it happened, the url where it happened, what went wrong as best you can describe it and if possible a screenshot of what you saw when the problem happened.

Thanks for reading and happy translating!

Start the conversation

Authors, please log in »


  • Please treat others with respect. Comments containing hate speech, obscenity, and personal attacks will not be approved.