User:Fantasticfears/GSoC 2014 2

One stop translation search

 * Public URL
 * https://www.mediawiki.org/wiki/User:Fantasticfears/GSoC_2014_2


 * Bugzilla report
 * 35489 34098 51533 37297 39415 36298 52993 53656 52703 52702 60570


 * Announcement
 * (link to the announcement of your proposal at the wikitech-l mailing list.

Name and contact information

 * Name
 * Erick Guan(User page)


 * Email
 * fantasticfears@undefinedgmail.com


 * IRC or IM networks/handle(s)
 * IRC: fantasticfears
 * Skype: fantasticfears@undefinedgmail.com
 * Gtalk: fantasticfears@undefinedgmail.com


 * Web Page / Blog / Microblog
 * Blog on DigitalOcean
 * Twitter
 * Github profile


 * Location
 * Shanghai, China (UTC+8)


 * Typical working hours
 * 9am to 11am, 5pm to 10pm
 * 9am to 10pm(summer vacation)

Synopsis
Extension:Translate is a powerful tool to translate a page. It's widely used by Meta and MediaWiki.org for publishing news, notice and policy. And many other sites which used MediaWiki also take advantage of Extension:Translate. This project aims to fix these several bugs and a redesigned translation search feature. These projects are not the big deal. Combining all small pieces would provide a new experience for the translator and admin. The goal of this project would be: redesign Special:SearchTranslations page, bugfix and alternative backend based on ElasticSearch.

Special:SearchTranslations is used for the Translate extension to allow searching for translations. It's not yet finished and bugs. In addition, it lacks the ability to search in source language(bug: 53656), but show and edit messages in your translation language. The interface has some bugs with facet selection and direct editing of search results is not working properly. It is not possible to search by message key unless you know the special syntax, nor to reach a message in one click. Interface designs are available for this page.

A possible extension for the project scope: the backend is currently Solr, but an alternative backend based on ElasticSearch via Elastica is wanted to ensure good integration with WMF's ElasticSearch cluster.

This made the Extension:Translate more powerful and easy to use.

Maybe include this bug as warmup.
 * (bug 35489) Be able to set the page source language: this prevents translation to the wiki content language from other languages. For instance, Wikimedia chapters would often like to translate their reports from their language to English on Meta-Wiki.
 * (bug 34098) Currently the page title is always up for translation. For some pages the title is not relevant and unused because the content is consumed in other ways. If the translation admin could choose not to translate the page title, translators time would be saved.
 * (bug 51533) The interface on the pages itself has been nominated for redesign. Main issues are the language selection and calls to action. The first one takes too much space and is hard to use if there are many languages, the latter is hard to notice but in a place where it can break the page flow.
 * (bug 37297, 39415) Updating issues when moving or deleting translation units (for example to remove spam).
 * (bug 36298) The page Special:AggregateGroups is clunky, lacks features and does not scale well to thousands of pages. It needs some re-architecturing to stay usable.
 * Possible mentors: Niklas Laxström, Robin Pepermans, Nik Everett

Deliverables

 * Phase 1, Investigation, Apr 20 - May 1
 * Keeping in touch with mentors.
 * Ask gerrit admin to create the new feature branch and set up GitHub.
 * Reading code and documentation.
 * Phase 2, Planning and future investigation, May 1 - May 10
 * Read the code and talk with mentors about the exactly roadmap.
 * Decide code structure and discuss design details.
 * Warm-up, fix some little bug all around to investigate further and practice all the procedure.
 * ElasticSearch part, I have no experience with this new project at all and need to talk with mentors for details and help.
 * Phase 3, Mockup, May 11 - May 14
 * Build the search page front-end with dummy back-end code according to the workflow spec.
 * Phase 4, Search interface revised
 * Work with facet selection, May 15 - May 20
 * Work with search in source language(bug: 53656), May 21 - May 27
 * First deployment
 * Phase 5, Replenish, May 28 - June 27
 * Reach a message in one click
 * Test and documentation
 * Mid-term evaluation
 * Regular deployment
 * Phase 6, Search and ux things, June 28 - July 30th
 * Fighting for college final exam
 * Port to ElasticSearch instead of Solr
 * Adjust ux details
 * More test and documents
 * Regular deployment and collect feedback
 * Phase 6, Final evaluation, -
 * Documentation work
 * Submit to Google

Participation

 * Regular report
 * I'd like post my progress under my proposal page every week and send a email to the wikitech-l, including related project mailing list if needed.


 * Source code
 * I'd like to make a feature branch on the Gerrit, including keeping all of these on the GitHub. And I expected a test instance for this, if not, I can use my own server in college.


 * Communication
 * Most MediaWiki hacker are living in IRC, it's the best choice to get help. But it would be nice to communicate by email, private and mailing list, because I can describe more thoroughly and think more deeper which would reduce the meaning less talk. Last but not least, the bugzilla is used for tracking bugs, any further problem and progress would be referenced there. I will follow the community development process and keep in touch with mentor for the project.

About you

 * Education completed or in progress
 * 2nd year in the college, and 2 years left
 * 2nd year in the college, and 2 years left


 * How did you hear about this program?
 * Mailing list for this year program and RSS feed for GSoC one year ago


 * Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?
 * I'd like to travel to Taiwan for 2 weeks on the summer vacation. If I can't keep track on the schedule, I would call it off.

I'm a wikipedian since 2008. When I create article, wikify a article and do maintenance work for local community, I found a lot of unpleasant experience or lack of some functionality. And I want to do something for me and all my friends who love wiki movement. Last summer, I'v been to Wikimania 2013, listens a lot speech there and meet with my friends in flesh. I enjoy this. Then I decide to go deeper in the tech field. I've little contribution to the MediaWiki. But It seems I don't know where I am then. I need mentor's help and finish a project on schedule to build my experience.

Past experience

 * Please describe your experience with any other FOSS projects as a user and as a contributor
 * Discourse, Fcitx
 * Discourse, Fcitx


 * Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links)

After GSoC, I wants to work on these:
 * Some little practice on Ruby on Rails
 * Knowledge about JavaScript/HTML/CSS, C/C++/Java/Go, Ruby/Python.
 * What project(s) are you interested in (these can be in the same or different organizations)?
 * Parsoid, especially language converter for enabling Visual Editor for Chinese wiki project.
 * Grid system, responsive design.
 * pajx loading, pushState.
 * More guidance on Visual Editor for better instruction.
 * Flow Extension
 * Easier and central control for commonly used template(e.g. Infobox, Navbox), creating more consistent ux and reduce copying, updating work for local template version.
 * Global module
 * More modern HTML5 feature.

Any other info

 * Interface designs
 * UX design details
 * alternative backend based on ElasticSearch