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

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 🙂

Implementing the Editing Panel

During the last week I have been re-implementing the editing panel following the guidelines provided by the mockup which Daniel Korostil made some time ago:

mockup

You can watch the final result on the following video:

The biggest part of the edit panel is occupied with the editor panel where we can translate the strings and get some information related to them like the tips and the origins. Message tips are more visible now.

I have also implement message origins and I added the possibility of view these origins but as you can see I’m using a Gtk Popover widget which is part of GTK+ 3.12. I’m currently using Fedora 20 and my version of GTK+ is 3.10 so I need to use JHBuild to view this feature and I guess that most of translator who are trying the application are in a similar situation. That’s why I have decided to move this commit to a separate git branch.

During this week I have also add keyboard shortcuts to some actions. You can see what shortcuts I have created here. The most are completely random so I need to figure out which is the best shortcuts mapping that I can use. Any idea is really welcomed.

I’m trying to write down all the issues I need to fix or implement at the GitHub issues system. There you can find which are the next steps in the application implementation.

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!

GSoC application status report

This last weeks I have been polishing some details of the application but I have not added any major feature.

I attend a really nice talk about building Gtk applications during GUADEC and I have been including some aspects that I learn there. I have create a class application and I have substitute Window by ApplicationWindow. In addition I didn’t know the SearchBar widget so I replace my ad-hoc widget by the “standard” one.

I have a really nice talk with Ignacio Casal (thank you man!) through IRC and he gives me really nice advises that I have been implementing. I have added autotools support to the project, I have implemented the HeaderBar and Notebook inside the window template and not as part of different templates and I have remove some comments that I wrote when I started the project and that make the code dirtier.

In addition I have removed the StatusBar and I have included a progressbar on the HeaderBar title that shows the name and status of the current file. That last idea comes from a conversation with yoseforb through IRC (Great idea!).

The next video show the current aspect of the the tool. Due to some unknown reason the button icons aren’t being shown since the last JHBuild update I have made :(.

You can follow the project status and you can try (and even review) the code using the GitHub repository.

Moreover I’m still waiting for your opinion about the program name. The only person that has give his opinion was Daniel so “GNOME Translation Tool” is winning at the moment.

Searching…

This last week I have been working on implementing search module on the new program. To do this I create iterators for messages inside files and for message marks inside messages. A message mark contains a reference to a substring on a message and it stores the information that it’s needed for highlight certain part of the message.

I have modify my code deleting my string filters that added Pango Markup and I change that for TextMarks that works better with a GtkTextView.

In the next video you can watch how a simple search looks in the new application.

If you have any suggestion about the video or the project in general please leave a comment, write me and email or contact me during GUADEC.

On the other hand this days I will be on GUADEC!! I’m really grateful to Gnome Foundation that sponsor my travel and accommodation for this really interesting conference and allows me to be here. If you want to see me and talk to me about this project or you want to see what I have make working you can find me on some of the talks where I’m volunteering as session chair.

PS: People from Gnome has asked me to change the name of the application because it should be Gnome branded. I need your opinion, what name do you like more, Gnome Translator or Gnome CAT?