<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>danigm.net - gtranslator</title><link>https://danigm.net/</link><description></description><lastBuildDate>Mon, 30 May 2022 00:00:00 +0200</lastBuildDate><item><title>GNOME Outreachy 2022</title><link>https://danigm.net/outreachy-2022.html</link><description>&lt;h2&gt;GNOME Translation Editor, Road to Gtk4&lt;/h2&gt;
&lt;p&gt;It's time to move to Gtk4. That could be an easy task for new project or for
small projects without a lot of custom widgets, but &lt;a href="https://gitlab.gnome.org/GNOME/gtranslator"&gt;gtranslator&lt;/a&gt; is old and
the migration will require some time.&lt;/p&gt;
&lt;p&gt;Some time ago I did the &lt;a href="https://danigm.net/gtranslator-resurrection.html"&gt;Gtk2 to Gtk3&lt;/a&gt; migration. It was fun and during the
journey we redesigned a bit the interface, but the internals didn't change a
lot. Now we can do the same, migrate to Gtk4 and also update the User
Interface.&lt;/p&gt;
&lt;p&gt;Thankfully, I'm not alone this time, the GNOME community is there to help. A
couple of months ago, &lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/-/commits/master?author=msandova"&gt;Maximiliano&lt;/a&gt; started a series of commits to prepare
the project to the Gtk4 migration, and today starts the Outreachy program and
we've a great intern to work in this. &lt;a href="https://www.outreachy.org/alums/2022-05/"&gt;Afshan Ahmed Khan&lt;/a&gt; will be working
during this summer in the GNOME Translation Editor migration to Gtk4.&lt;/p&gt;
&lt;h2&gt;Outreachy&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://www.outreachy.org/"&gt;Outreachy&lt;/a&gt; program provides internship to work in Free and Open Source
Software. This year I've proposed the "Migrate GNOME Translation Editor to Gtk4"
project and we had a lot of applicants. We had some great contributions during
the application phase, and at the end Afshan was selected.&lt;/p&gt;
&lt;p&gt;We've now an initial &lt;a href="https://dev.to/redoca2k/beginning-outreachy-journey-with-gnome-o8j"&gt;intern blog post&lt;/a&gt; and he is working now in the first
step, trying to build the project with Gtk4. It's not a simple task, because
gtranslator uses a lot of inheritance and there's a lot of widgets in the
project.&lt;/p&gt;
&lt;h2&gt;User Interface redesign?&lt;/h2&gt;
&lt;p&gt;Once we've the project working with Gtk4 and libadwaita we can start to think
about user interface improvements, and all the collaboration here is welcome,
so if some designer or translator want to help, don't hesitate to take a look
to the &lt;a href="https://flathub.org/apps/details/org.gnome.Gtranslator"&gt;current interface&lt;/a&gt; and propose some ideas in the &lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/-/issues/159"&gt;corresponding task&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Mon, 30 May 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:danigm.net,2022-05-30:/outreachy-2022.html</guid><category>blog</category><category>gnome</category><category>outreachy</category><category>gtranslator</category><category>gtk4</category></item><item><title>GNOME Outreachy mentorship</title><link>https://danigm.net/gnome-outreachy-2018.html</link><description>&lt;p&gt;The &lt;a href="https://www.outreachy.org/"&gt;Outreachy&lt;/a&gt; program is a three month internship to work in FOSS. There
are two periods for the outreachy, the first one from December to March and
the other one from May to August. It's similar to the Google Summer Of Code,
but in this case the interns doesn't need to be students.&lt;/p&gt;
&lt;p&gt;I proposed some ideas for interts to work on GNOME, with me as a mentor. I
wrote three proposals this time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extend &lt;a href="https://www.outreachy.org/communities/cfp/gnome/project/extend-fractal-media-viewer-with-video-support-and/"&gt;Fractal&lt;/a&gt; media viewer with video support and explore video
   conference&lt;/li&gt;
