Opened 7 years ago

Last modified 5 years ago

#2320 accepted enhancement

Global stats for GlotPress to identify possible future GTE

Reported by: xavivars's profile xavivars Owned by: tellyworth's profile tellyworth
Milestone: Priority: normal
Component: Translate Site & Plugins Keywords: 2nd-opinion has-patch


On some locales (like Catalan), most of the translations are done by 3-4 people (with 2 of them being GTE), even if according to there are 10 GTE, and almost a 100 contributors.

This is a problem not only because it simply doesn't scale (with the amount of strings that themes & plugins have, 3-4 people are not enough), but also because is extremely hard for GTEs to identify "active" contributors to help and guide them so they become one day GTE, and for contributors to find active GTE so their strings get approved and don't stay forever as pending.

Ideally, there should be a way of "filtering" the teams page ( with some kind of "active" filter, with active being a rule such as "has translated/reviewed more than X strings (could be 0) in the last 3-4 months".

That could help to really asses the health of a team, as you could quickly identify how many people is actively contributing to the project.

Also, if that filter included some kind of aggregated cross-project stats (similar to the ones you get "per-project" in, pointing to the projects they contributed, it would be easier to "measure" the amount of contributions people is doing: I, as a GTE, am more in validating strings translated by someone who contributes regularly than strings from someone who only translated 1 string two months ago. Computing such a huge amount of stats won't be light in terms of resources, but in order to be useful, these stats don't need to be "live": a weekly update would be more than enough to get a sense of the current state.

This would also give extra visibility to the health of the team, on top of the "activeness" filter: knowing there are 100 people active when 99 of them only have translated one string isn't a sign of healthy at all.

Attachments (2)

2320.diff (3.2 KB) - added by tellyworth 5 years ago.
Divide the list of translators into "current" and "past"
Screen Shot 2019-02-14 at 4.50.02 pm.png (477.2 KB) - added by tellyworth 5 years ago.
Example screenshot showing the output of 2320.diff for locale=af

Download all attachments as: .zip

Change History (15)

This ticket was mentioned in Slack in #polyglots by xavivars. View the logs.

7 years ago

#3 @tellyworth
5 years ago

  • Keywords 2nd-opinion added

I'm not sure the query in get_translation_contributors() can be easily or efficiently adapted to do this.

#4 @tellyworth
5 years ago

  • Owner set to tellyworth
  • Status changed from new to accepted

5 years ago

Divide the list of translators into "current" and "past"

5 years ago

Example screenshot showing the output of 2320.diff for locale=af

#5 @tellyworth
5 years ago

  • Keywords has-patch added

attachment:2320.diff takes a simple approach to this, by dividing the list into current translators and past translators. I used 365 days as the threshold. See the screenshot for an example of how it looks.

Is this an improvement? Good enough to consider it a fix?

This ticket was mentioned in Slack in #meta by tellyworth. View the logs.

5 years ago

#7 @garrett-eclipse
5 years ago

This is a great start @tellyworth

Reviewing the original ask it was one thing to define the current/past contributors which you've already done here which is great but @xavivars point about single-string contributors can be frustrating as some users will just submit one every couple months just to stay in the 'Active' list. Could the active list have a limit of say 10 strings per month/year or something?

Or we could take a page from the Tag cloud and add weighting to the names so those who contribute more have larger names and those who only contribute one string are much smaller in comparison.

Just throwing in my two cents. This is a great start but wanted to indicate it doesn't seem to fully resolve the original concern.


#8 @SergeyBiryukov
5 years ago

2320.diff definitely looks like an improvement to me.

#1664 and #2184 would also be helpful in recognizing potential PTEs or GTEs.

#9 @xavivars
5 years ago

This would be a big step forward, and would clearly raise the point of not having "contributors" listed that haven't submitted any string for years. I'd love to see the same for PTE and GTE though ¹

On the other hand, as @garrett-eclipse mentions, having the amount of translations each person has done², or increasing the "active" criteria to something more meaningful, like 10 strings instead of one would help. So I would like to have at least this to consider this ticket fixed. But I'm happy to create another more specific if needed.

Finally, as an extra bonus, #1664 (knowing what are the projects each person has contributed to) and #2184 (knowing how much each person has contributed to) would make the task of identifying new potential GTEs way easier.

¹ As an example, when I initially wrote the ticket, we had 10 GTE for Catalan. As an experiment, I removed 8 of them two months ago: I wanted to confirm they were not active at all. And, sadly, I have confirmed that: there hasn't been any interaction with any of them
² I know the current query only does a select distinct user..., and changing that to a select sum(*), user by user would have performance implications, but it would really be aweseome.

#10 @tellyworth
5 years ago

In 8781:

Translation Teams: show current and past contributors separately.

See #2320.

#11 @tellyworth
5 years ago

I've deployed 2320.diff as a starting point. Adding an extra filter like WHERE accepted > 10 for inclusion in the "current" section seems like it's probably feasible performance-wise, but I'll need to do some further investigation to figure out if that actually achieves what I think it does.

#12 @maximejobin
5 years ago

I really like that feature. More than that, it could also add gamification to the process and make translations and approval like a game.

This ticket was mentioned in Slack in #polyglots by nao. View the logs.

5 years ago

Note: See TracTickets for help on using tickets.