Migrate GNOME Translation Editor to Gtk4
Migrate GNOME Translation Editor to Gtk4
Mentors
- Daniel García Moreno:
- gitlab: danigm
- email: danigm@gnome.org
- Gnome Matrix username: @danigm:gnome.org
Project length
Long
Description
GNOME Translation Editor (Gtranslator) is a GNOME application to edit translation files (PO files). The project is using Gtk3 toolkit library and now, there's a new version of Gtk, so we should migrate to Gtk4 at some point.
The migration will involve to update all custom widgets and all the widgets used in the interface. The difference between Gtk3 and Gtk4 is not too big, so the migration could be done in two steps:
- Use Gtk4 and libadwaita and just adapt current widgets to new API changes
- Rethink the interface and try to update to the GNOME HIG
- Make sure that the new version works with light and dark themes
Internship Tasks
These are the list of tasks that the intern will do during the internship:
- Build the project with gnome-builder
- Change gtk library version to Gtk4 and try to build, collect build errors
- Fix build errors with Gtk4
- Run the project and detect runtime errors with Gtk4
- Fix the runtime errors
- Change libhandy with libadwaita
- Improve custom styles to make it work with the dark theme
- Read the GNOME HIG and try to adapt the current App interface
Not all these tasks are required to be done during the internship, the main idea of the project is to try to go as far as possible.
Intern Benefits
Working on this project is a good way to start to contribute to GNOME, learning about Gtk and all the widgets. This project requires a lot of code and documentation reading so it's a really good exercise to learn more about Gtk and GNOME ecosystem working on a current project, just migrating code.
Requirements
- C Language knowledge: The project is written in C, so some C knowledge is required. It's not needed to be an expert, just a basic knowledge.
- Gtk: Nice to have, this project involves a lot of Gtk code.
Communication
- Matrix - Follow this link to join this project's public chat.
- Use gnome.riot.im or app.element.io to join to the #gtranslator:gnome.org
- Via mail to danigm@gnome.org