&lt;li&gt;Create &lt;a href="https://www.outreachy.org/communities/cfp/gnome/project/create-gtranslator-initial-integration-with-damned/"&gt;Gtranslator&lt;/a&gt; initial integration with Damned Lies&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.outreachy.org/communities/cfp/gnome/project/books-improve-the-epub-support-in-gnome-books/"&gt;Books&lt;/a&gt; : Improve the epub support in gnome-books&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There was people interested in all of three projects, but for the Books app
we don't have any real contribution so there was no real applicants.&lt;/p&gt;
&lt;p&gt;I've two good proposals for Fractal and for Gtranslator, so I approve both and
the Outreachy people approve these two interts. So we get two new devs working
in GNOME for three months as interns.&lt;/p&gt;
&lt;p&gt;This is something great, paid developers working in my proposals is a good
thing, but this implies that I need to do the mentor work for these two interns
during the three months period, so it's more work for me :/&lt;/p&gt;
&lt;p&gt;But I think this is a really important work to do to bring more people to the
free software, so I've less time for hacking, but I think it's good, because
the fresh blood can do the hacking and if, after the Outreachy, one of the
interns  continues collaborating with GNOME, that will be more important for
the GNOME project that some new features in one app.&lt;/p&gt;
&lt;h3&gt;GNOME Translation Editor&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://teja.cetinski.eu/blog"&gt;Teja&lt;/a&gt; is the intern working in gtranslator. She is working in the
&lt;a href="https://l10n.gnome.org/"&gt;Damned Lies&lt;/a&gt; integration.&lt;/p&gt;
&lt;p&gt;Damned Lies is a web application for GNOME translators. This app provides
updated &lt;code&gt;.po&lt;/code&gt; file for each GNOME module and language and translators can
download and update that file using the web interface. That web is able to
do the commit to the original repository with the upload version from
translators.&lt;/p&gt;
&lt;p&gt;The idea is to provide a simple integration with this platform in the
GNOME Translation Editor app, using the web json API to be able to open &lt;code&gt;.po&lt;/code&gt;
files from the web directly without the need to download the file and then
open it.&lt;/p&gt;
&lt;p&gt;The current API of DL is really simple so we can't implement a real integration
without adding more functionality to this API. So this project requires some
work in the DL app too.&lt;/p&gt;
&lt;p&gt;In the future we can improve the integration adding the posibility to upload
the new &lt;code&gt;.po&lt;/code&gt; after saving to DL so translators doesn't need to go to the
web interface and can do all the translation flow using only the Translation
Editor.&lt;/p&gt;
&lt;h3&gt;Fractal&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://mairandom.space/"&gt;Maira&lt;/a&gt; is the intern working in Fractal. They are working in the initial
video preview widget.&lt;/p&gt;
&lt;p&gt;Fractal is a instant messaging app that works over matrix.org. Currently we
support different types of messages, like text, images, audio and files. But
for video we're using the same widget as we're using for files, so you can
download or open, but we've not a preview or inline player.&lt;/p&gt;
&lt;p&gt;The main idea of this project is to provide a simple video player using
gstreamer to play the video inside the Fractal app.&lt;/p&gt;
&lt;p&gt;This is not an easy task, because we're using Rust in Fractal and we need to
deal with bindings and language stuff, but I think it's doable.&lt;/p&gt;
&lt;p&gt;During the internship, Maira is also working fixing some bugs in the audio
player, becuase it uses gstreamer too, so during the code review, Maira
detected some problems and they are fixing it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Sun, 13 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2019-01-13:/gnome-outreachy-2018.html</guid><category>blog</category><category>gnome</category><category>fractal</category><category>gtranslator</category><category>outreachy</category></item><item><title>GNOME Translation Editor 3.30.0</title><link>https://danigm.net/gnome-translation-editor.html</link><description>&lt;p&gt;I'm pleased to announce the new &lt;a href="https://download.gnome.org/sources/gtranslator/3.30/"&gt;&lt;strong&gt;GNOME Translation Editor&lt;/strong&gt;&lt;/a&gt; Release.
This is the new release of the well known &lt;strong&gt;Gtranslator&lt;/strong&gt;. I talked about
the &lt;a href="http://danigm.net/gtranslator-resurrection.html"&gt;&lt;strong&gt;Gtranslator Ressurection&lt;/strong&gt;&lt;/a&gt; some time ago and this is the result:&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator3.30.png"&gt;
        &lt;img src="/pictures/gtranslator3.30.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This new release isn't yet in flathub, but &lt;a href="https://github.com/flathub/org.gnome.Gtranslator/pull/4"&gt;I'm working on it&lt;/a&gt; so we'll
have a flatpak version really soon. Meantime you can test using the gnome
nightly flatpak repo.&lt;/p&gt;
&lt;h2&gt;New release 3.30.0&lt;/h2&gt;
&lt;p&gt;This release doesn't add new functionality. The main change is in the code,
and in the interface.&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator1.png"&gt;
        &lt;img src="/pictures/gtranslator1.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;We've removed the toolbar and move the main useful buttons to the headerbar.
