Ubuntu Open Week - Translations with Rosetta - Wed, Nov 29, 2006

see also Monday Session.

08:00   jordi   okay, let's do it!
08:00   jordi   Welcome to the second Ubuntu Open Week session devoted to
08:00   jordi   Rosetta. I'm Jordi Mallach, and have been working with Carlos and
08:00   jordi   Danilo in Launchpad's Rosetta team for a while, trying to be the
08:00   jordi   bridge between the developers and our users and translators.
08:01   jordi   I'll be taking questions in #-chat, but it's wise to wait until the end of my dump, as some questions might be addressed in this introduction
08:01   jordi   Rosetta is one of the components that make up Launchpad,
08:01   jordi   Canonical's service platform.
08:01   jordi   Launchpad is made up of five major components: a bug tracker, a
08:01   jordi   request tracker, a specification tracker, a "source code"
08:01   jordi   supermirror and Rosetta, a web-based translation portal.
08:02   jordi   Christian Reis will talk tomorrow about Launchpad in general, so
08:02   jordi   let's focus on Rosetta. You can also read the logs of yesterday's
08:02   jordi   Launchpad session also led by kiko.
08:02   jordi   Rosetta's aim is to make translation of Free Software as easy and
08:02   jordi   non-technical as it can get. The Rosetta team has been working on
08:02   jordi   creating an interface which hides the specifics of the Gettext PO
08:02   jordi   file format, which is the standard for translating Free Software,
08:02   jordi   thus lowering the barrier so anyone with a reasonable knowledge
08:02   jordi   of English can help out with the translations of their favourite
08:02   jordi   project into their mother tongue.
08:03   tonyyarusso     Neonightmare: /join #ubuntu-classroom-chat
08:03   jordi   Rosetta is the main translation system of Ubuntu Linux, and is
08:03   jordi   the source of all translations which appear in the Ubuntu
08:03   jordi   releases, and in the frequently updated langpacks. Rosetta is
08:03   jordi   also designed to help program authors getting their applications
08:03   jordi   translated.
08:03   jordi   A close look on the Gettext PO file format
08:03   jordi   Most of the software in your desktops use a standard translation
08:03   jordi   interface called GNU gettext, which is in charge of showing the
08:03   jordi   applications in the language the user has chosen. Application
08:03   jordi   programmers need to take care of marking all the user-visible
08:03   jordi   messages (or strings, as the initiated tend to call them) with a
08:03   jordi   special marker which can be extracted to plain text ".po" files.
08:03   jordi   We translators use these files to translate the applications.
08:03   jordi   Let's look at how a PO file looks. I've put some examples in
08:03   jordi   http://pusa.informat.uv.es/~jordi/ubuntu-school/
08:04   jordi   Have a look at the ubuntu-school.pot file. A POT file is a "PO
08:04   jordi   Template", that is, an empty PO file ready to be translated.
08:04   jordi   Looking at the contents of the file, you can see the format is
08:04   jordi   pretty straight forward: each original string in English (a
08:04   jordi   msgid) has its corresponding translation (msgstr). While simple,
08:04   jordi   the po format is quite fragile. One missing quote, and your
08:04   jordi   entire application build will fail with a syntax error. There are
08:04   jordi   several very popular PO file editors which help the editing
08:04   jordi   process: KBabel, PoEdit, GTranslator, Emacs PO-mode...
08:04   jordi   Rosetta goes one step further in easing the translation of these
08:04   jordi   PO files, using a clean, web-based interface which hides the
08:04   jordi   format, presenting only sets of string/translation pairs that you
08:04   jordi   can fill up. Once the work is done, it's stored in its database
08:04   jordi   where the information can be exported or shared among other
08:04   jordi   projects.
08:05   jordi   Rosetta is, as hinted before, divided in two main branches: one
08:05   jordi   serves to translate the applications of the people who request
08:05   jordi   it. For example, the Gobby collaborative editor is being
08:05   jordi   translated by Rosetta contributors, after its authors requested
08:05   jordi   us to set it up for them in Rosetta. On the other hand, Rosetta
08:05   jordi   is the platform from where Ubuntu gets all its translations.
08:05   jordi   We'll focus on Ubuntu a bit more now.
08:05   jordi   Ubuntu translations revolve around the Ubuntu translation teams,
08:05   jordi   which coordinate and produce the translations which get shipped
08:05   jordi   with every new version.
08:06   jordi      https://launchpad.net/rosetta/groups/ubuntu-translators

< tuxub> how can anyone became a translator and work "for the cause"?

