Porting Yelp to WebKit2Gtk+, three months as an igalian

It have been a while since I write a post here and so many things has happened on my life. I have ended my second GSoC, I had an internship with Igalia and I’m participating on the organization of a music festival!

But I’m here to talk about my Igalia internship. The work I should did during this internship was to port a GNOME app from WebKitGtk+ to WebKit2Gtk+ and write a tutorial about how to do the port. The chosen app was Yelp. During this year GUADEC people talk about the need of porting this app and both my mentors and me thought that it would be a really interesting app to port.

Continúe lendo Porting Yelp to WebKit2Gtk+, three months as an igalian

API, GUADEC and big files

During the last days I have been working on completing the program features that were planned for GSOC. I have create a program API which allows a user to create useful plugins like a checkers which checks if a message is translated correctly and a hint provider which provides translations to the user as a Translation Memory.

Continúe lendo API, GUADEC and big files

Details and more details

Since my last report I have been working on improving gettext-po bindings, fixing some bugs and starting to implement the plugin engine.

The gettext-po bindings are finished and the whole gettext-po library has its equivalent on the Vala bindings. The plugins engine is implemented but I have to create an API to be able to do a useful plugin. I have been cleaning the code so creating that API should be easier.

In addition, I have implement a notification bar which indicates the user that there are no messages that have the search criteria for example and the message list scroll works properly when we select a item. I have been trying some things for implement “automatic scrolling” but I finally do it manually. The problem is that when a row is selected, this row grabs the focus so if we are typing inside the search bar, we can not continue typing.

During the next weeks I will create a API that makes possible to create useful plugins and I will fix the bugs and details that the application has.

You can try the program downloading it from Github.

The GUADEC will start at the 26th of July and I will be there 🙂 so if you have some idea about the application, a good place to tell me would be there.

Keep working on GNOMECAT

During last weeks I have been working on improving the program UI and the po file management. You can see the result in the following video:

I have improve PoFiles bindings including functions to file header and string origins management and fixing some errors. I have use the information from header files to improve opened files panel and to create a custom recent files widget.

Saving files almost works. We can save a file but there are some troubles with origins which I should fix. In addition I have modify a little the implementation of the Po File class in order to make it more efficient.

I’m starting to improve the profile panel and I have started separating the entries in two stackable panels for basic and advanced configuration. I added autocomplete for plural form and team email when we select a language but it only works in a couple of languages :S. If you can contribute to the code an easy and very useful way would be to fill this data for some languages. You can even do this from the GitHub interface.

You can try and contribute to the code using the GitHub repository. If you are interested on contributing to the application the most relevant part I should work on is figure out how to improve the program performance with big files (gnumeric could be a good example).

On the other hand I’m planning to attend this year GUADEC (I have already bought the flights). There it will be a I18N BoF which I’m afraid I wont be able to assist because I leave Strasbourg on 29th of July. However it would be really interesting to receive some feedback from the translators during that days.

I have to thanks GNOME Foundation for sponsoring the trip one year again 🙂

GNOMECAT. Progress report

I have been accepted again to participate in Google Summer of Code program!! During this summer I plan to finish the application I started during last summer.

The first month I have been really bussy with some university exams and projects so I haven’t be able to post any report. But I have been working on changing some parts of the UI interface.

I have create a design wiki page using the relevant art from the previous GTranslator redesign and I have added some new designs. I have started to implement this designs you can see the result in the following video.

As you can see I have remove the preferences dialog and now it’s part of the main window. In addition I have add a .desktop file, I have implemented i18n support, a wellcome mode where the program forces the user to create a profile before starting to use the program, etc. You can see all my work in the repository commits.

I expect you like the result. It needs to be polished and some bug fixing (encoding combobox for example) but I believe that you can see the idea. My next step is to redesign the main editing window to make something similar to this.

You can test the code downloading it from the GitHub repository. I use Fedora 20 (with GNOME 3.10) and I don’t need to use JHBuild for compiling and running the program.

Please, if you have any trouble building, installing or running the program do not hesitate to contact me leaving a comment or sending an email.

GNOMECAT. Let’s Strike again!

As you can see in my GNOMECAT commits I have been a couple or more months really inactive [emoji confused face] .

I have been too busy with my university exams and projects. I have become the secretary of GPUL (2012 GUADEC organizers), which is awesome but it takes an amazing amount of time. And, in addition, I have got employed by R (a galician ISP), which is also great but it takes another important amount of time too.

