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.
Categoría: GNOMECAT (GSoC)
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 🙂
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:
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. 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.
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”.
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.
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.