-
Notifications
You must be signed in to change notification settings - Fork 288
GSoC 2016 Ideas
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.
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
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++
- phlax: who will mentor this
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
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 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
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.
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.