So that’s why I have not worked in GNOMECAT application during that time and I’m afraid that the situation isn’t gonna change in the next few months.

On the other hand, I have acquire a compromise with GNOME community when I started my GSoC internship. I should create an application to help GNOME translators and the application isn’t done. So I really want to finish GNOMECAT and I think that this summer would be a good time to do it. Providing that I find a mentor, I’m going to apply again for a Google Summer of Code.

The purpose of this GSoC is, obviously, finish the application. So in this post I’m going to sum up what’s is done and what I’m going to do this summer.

Continúe lendo GNOMECAT. Let’s Strike again!

Welcome GnomeCAT

It has been a while since the last post I wrote about my work writing a new CAT tool. It’s true that I have remain about a month working on other things (related to my university classes) but some important things have happened since then.

Firstly two of the most important items of the new tool which are hints and checkers has been implemented. These two aspects have been implemented as interfaces that should been implemented as plugins. However, I have write DemoHintProvider and DemoChecker to show how these items are going to work.

I have also refactored the code related to select items and the code related to navigate through the document and searching strings. Now the Navigator class is the common parent of the class that allows to navigate through the document and the search classes. In addition now these two classes use a new API to select items in the program. This API is provided by the Application class and allow to select a file, a message and a string inside a message.

Then, I have change the name of the application to GnomeCAT as part of the request of the Gnome foundation that the application name should be “Gnome branded”.

Charla GUADEC-es
Photo by Valentín Barros

To end, last 12th of October, I have attend to the X GUADEC-es and there apart from meeting some old and new friends I have give a talk with Daniel Mustiles about the application. The previous photo is from that moment. You can find the slides I’ve use here (they are in Spanish :S) and the video that I’ve use to show the tool here.

Changing the tool UI

As I said in the last post I’m going to continuing working on the tool providing I have free time. This last weeks I have being working on some changes of the tool user interface.

On the one hand I have remove the GDL library support. I have some talks through IRC with Ignacio Casal (former GTranslator maintainer) and we both agree that with a good UI design the use of dockable elements is unneeded and it requires to have dependencies with a quite buggy library.

On the other hand I have mixed the list of message with the message editor itself. You can watch how it looks in the following video. It still needs some adjustments but I think that the idea is clear.

Do you like the result?

PS: I’m going to attend next GUADEC-es in Madrid! If you have some ideas or opinions about the application just send an email and we can drink some beers (or your favorite beverage) while we discuss about the tool.

GSoC Final Report

Before I start I would like to thank Gnome for this incredible experience, spending the entire summer working on FLOSS has being awesome :D. I would like to thank Gnome for sponsoring my travel to GUADEC and giving me the opportunity of meeting so nice people. Last but not least, I’d like to thank Google for creating this great program.

I have spend this summer writing a new translation tool that should substitute GTranslator. When I started to develop the idea one of the things that people said was that I would not be able to finish the application when the summer ends. To be honest now I have to say that they were right. I had to face some totally new technologies that were not or really bad documented in most cases. So I have to say that the application is not finished and it’s not ready to use. I will continue working on it the followings months because I consider it as a personal project I want to see finished.

On the last report I tell you that I was going to be working on preferences panel, I have create a preferences dialog with two tabs and I have implement profiles. In a near future this dialog is going to have a couple of more tabs, one for extensions and another for general application preferences.

In this video I show you the current aspect of the application and how some features that I have implemented are working.

Po files, projects, navigation and other stuff I have been doing

Last weeks I have being trying push up my project in order to make it useful. It means to accept real files and not ad-hoc DemoFiles. I have being trying to implemented bindings for the gettext-po library and I get something that works but that eats memory as a hungry monster :-(. I have being trying to figure out what was wrong but I have fail so I decided to continue with other features.

During this time I have implement drag and drop tabs and I have implemented navigators that allow the user move around the translated/untranslated/fuzzy messages. In addition I have created implemented dialogs for opening files and projects (directories) and I have modify the implementation of the advanced search dialog to use response codes.

Other thing I have being trying to do is to maintain the same coding style for every file. I have try to leave a blank space between function names and function parameter list, a white space after each comma among other things.

I’m trying to complete every detail before starting to implement plugin engine so I’m working hard implementing the remaining details. My plannings for next weeks are implementing preferences window with gsettings and view menu. I probably will rewrite some part of the search and navigation mechanism to make it simpler.

PS: I have been helping Sindhu to write some sections of a really nice guide for beginners. Check it out!