Page MenuHomePhabricator

Remove technical limit that prevents different users to translate the same topic
Closed, ResolvedPublic2 Estimated Story Points

Description

Over the years multiple Content Translation users have been hit by the limitation that prevents them from translating an article when someone else had started the translation earlier:

la.wikipedia.org_wiki_Special_ContentTranslation_from=en&to=la&page=Palak+paneer&targettitle=Palak+paneer(iPad Air).png (1×2 px, 269 KB)

This ticket proposes, as a first step, to remove the technical blockers that create such limitation and provide a more lightweight coordination approach:
Show a translation on the same topic and language as blocked only when it was started less than a day ago. Otherwise people can work on the same article freely and simultaneous publishing will be take care by Mediawiki.

Proposed message update:

This is an ongoing translation by <username>.
When there is an active translation you can only start a new one after a day.
Please try again in 24 hours or coordinate with the user who started the current translation.

This will provide some room for those actively working on a translation while preventing inactive translators from blocking other users interested in contributing.

Additional considerations:

  • Avoid the loading error. The error shown when the translation is blocked ("Critical error: Content translation failed to load due to internal error") should be avoided. There is no need to even load the contents if the translation is blocked.
  • Message placement. Show the message as a dialog centered in the screen. Some regression seems to have resulted in the message being placed in the top corner.

The current ticket does not propose additional coordination mechanisms. User will be able to start the same translation after 24h and publish it, and the one doing it later would overwrite the previous contents. In such case, the existing warning indicating that a page already exist will be shown as usual (we may want to double-check that this is still the case).


Separate follow-up tickets can consider notifying the original author that someone started a translation and/or published it for a topic they had in-progress, if needed.

The parent ticket (T86151) captures a more elaborate solution for improving the coordination among users (to be considered for follow-up interventions), and compiles some of the user reports in the comments.

Related Objects

Event Timeline

Pginer-WMF renamed this task from Remove technical limit that blocks different users to translate the same topic to Remove technical limit that prevents different users to translate the same topic.Dec 23 2021, 1:40 PM
Pginer-WMF triaged this task as Medium priority.
Pginer-WMF created this task.

The current schema supports multiple people doing same article translation. The unique translation is combination of languages+source title+translator. So another translator means another valid entry in database. This is how we allow translation of article even if some other translator started earlier and deleted it. The T298244: Remove technical limit that prevents different users to translate the same topic is mostly coordination, communication, effort conflict issues than table design. Due to this issues, we had custom logic in applicaiton logic to prevent parallel translation.

As part of the conversation on another ticket it seems that removing this limitation does not require a database change.

I wonder if it would be easy to support a more lightweight mode of coordination with the following change: We show a translation on the same topic and language as blocked only when it was started less than a day ago. Otherwise people can work on the same article freely and simultaneous publishing will be take care by Mediawiki (the later replacing the former, I guess).

In this way we would still provide some space for working on a translation without people to step on each others toes while avoiding more long-term blocking situations.

For this we may need to adjust the logic to account for the 24h time period and change the message to inform that the translation will be unblocked after such period. Separate follow-up tickets can consider notifying the original author that someone started a translation and?or published it for a topic they had in-progress, if needed.

Change 768665 had a related patch set uploaded (by Santhosh; author: Santhosh):

[mediawiki/extensions/ContentTranslation@master] Allow translation by another user for existing translations after 24h

https://gerrit.wikimedia.org/r/768665

santhosh set the point value for this task to 2.Mar 8 2022, 8:30 AM
santhosh set Final Story Points to 2.

Change 768665 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Allow translation by another user for existing translations after 24h

https://gerrit.wikimedia.org/r/768665

When trying in production, I'm able to start a translation for the same article with two different users one after the other (without waiting for 24h). I don't see the error dialog shown in T298244#7756541

Any idea about why this may be happening?

I don't see code updated yet. I see the old screen. Code was merged on Tuesday last week, after the train. So it was deployed with this week train. Let us try after it is rolled out to es wiki.

image.png (684×1 px, 112 KB)

Thanks for the clarification, Santhohs. I took for granted that the code was updated since there were changes in the behaviour but that may have been some glitch. We can check this later in the week.

Etonkovidova subscribed.

Checked in on several wikis ( wmf.3) - the UI looks exactly the same as in @santhosh's comment
The screenshot was made on cswiki for the translation de->čeština with English user interface lang.

Screen Shot 2022-03-22 at 6.25.11 PM.png (1×2 px, 376 KB)

Will check after 24 hours if the translation of articles with started translation would be unblocked. f

Note:

Screen Shot 2022-03-22 at 6.15.44 PM.png (822×2 px, 245 KB)
Screen Shot 2022-03-22 at 6.15.44 PM.png (822×2 px, 245 KB)

Moving to Pending input for QA - any additional actions on translating the message are needed?

Moving to Pending input for QA - any additional actions on translating the message are needed?

The old message ("This is an ongoing translation by X.") is less informative but is still correct. As more translators update the message, it will become better. I don't think we need to explore how to accelerate this process. Most of the users that used to find a blocked article they would just not found it any more (since those are not blocking for a long time).

Moving to Pending input for QA - any additional actions on translating the message are needed?

The old message ("This is an ongoing translation by X.") is less informative but is still correct. As more translators update the message, it will become better. I don't think we need to explore how to accelerate this process. Most of the users that used to find a blocked article they would just not found it any more (since those are not blocking for a long time).

Thank you! Yes, it was just an extra precaution to ask if there are some concerns about having the old message.

As a final step, I verified that a translation started more than 24 hours ago, will not be blocking and the warning message won't be displayed. Marking the task as Resolved.