User:Renamed user ablguwe/GSoC 2014 proposal

Inline translation edit

Public URL
(editing)
Bugzilla report
(will be added soon)
Announcement
Link

Name and contact information edit

Name
Roman Zaynetdinov
Email
romanznet@gmail.com
IRC or IM networks/handle(s)
zaynetro
Web Page / Blog / Microblog / Portfolio
github.com/zaynetro
Location
Turku, Finland
Typical working hours
During the day time in UTC+02:00 time zone

Synopsis edit

Project Idea edit

What is the purpose? edit

Help people in reading complex texts by providing inline translation for unknown words. For me as a non-native English speaker student sometimes is hard to read complicated texts or articles, that’s why I need to search for translation or description every time. Why not to simplify this and change the flow from translate and understand to translate, learn and understand?

How inline translation will appear? edit

While user is reading an article, he could find some unknown words or words with confusing meaning for him. At this point he clicks on the selected word and the inline translation appears.

What should be included in inline translation? edit

Thus it is not just a translator, it should include not only one translation, but a couple or more. Also more data can be included such as synonyms, which can be discussed during project completion.

From which source gather the data? edit

Wiktionary is the best candidate, it is an open source and it has a wide database. It also suits for growing your project by adding different languages. Also other candidates can be found to make translation more precise.

Evaluation edit

There are two ways in my mind right now.

  1. First is to make a web-site built on Node.js with open API for users. Parsoid could be used for parsing data from Wiktionary API which is suitable for Node. A small JavaScript widget is also required for front-end representation.
  2. Second is to make a standalone library which can be used alone on other resources as an add-on or in browser extensions. Unfortunately, last option is more confusing for me at this point.

Example edit

 
Screenshot of an example translation

After clicking on the word simple window appears with information about this word. Instead of "Info about this word" more data should be shown at least a couple of meanings like on this page.

Growth opportunities edit

As an example I am leaving in Finland right now and I don’t know Finnish as I should to understand locals, therefore this project can be expanded by adding more languages support for helping people like me reading, learning and understanding texts in foreign languages.

Suggested solution edit

“You could basically write a node service that pulls in the Parsoid HTML for a given wiktionary term and extracts the info you need from the DOM and returns it in a JSON response to a client-side library. Alternatively (or as a first step), you could download the Parsoid HTML of the wiktionary article on the client and extract the info there. This could even be implemented as a gadget. We recently set liberal CORS headers to make this easy.” by Gabriel Wicke.

Possible mentors

Deliverables edit

(editing)

  • Week 1:
    • understanding the structure and required modules if they'll be needed
    • writing a descriptive list of tasks
  • Weeks 3-4: writing the server side and getting information about Parsoid
  • Weeks 3-4: understanding Parsoid and implementing support
  • Weeks 4: finding and resolving bugs, and writing documentation

Participation edit

In the beginning of the project I will create a tasks list, which I will be editing during the completion of the project, it will help me to understand the current progress and also writing a report to the mentor (if needed). I am planning to publish the source to my github account for the whole project period. After doing this project I am not planning to stop developing it, on the contrary I want to continue working on it.

About you edit

Education completed or in progress
Bachelor degree in Information Technology in progress
How did you hear about this program?
From a friend, who participated in the previous Google Summer of Code

Past experience edit

Completely redesigned my school schedule and successfully presented it in the school exhibition.

  1. Link to schedule.
  2. Link to source code.

I decided to learn JavaScript and Node.js from scratch and this project is what I came up with. Also I learned how to work with non-relational databases and how to organize your work combining studying and doing the project at the same time.

Any other info edit

Currently I don't have a big projects portfolio, cause I just started, but I am reading a lot and following JavaScript updates and new techniques. The most important slogan for me is "Making the web a better place".

See also edit