Rosetta2
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"?
- the correct way is to request to join the relevant team in the list above, if it exists for your language. ie, if you want to translate German, join the ubuntu-l10n-de group in Launchpad, *and* fild out how your group operates. by how it operates I mean get on the mailing list, work with other team members, etc. the team leader will approve you or not depending on the team's policies
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?
- it doesn't appear as a suggestion for the string?
[tom56] No. https://translations.launchpad.net/distros/ubuntu/edgy/+source/nautilus/+pots/nautilus/en_GB/+translate?field.alternative_language=en&start=1140. I suggest "Wastebasket" instead of "Trash" or the current translation "Deleted Items"
- if there are many suggestions, only a few are displayed, I believe. They might appear in the detailed view (see the + link near the original string in the page)
[tom56] Not there either
- I don't have time to look at the specific bug right now, but we can have a look at it later in #launchpad. Which, by the way, is the IRC channel where you can contact the Rosetta team: danilos, carlos and me. Other people in the channel may be able to help if we're not available at some time
< dand> and maybe care to expand on the kind of changes "we'll be seeing [...] in how ubuntu l10n teams work in the future"? :)
- ok, so those following the rosetta-users list will know the quality problems have been a major topic during the last months. during the last company meeting, the rosetta developers spent quite some time discussing it and how to improve workflows to avoid them. The biggest source of problem is oversized teams. right now, any member in a translation group has rights to translate... or tamper with any translation of any package in main. This is good, it opens the door for many people to contribute, but in some cases it has caused problems as teams would be accepting basically anyone who knocked at the door, not even knowing if they knew just a little bit of English. the results were that some languages were seeing a few bad translations in some areas. e recommend that team leaders be very careful about this now, and some teams have developed some guidelines and internal rules that are working well for them. for example, the Italians and Brazilians are working through a mailing list, and newcomers basically are "tested" to see if they can be trusted to do good translations, or need some training. they are pointed at the glossaries, style guides, etc which are relevant for the translations they'll focus on, and they are also taught to contact upstream translators if any, so they can cooperate. this avoids crappy translations, and duplicate translations between upstream and ubuntu. also, we want to help get rid of the "divergence" problems by making it easy to identify what strings have changed in Ubuntu with respect to the originals, so they can be corrected in Rosetta, or in upstream CVS, whatever applies and also, there's talk about introducing a new level of membership in teams, as outlined before
< 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?
- this more or less overlaps with what I explained above but no, we don't want to lock upstream translations in rosetta. this is by design. Upstream translations are notperfect, and one of the great, unique features in ubuntu is the ability to update translations not even after upstream has shipped their tarball but also after ubuntu itself has shipped a final CD release, via the langpacks system I explained before. so, if there's a big, ugly typo in your Bulgarian gnome-panel, the Bulgarian translators can fix it in dapper after the release even, and won't have to see the typo during the next 3 years. what I explained before applies: even if these changes can be made, we encourage the ubuntu translators notify upstream translators about the problems they find, so these changes swim upstream too. this way, everyone wins: ubuntu gets instant updates via langpacks, the rest of GNOME users will see the ubuntu fixes with the next GNOME release.
< mruiz> Currently I have an horrible translation bug for nm-applet. (spanish -> still there!) What's about QA translation in Rossetta?
- I'm not sure I get your idea. If there's a bug in nm-applet, it can be easily fixed in Rosetta so next month it won't be there anymore. We are working on a "Review mode", if you mean this. This would ease reviewing the already done translations. This feature is top priority right now, should be in Rosetta very soon.
[mruiz] jordi, how usually do reviews are made?
- it entirely depends on the teams. If a team is well organised and schedules a "review squad" every now and then, the benefits can be very visible but that requires a lot of manpower, and unluckily, not all th teams have it.
[mruiz] I proposed many fixes to spanish translations... I must coordinate with spanish team?
if you're a member of the Spanish team, you should be able to make the changes directly. If you aren't, you should contact one member and tell them about your proposals, so they can integrate. And immediately after, you should join your Spanish tam
< 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 ?
"_" characters are accelerators. They are transformed into the underlined letters you see in your menu iteams, which make them accesible via alt+<underlined letter>. if using the same letter as in English is impossible, just use another one. Be careful not to use a letter that was already used by another item of the same menu, though. it's hard to refine these, can mostly be done only by testing the translation after writing it
[OgMaciel] adrian3 it is always a good ideia to find out from the local gnome/kde/mozilla/oo2 groups what their standards are
[mdke] it's important to be consistent between applications for those letters, right?
- yeah, for most of the usual menu items they will be as the items come from base libraries like gtk+, kdelibs or libgnomeui but yes, for consistency it's good to have Alt+F for File everywhere, etc
< dand> any specific plans on improving OpenOffice support?
very specific plans indeed
Rosetta will very soon be able to export OpenOffice data in the language packs. OpenOffice.org support and Firefox support are also top priority for the team right now.
< alefteris> Is there a way to quickly test the translation of a specific package on the actual gui? Would be super cool!
no, other than requesting a po download and placing it in the correct place of your file system so the application could have the very latest translations. that's time consuming, but that's how you do it
or, you can use pitti's daily generated language packs. I'm afraid I don't have the apt line handy right now
< OgMaciel> When will you guys unlock upload of .pos?
- I'm not sure about the fcurrent status of the bug that is causing this (translations were being reverted to old values), but I know carlos is doing good progress, so it'll hopefully be soon
[teprrr] sorry to interrupt, but isn't it possible to work a bit more with other projects' translation teams?
- we've been discussing that during the session. The answer is yes, it's not only possible, but being encouraged as much as possible.
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
MeetingLogs/openweekedgy/Rosetta2 (last edited 2009-07-20 13:35:18 by p54A13477)