We've also removed the statusbar and replaced it with a new widget that shows
the document translation progress.&lt;/p&gt;
&lt;p&gt;The plugin system and the dockable window system has been removed to simplify
the code and make the project more maintenable. The only plugin that is
maintained for now is the translation memory, that's now integrated. I'm
planning to migrate other useful plugins, but that's for the future.&lt;/p&gt;
&lt;p&gt;Other minor changes that we've made are in the message table, we've removed
some columns and now we only show two, the original message and the translated
one and we use colors and text styles to show fuzzy status and untranslated.&lt;/p&gt;
&lt;p&gt;The main work is a full code modernization, now we use meson to build, we've
flatpak integration and this simplify the development because gtranslator know
works by default in Gnome Builder without the need to install development
dependencies.&lt;/p&gt;
&lt;p&gt;There's others minor changes like the new look when you open the app without
any file:&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator-open.png"&gt;
        &lt;img src="/pictures/gtranslator-open.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Or the new language selector that autofill all the profile fields using the
language:&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator-lang.png"&gt;
        &lt;img src="/pictures/gtranslator-lang.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;And for sure we've tried to fix most important bugs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/issues/1"&gt;Search and replace deletes all fuzzy states&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/issues/5"&gt;Check files before the save&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/issues/19"&gt;msgctxt should make strings different&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/issues/8"&gt;Some headers get line breaks and don't follow the right format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.gnome.org/GNOME/gtranslator/issues?scope=all&amp;amp;utf8=%E2%9C%93&amp;amp;state=closed"&gt;And more&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New name and new Icon&lt;/h2&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator-icon.png"&gt;
        &lt;img src="/pictures/gtranslator-icon.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Following the modern GNOME app names, we've renamed the app from Gtranslator
to &lt;strong&gt;GNOME Translation Editor&lt;/strong&gt;. Internally we'll continue with the gtranslator
name, so the app is gtranslator, but for the final user the name will be
&lt;strong&gt;Translation Editor&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And following the &lt;a href="https://gitlab.gnome.org/GNOME/Initiatives/issues/2"&gt;App Icon Redesign Initiative&lt;/a&gt; we've a new icon that
follows the new &lt;a href="https://developer.gnome.org/hig/stable/icon-design.html.en"&gt;HIG&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Thanks&lt;/h2&gt;
&lt;p&gt;I'm not doing this alone. I became the gtranslator maintainer because Daniel
Mustieles push to have a modern tool for GNOME translators, done with gnome
technology and fully functional.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;GNOME Translation Editor&lt;/strong&gt; is a project done by the GNOME community, there
are other people helping with code, documentation, testing, design ideas and
much more and any help is always welcome. If you're insterested, don't hesitate
and come to the &lt;a href="https://gitlab.gnome.org/GNOME/gtranslator"&gt;gnome gitlab&lt;/a&gt; and collaborate with this great project.&lt;/p&gt;
&lt;p&gt;And maybe it's a bit late, but I've publish a project to the &lt;a href="https://www.outreachy.org/apply/project-selection/"&gt;outreachy.org&lt;/a&gt;,
so maybe someone can work on this as an intern for three months. I'll try to
get more people involved here using following outreachy and maybe GSoC, so if
you're a student, now is the right time to start contributing to be able to be
selected for the next year internship programs.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Sat, 03 Nov 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2018-11-03:/gnome-translation-editor.html</guid><category>blog</category><category>gnome</category><category>gtranslator</category></item><item><title>Gtranslator Resurrection</title><link>https://danigm.net/gtranslator-resurrection.html</link><description>&lt;p&gt;The last week I received a telegram message about &lt;a href="https://wiki.gnome.org/Apps/Gtranslator"&gt;Gtranslator&lt;/a&gt;, that was
unmaintained for a long time. GNOME translators uses different tools to
translate .po files, Gtranslator is a tool for translator that is integrated
with the GNOME desktop, but with the time, Gtranslator is getting old and there
are several known bugs that never get fixed.&lt;/p&gt;
&lt;p&gt;So I decided to go ahead and become the maintainer of Gtranslator with the main
idea of update the interface and fix mayor bugs.&lt;/p&gt;
&lt;h2&gt;Why we should care about Gtranslator&lt;/h2&gt;
&lt;p&gt;PO files are plain text files that can be edited with any text editor, but
there're a lot of tools for translator to simplify the edition of .po files,
these way the program will avoid formatting problems and can also provide some
tools to help in the translation.&lt;/p&gt;
&lt;p&gt;There's a lot of tools to edit .po files, so, why we need another application?
why translators can't pick another useful tool if Gtranslator is unmaintained?&lt;/p&gt;
&lt;p&gt;The main reason is the same as we've a text editor or the gnome-builder or other
developer tools, because all users want to use applications integrated in the
desktop, so it always will be better for a GNOME user a native GNOME app to edit
.po files than a Qt one or a webpage.&lt;/p&gt;
&lt;p&gt;The other reason is that we need to simplify the translators life to have better
and more translations and that can only be done if we're developping the tool
that translator will use, because in the future we can integrate Gtranslator
with the gnome gitlab, or with &lt;a href="https://l10n.gnome.org/"&gt;Damned Lies&lt;/a&gt;, to download or upload
translation files.&lt;/p&gt;
&lt;h2&gt;What's the plan&lt;/h2&gt;
&lt;p&gt;Gtranslator has a GNOME 2.0 interface, with toolbar, menus, statusbar and
dockable widgets:&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator1.png"&gt;
        &lt;img src="/pictures/gtranslator1.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;But in the git repo, the main branch was &lt;em&gt;broken&lt;/em&gt;. Someone starts a big