08:09   jordi   Here you'll see a list of teams which belong to the Ubuntu
08:09   jordi   translation teams. While Rosetta is open enough to let everyone
08:09   jordi   with a Launchpad account contribute, there is need for some
08:09   jordi   access control, to protect quality, avoid vandalism, etc. Being
08:09   jordi   part of one of the translation teams grants you "write" access to
08:09   jordi   every translation for that language in Ubuntu. Still, if you're
08:09   jordi   not a member of your language's team, you can still go ahead and
08:09   jordi   translate. Your contributions will be also stored in Rosetta's
08:09   dudanogueira    tuxub, ok... anyway :)
08:09   jordi   database as "suggestions", but won't appear in Ubuntu's language
08:09   jordi   packs until a member of the team reviews and validates them.
08:09   jordi   Rosetta offers a long list of applications that can be
08:09   jordi   translated. Taking the French team as an example,
08:09   jordi      https://launchpad.net/distros/ubuntu/edgy/+lang/fr
08:09   jordi   we can have a look at how their translation status is for the
08:09   jordi   Ubuntu Edgy release. I like showing the French team because they
08:09   jordi   are really an amazing example of completeness.
08:10   jordi   Rosetta presents us a list of applications which are ready to be
08:10   jordi   translated to French, and their current translation status. As
08:10   jordi   you see, the French have done their homework and there's barely
08:10   jordi   no red bars, meaning "untranslated". See the bottom of the
08:10   jordi   page for the meaning of the bar colours.
08:10   jordi   Let's see how we'd translate an application. Close to the top of
08:10   jordi   the list is "launchpad-integration". We'll pick this one as it's
08:10   jordi   easy and short.
08:11   jordi      https://translations.launchpad.net/distros/ubuntu/edgy/+source/launchpad-integration/+pots/launchpad-integration/fr/+translate
08:11   jordi   If instead of French you want to have a look at your own
08:11   jordi   language's translation, simply replace "/fr" in the URL with the
08:11   jordi   corresponding ISO 639 code. You can find the code for your
08:11   jordi   language here:
08:11   jordi      http://www.loc.gov/standards/iso639-2/php/code_list.php
08:11   jordi   Rosetta will present us with a few interesting bits in the main
08:11   jordi   body of the page. The most important one is the original string
08:11   jordi   and the translation field where you'll store your translation.
08:12   jordi   (oh, please tell me if I'm going too fast, I'm trying to speed up things so there's more time for q+a than on Monday)
08:12   jordi   In our case, the first string is "The Launchpad helper
08:12   jordi   application failed", which is already translated to French as
08:12   jordi   "L'assistant Launchpad a chou". Below the accepted translation
08:12   jordi   there is a list of alternative translations suggested by other
08:12   jordi   people. You can quickly navigate through the translation fields
08:12   jordi   using the tab key. Once you have completed all the strings in a
08:12   jordi   page, you want to save your work: hit "Save & Continue" at the
08:12   jordi   bottom, and if there are more strings to do, Rosetta will then
08:12   jordi   show them to you.
08:13   jordi   There are other bits that can help the translators while they
08:13   jordi   work on a translation: you might want to see what the translators
08:13   jordi   to a language similar to yours used in a string that is hard to
08:13   jordi   translate, for inspiration. You can get such information using
08:13   jordi   the "Make suggestions from" widget at the top of the string list.
08:13   jordi   Also, you'll be more interested in seeing the strings that need
08:13   jordi   work instead of those which are translated already. You can
08:13   jordi   filter the kind of messages you want to see using the "Show"
08:13   jordi   widget, where you can select from "all", "unstranslated",
08:13   jordi   "translated" and "needs review".
08:14   jordi   While the web interface has allowed many Ubuntu users help out
08:14   jordi   with the translations to their language, there's certainly
08:14   jordi   die-hard, old-time translators who will prefer using their own
08:14   jordi   tools (obscure emacs modules and weird command line tools!) to
08:14   jordi   work on their translations. Or there might be people who cannot
08:14   jordi   afford to be online during the whole translating session.
08:14   jordi   To help them, Rosetta has an import/export mechanism, which
08:14   jordi   allows you to easily upload translations you have worked on
08:14   jordi   offline, using your own ways, but you still want to see
08:14   jordi   integrated in Rosetta, and download your finalised files so you
08:14   jordi   can do whatever you want with them: back them up, send them to
08:15   jordi   your team's mailing list, send them to the upstream author so
08:15   jordi   they get included in the next release...
08:15   jordi   Importing and exporting is easy: to download your work, use the
08:15   jordi   "Download" and "Upload file" links in the left-side box when
08:15   jordi   viewing a translation template.
08:15   jordi   When requesting a download, Launchpad will prepare the file for
08:15   jordi   you and will email you the location of the desired export.
08:15   jordi   Importing is similar. Just fill in the field with the location
08:15   jordi   path to your file, and rosetta will integrate it in the database
08:15   jordi   -- note the file upload mechanism is disable right now due to
08:15   jordi   technical reasons, we expect to be able to resume normal
08:15   jordi   operations very soon.
08:16   jordi   Okay, so you've worked on the files you were interested in, and
08:16   jordi   Rosetta now has all the info. What happens now?
08:16   jordi   Ubuntu will, on a monthly basis, extract all the translations
08:16   jordi   from the database and put them in the "language packs" for each
08:16   jordi   supported language in the distro, which will automatically hit
08:17   jordi   your Ubuntu mirror the 1st Monday of the month. This way, Rosetta
08:17   jordi   allows people to keep improving the support for their language
08:17   jordi   even after a Ubuntu release has shipped. For example, more than 6
08:17   jordi   months after the release of Ubuntu 6.06 LTS, there's a group
08:17   jordi   working on adding Dzonghka support to Ubuntu, when there was
08:17   jordi   close to nothing included in dapper initially.
08:18   jordi   The Rosetta team get asked a few frequent questions regularly. I'll try to
08:18   jordi   address a few of them before moving to the Q+A slot.
08:18   jordi   Rosetta has a limitted workforce behind it, and people wonder how
08:18   jordi   can they help us getting their desired features implemented, if
08:18   jordi   Rosetta's code isn't at this moment Free Software.
08:18   jordi   sabdfl has explicitly expressed his desire to free chunks of
08:18   jordi   Launchpad when Canonical is ready to do it. It will take time,
08:18   jordi   but we have public statements in this direction. If people want
08:18   jordi   to help out, access to the code can be granted via a NDA scheme
08:18   jordi   -- there are some people doing this already.
08:18   jordi   People always ask us for this or that feature they'd really want
08:18   jordi   to see in Rosetta. The best way to request them is to file bugs
08:18   jordi   against Rosetta in Launchpad, so they can be tracked by the
08:19   jordi   Rosetta developers. You can have a peek at what the team is
08:19   jordi   currently working on by looking at the list of Rosetta specs:
08:19   jordi      https://launchpad.net/products/rosetta/+specs
08:23   jordi   Another source of FAQs is how to deal with the fact that sometimes, Rosetta and upstream projects (such as GNOME or KDE) end up with divergent sets of translations. This is due to the fact that Ubuntu translators can change/fork the translations coming from upstream sources in Rosetta, or even create them before they exist in CVS
08:24   jordi   This divergence of translations between upstream and Ubuntu causes some grief in some teams
08:25   jordi   We're working on measures to make it easy to revert it, but it is also important to have Ubuntu translators understand that they need to work closely with upstream so these situations are rare, not th enorm
08:26   jordi   So we'll be seeing a few changes in how ubuntu l10n teams work in the future

[tom56] When I suggest a translation, it doesn't seem to appear on the page. Have I done something wrong?

< dand> and maybe care to expand on the kind of changes "we'll be seeing [...] in how ubuntu l10n teams work in the future"? :)

< alefteris> Would you advice translating a few parts of ubuntu, like gnome, upstream to avoid regressions and use rosseta for ubuntu specific packages only? Is it possible to block the translation of specific packages in in rosseta and get translations only from upstream?

< mruiz> Currently I have an horrible translation bug for nm-applet. (spanish -> still there!) What's about QA translation in Rossetta?

[mruiz] jordi, how usually do reviews are made?

< adrian3> I have a question about some translations... some are a kind of "O_pen..." How do I translate them ? ( "open" for example in italian language is "apri" and in romanian language is "deschide"), but what to do with that underscore ?

[mdke] it's important to be consistent between applications for those letters, right?

< dand> any specific plans on improving OpenOffice support?

< alefteris> Is there a way to quickly test the translation of a specific package on the actual gui? Would be super cool!

< OgMaciel> When will you guys unlock upload of .pos?

[teprrr] sorry to interrupt, but isn't it possible to work a bit more with other projects' translation teams?

08:55   jordi   danilo and I have plans to work on good documen tation for rosetta in the following weeks. Hopefuly, many of the questions you have today will be easily solvable by them


CategoryTranslations

MeetingLogs/openweekedgy/Rosetta2 (last edited 2009-07-20 13:35:18 by p54A13477)