Skip to content

GSoC 2016 Ideas

Allan Nordhøy edited this page Apr 18, 2018 · 7 revisions

Welcome! These are a few of the ideas that team has put together. They're ideas that we'd love to see in Pootle and the other tools.

We're not limited to these ideas, but if you have your own idea then please bounce it past the other developers.

We've tried to not overwhelm you with detail, you'll need to flesh that out yourself with chats with us and your own online research.

Mobile UI for Pootle

Pootle is used by many people in the developing world. For many of these users they have poor connectivity or their devices are limited to tablets and mobile phones. Your focus in this area will be to migrate the current UI to be more mobile friendly. Initially we don't want to concern you with performance but just on presenting a usable UI to our users on mobile devices.

Skills needed: Python, JS, UX design

Migrate Virtaal to gtk3

Virtaal runs on GTK2 using PyGTK. These are now long deprecated. You'll need to migrate to GTK3, which also involves migrating to GObject. The biggest challenge will be that Virtaal makes use of some objects only available in PyGTK. So you will need to migrate the tool off that core module.

Skills needed: Python, GTK, Desktop tool development, C++

comments

  • phlax: who will mentor this

Pootle on websockets

Pootle is used by online communities, while they are spread across the globe most teams work in similar timezones. We also run events like translation sprints where many people are working at once. This means that there is likely to be many people working on the same tasks on Pootle all at once.

Using websockets allows us to update stats on each translators webbrowser. Communicate to each when translations have been completed so that they aren't translating a string that someone else is currently working on.

Skills needed: JS, Python, HTML5

Supporting other version control systems

We've implemented Pootle FS within Pootle that bring tight version control integration. The current implementation works with Git. But there are more version control systems that we'd like to support. These include things like Mercurial, Subversion and even CVS. Your work will involve expanding Pootle FS to cope with both DVCS and traditional VCS.

Skills needed: Python, VCS experience

Translate Toolkit refactor

Translate Toolkit currently tries to serve multiple purposes and thus it keeps some unrelated pieces of code within its code-base. Refactoring it in a way that it is easier to maintain had become a major need. Some tasks that might need to be performed as part of this refactoring are:

  • Split Translate Toolkit in separate projects: quality checks, translation formats, language data, tools...
  • Make Translate Toolkit Python 3 compliant.
  • Refactor Android translation format support in order to allow to use for conversion.
  • Refactor translation format classes to remove code duplication and reduce differences looking forward a single common class to support all formats through converter classes that convert to and from the single common class.
  • Consolidate all converters in a single one which accepts specifying any supported format.
  • Get Windows installer working again.

Skills needed: Python, basic knowledge of translation formats and localization

Pootle client-side library cleanup

When Pootle was initially built, JS was barely used on the web. Along the way, we started pulling in some <script> tags, helped ourselves with jQuery, then built some interactions with jQuery-based plugins, afterwards added underscore and Backbone, and ultimately realized ES modules and React empower greater developer capabilities. In such a messy context, the objective of this project would be getting rid of the Backbone dependency and jQuery as much as possible.

Skills needed: Familiarity with JavaScript and the jQuery, Backbone and React libraries.

Single page browsing for Pootle

Pootle currently has a consistent browsing UI across different contexts: language, project, and translation project views, as well as cross-language views. Browsing through these pages require a full page reload, although an internal API endpoint feeds the data. Since the data is there, this project would focus on refactoring the existing browsing code and converting it into a quick single-page experience.

Skills needed: Familiarity with JavaScript and React, or willingness to learn them.

Clone this wiki locally