refactor, in 2015, to try to update the interface to look more like a modern
GNOME 3 application but that refactor never ended so the master branch compiles,
but doesn't do anything. There was a lot of widgets that was half ported to a
modern code.&lt;/p&gt;
&lt;p&gt;There's also some &lt;a href="https://wiki.gnome.org/Design/Apps/Translator"&gt;designs&lt;/a&gt; to modernize the interface, but the work wasn't
finished.&lt;/p&gt;
&lt;p&gt;My plan is to continue that work, modernize the UI, remove all &lt;em&gt;deprecated&lt;/em&gt; code
and warnings and then continue the development from there.&lt;/p&gt;
&lt;p&gt;I don't want to spend a lot of time reworking the whole app to have a new one in
two months, I want to have a functional app as soon as possible, and continue
with a continuous development, improving the UI and the functionality needed by
the translator team.&lt;/p&gt;
&lt;p&gt;So the roadmap that I've in mind is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fix the current master state&lt;/li&gt;
&lt;li&gt;Fix the known bugs&lt;/li&gt;
&lt;li&gt;Redesign the interface&lt;/li&gt;
&lt;li&gt;Enhance linking with Damned Lies&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;What I've done in one week&lt;/h2&gt;
&lt;p&gt;I started updating the build system, from autotools to meson build, and then
I've added a flatpak manifest file, so now gnome-builder is able to build
Gtranslator using meson and flatpak and it's easier to develop this way.&lt;/p&gt;
&lt;p&gt;This build tools modernization is great because with the new gitlab we've now
continuous integration, and that means that the gitlab compiles and generates a
flatpak bundle for each commit, making it easier for testers to test new
functionality or Merge Requests, you only need to download the .flatpak and
install locally, no need to build at all.&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator-gitlab.png"&gt;
        &lt;img src="/pictures/gtranslator-gitlab.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Then I started to fix the master branch. There was a &lt;em&gt;project&lt;/em&gt; selector view and
then you go to the translation view. There was only the .ui files and not
working yet, so I reworked that a bit and convert the &lt;em&gt;project&lt;/em&gt; selector to a
&lt;em&gt;file&lt;/em&gt; selector for now and then when you select a file, you've almost the same
old interface, but without the menu, toolbar and statusbar.&lt;/p&gt;
&lt;p style="text-align: center" class="img"&gt;
    &lt;a href="/pictures/gtranslator2.png"&gt;
        &lt;img src="/pictures/gtranslator2.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I've been moving the toolbar icons to the headerbar so we can have the main
functionality working. We've now a functional application.&lt;/p&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;Gtranslator has a plugin system and has eight plugins, but that plugins was
disabled some time ago. So I've started to recover that functionality but
instead of as plugins, I've started to move the plugins to the core app code.&lt;/p&gt;
&lt;p&gt;The only plugin ported currently is the translation memory. I'll take a look to
the other plugins and view if it's desirable to reimplement that or remove that
code.&lt;/p&gt;
&lt;h2&gt;What's next&lt;/h2&gt;
&lt;p&gt;All the statusbar functionality is missing right now, I need to find some place
in the new UI to show that.&lt;/p&gt;
&lt;p&gt;I wan't to start as soon as possible to work in a new widget to show messages,
instead of the current table.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;project&lt;/em&gt; selection part is a bit hard because I need to think about what's
a project in this context. Currently Gtranslator is a .po file editor, but if we
change that to manage &lt;em&gt;projects&lt;/em&gt; like a group of .po files, I need to think
about how to store that information and the easier way for translator to use the
interface.&lt;/p&gt;
&lt;p&gt;So if you've time and want to contribute in this project, go ahead, you can ask
in the #gtranslator IRC channel or talk to me directly. Currently there's no
a lot of issues in the gitlab, but as soon as I get a functional version in
gnome-nightly flatpak repo and some translators starts to use it, we'll have a
lot of things to do.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Mon, 10 Sep 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:danigm.net,2018-09-10:/gtranslator-resurrection.html</guid><category>blog</category><category>gnome</category><category>gtranslator</category></item></channel></rss>