Localize.drupal.org is a great site providing a web interface for community translation. Due to technical and scalability reasons the site uses custom code to provide translation of 7000 modules and about 20000 releases of these modules. Each release is parsed and ends up in the database of the site which results in almost 270000 strings to translate. That's a lot of stuff! Now add up that we have almost 100 languages and each string can have any number of suggestions for any language. Finally, each of these suggestions have their own "commit" history with data on who submitted them, when, via which method (multiple sources supported with a remote API in the mix), when was it approved, declined and approved again by whom and when, and so on. So you can consider this a 3 dimensional version control system in a database (version control per strings * languages * suggestions).
Now since this is all stored in this form, the activity happening is pretty "invisible". Moderators and fellow translators see little of this activity. Some teams use a wiki page to list things they work on, informing moderators that new stuff is available to review. Without that, reviewers can only look actively for stuff to review, which is tedious. Its a definite characteristic of communities online and offline that seeing the momentum, the activity and work being done energizes others and moves them to contribute more. So exposing all this information in natural and automated ways is crucial.
Activity streams
The first part of this GSoc proposal is about choosing the right existing components to base activity stream functionality on for localize.drupal.org and building the streams for the site and for language specific groups as well as tying in data from the localization server with newly built module code, extending the Localization server module suite with a new module.
Examples of desired activity messages:
- Views 7.x-3.4 became available for translation
- Joe joined the German team
- Edith is now promoted to be administrator of the Italian team
- Josh left the Greek team
- Aaron submitted 6 new translations (in the past hour) for Pathauto, Views and Calendar in Danish
- Jill imported 354 suggestions for Views, Display Suite, Drupal commerce, Drupal and 14 other projects in Korean
- Dana approved 23 translations and declined 9 suggestions (in the past hour) for Date and Panels in Estonian
- Announcement: new moderation functionality available (link)
The activity should be visible on the site level (such as for announcements and new releases made available), and on the language group level (such as for the language and team specific activity messages). Note that all these activity messages should be possible to generate based on user activity, without the user explicitly typing in any part of this message. Generating a good list of top related modules for translation submissions and imports would be most tricky. It would be great to provide the possibility to inject custom written messages to the activity stream too, but we are not to build a Facebook clone here!
Activity graphing
The second part of exposing the activity is graphing. Showing the growth of teams over time, the submission and moderation activity via graphical means can expose really telling details about a team and would help moderators notice if suggestions outnumber active translations, for translators to see that others are active on the team and energize them to keep contributing.
This part of the proposal involves evaluating the available solutions, picking a good one for localize.drupal.org and like in the previous part, implementing integration code to provide the data in the right form. The source data to be graphed is definitely available, but it will need some processing to be graphed.
These two key improvements would set Drupal's localization service up for even more growth and activity, helping people realize that they work in an active team, moderators to recognize contributions and better organize their work and translation users to have more data points to asses the quality of translation teams when related to certain projects.
Comments
OMG! This is a good
OMG! This is a good improvement for l.d.o . I hope that this feature will be developed in the future ;)
A good initiative for GSoC
Ramon
http://ymbra.com
Hey dude, Haven't had time to
Hey dude,
Haven't had time to read through and digest completely (localization hasn't been my focus), but saw your blog post and just wanted to point out the potential confusion of using the term "activity stream", as there's a well-used module called activitystream :)
Cheers
yes
Yes, one of the problems to overcome in this assignment would be to choose between the numerous well-used activity stream modules. It might be the module named activity stream, or activity, or heartbeat, or ....
Can these efforts build upon Activity Streams standards efforts?
Activity Streams standards initiative http://activitystrea.ms/ including base schema (different formats, such as Atom http://activitystrea.ms/), GitHub repository for reference https://github.com/activitystreams, and some implementors on the wiki for reference http://wiki.activitystrea.ms/w/page/24500522/Implementors.
The activity streams module did not support these standards the last I looked.
Jim Caruso
MediaFirst
Jim@MediaFirst.net
@jimcaruso
(M) +1.404.788.0188
http://MediaFirst.net
it might be the module named
Or if it's D7 - message module :)
yes, although...
Yes, although unfortunately we will probably not be ready to port the site to D7 by the end of the summer.
Hi Gábor, all, I'd be pretty excited
Hi Gábor, all,
I'd be pretty excited if I could work on this during GSoC. Adding value to the massive amount of information being stored on localize.drupal.org is like gold mining. The information is there, waiting for us to extract it, which is pretty amazing.
Like you said Gábor, exposing all this information is crucial, and if we get it done right, there could be even more benefits.
There is a trend to expand from social network sites to social applications hosted on the social network site itself and social networking services.
By marking up social activities and social objects and delivering them with the activity stream microformat, we could turn Drupal to a full fledged, sophisticated and configurable activity stream publisher interconnectable with other social networking sites or services.
I can't wait to see Drupal, this awesome platform/core/brain, being (re)used to implement a concept as compelling as ActivityStreams.
By the way, the student proposal template suggests that we create a discussion here at drupal groups. Should I start a new thread (one that starts with [GSoC Proposal]) or should we keep all relevant discussion here?
I already have submitted my proposal (needs work) in Melagne.
Regards,
Georgios
I finally created a new
I finally created a new discussion/proposal here http://groups.drupal.org/node/140109.
we have a winner
The applicant and winner for this is Ádám Lippai, see http://localize.drupal.org/node/3329 - I'm really happy this is going to be done finally :)
The newest graph
The newest graph implementation on Drupal.org is d3_sparkline used in project page sidebars. There’s a bit of a learning curve, especially for adding new chart elements and configuring Views the first time. Otherwise, I’m happy with it.
GSOC 2018
Hello Gábor Hojtsy,
Firstly I want to appreciate your work, I just have gone through your commits.
I am interested to work on "Expose Drupal translation activity".
Earlier I have worked on PHP and MySQL.
I would love to not only work on this but also end it .
please guide me how to apply.
email:akmal.quazi@gmail.com
Thank You
GSoC 2018
Hi Gábor Hojtsy,
I am interested to work on "Expose Drupal translation activity". I wanna not only work on for GSoC even after that I would like to contribute to it. I am very active on Drupal form almost last 4 months . I have decent knowledge of PHP and MYSQL .Since it have same Limitation and problems in 2011 , It make me more excited to work on it . I hope i can get your guidance so we can fix these limitation and problems.