Tuesday, April 7, 2009

Works for me

There's a major release coming up, I can't say just yet if it will be 1.0, but that's where I'm heading at. You can see some progress in the image above.

I'm trying to simplify the user interface and the navigation. I'll introduce tabs where possible and remove options that are rarely used. I'm also working on introducing some basic functionalities that were missing so far, like deleting users and projects.

Better import and export is in the works as well, because it's still not working out of the box for everyone who installs Narro.

Once the existing functionality will be cleaned up, I'll address the most important issues from the issue tracker and bring out a release.

In conclusion, works for me is just not enough and works for everyone means just more work.

Thursday, March 19, 2009

Translations of similar texts and other news

The project list should show only what can be worked on, that is translations in progress. If you want you can select which projects to see.




Looking at some projects that I'm not translating, I always wondered if somebody is actively translating there. Well, now I know, on the project list I can see when was the last activity.

Another thing that I didn't like was that If an original text changed in form of adding or removing a punctuation sign, I had an untranslated text again. So I went back to the days where I had an index to search for similar texts.

Better yet, if yhere's no translation, the translations of similar texts appear automatically. You can copy them and adjust them before translating.



Other things planned in the near future are:
  • storing and using a word count value for texts and translations
  • adding project settings, like ignoring some files from templates, adding a custom header for gettext files and so on
  • split the Manage page into smaller pages
Several people have tried to install Narro on shared hosting environments or Windows machines and failed to do so. A better installation procedure is an ongoing effort on my side and several people have helped so far. The versioning started with 0.9 because I do not see Narro as an application that anyone can easily install yet. If you're not a technical person, you should wait for 1.0.

Saturday, March 14, 2009

1 year of open translations


Time sure flies and I forgot that Narro is one year old officially.

It all started more than a year ago when after years of translating software on voluntary basis I realised the obvious. I was doing a job that anyone could do if they had the necessary tools and the knowledge to use them. So I pursued my dream of creating the tool that needs no tools to translate.

Thinking in such a way leads to a lot of hard to appreciate functionality under the hood. There's no documentation and almost no samples of working procedures. If you're using Narro and like using it, maybe you would consider recording a video of using it. Drop the link in a comment here if you wish.

Friday, February 27, 2009

Where is that link?


Working with Narro I have come to the conclusion that the Actions columns from the text lists was just eating up valuable space. So I dropped it. Now you have to click the translation cell to translate. This way I also had the chance to explain the colours that I use:
  • black means approved
  • blue means not approved and not your translation, but the most voted
  • green means still not approved but it's your translation
Feel free to give some feedback on this.


I also added Search by author. Sometimes I get a very good translator and I want to approve all of his suggestions. So now I just search for him using the texts list and either use mass approve or just do it old fashion, text by text.

Another hidden feature worth mentioning is that the translation page already has some access keys defined for keyboard fanatics. Here's the list:
  • Save - s
  • Save and ignore - i
  • Approve - v
  • Next - k
  • Next 100 - h
  • Previous 100 - l
  • Previous - j
  • Copy original - c
In Firefox you use Alt+Shift+letter above. Feedback is welcomed on this as well, but have in mind that I'm planning to make this keys customizable.

Monday, February 16, 2009

Nobody's perfect: 0.9.4

The new release contains many improvements on the import and export side as I got a lot of complaints that "it's not working", especially for Windows based installations.

There are also new features, probably the most notable is the mass approve function on the text list.

I'd like to draw some attention to a hidden feature that I've never talked about before. If you put in the project's directory, let's say data/import/1 two files named import.sh and export.sh they will be executed, the first before import (for things like running a wget) and the second after export (for things like creating a language pack, or a compiled .po file). The scripts are called with useful arguments. Here's a script used for creating a Firefox language pack after the export process:
#!/bin/bash
# $1 - language code
# $2 - language id
# $3 - project name
# $4 - project id
# $5 - user id

cd /mozilla_projects/firefox/fx/browser/locales

make -s langpack-$1
export retVal=$?

exit $retVal
Don't forget about returning a value. The output will be shown anyway but with a warning or success message depending on the retVal.

If you're doing a fresh installation, follow the instructions in the INSTALL file.
If you're updating from 0.9.3, run the update files in the root directory. Their names are pretty suggestive.

And here's the link: http://narro.googlecode.com/files/narro-0.9.4.tar.gz.

I'd just like to add a small note of warning. The setup and install process may be a little rough as systems installations differ. But if you need help, don't hesitate to ask for help on the discussion group: http://groups.google.com/group/narro-project/post.

Thursday, February 12, 2009

Sharing the story: localization matters

Ever since I installed a Narro instance on the l10n.mozilla.org server I received requests for supporting languages that you don't usually find next to other languages in localized software versions. They want Firefox in their language. Like Mayan, Oromo, Valencian, Kabyle, Kazakh, Zapotec, Malayalam and others.

They have to register an account and I have to give them administrative permissions on their language. After that, they can start translating in Narro. They can invite their friends to help. Whenever they feel like testing, they export the translation and a language pack is generated ready to be installed. That's a language pack that they can post on addons.mozilla.org for others to enjoy.

So a low entry barrier to the localization matters. If people like the software, sooner or later they want it in their own language. And be sure that there are people that won't use software in English.

So today I feel the essence of localization, which is making a product suitable for use in a particular country or region. I might add "by simply translating it", because usually you need tools and knowledge.

Love your language!

Thursday, February 5, 2009

Sort files and projects by progress


I've just finished writing the piece of code that allows sorting files and projects by progress. This seems such a natural thing to do, but it's so complicated to code.

More on mass aproval

I've been testing this feature on production for just a day and I can say "yes, it's very useful" already. For now, I use it like this:
  • I choose to see only texts that require approval
  • I click Mass approve
  • I choose which suggestions to approve
  • I save them all
I have 20 texts per page. I never could approve 20 at once because some of them don't have suggestions, are too long, have access keys or have bad suggestions. But the average is about 10 out of 20, which is good.

I'll be updating https://l10n.mozilla.org/narro instance shortly with this change which I think others will find it useful too.

Wednesday, February 4, 2009

Approve multiple texts at once


I've got this request from many Rosetta fans. Mass operations directly in the text list. I've started with the approve operation, which doesn't need any validation. There are some restrictions though:
  • only texts that have less then 100 characters
  • only texts that don't have an access key
As you can see in the image, the idea is simple, select a suggestion to approve for each text and click "Approve all selected suggestions". In this mode, the column context is always shown, as it's useful for approval and the actions column is hidden.

I'm thinking also of mass vote and mass add operations. Voting shouldn't be a problem, but adding should, because plugins validate the added suggestion and have to display a message somewhere.

Personally I'm not happy about mass operations as they bring errors with them, but sometimes they may be useful if the right people use them. Like when you're approving a batch of search results for a term, let's say "File". So for this mass operations there's a special permission separate from the normal operations that can be give only to some people.

This feature is on the trunk and subject to change. Any opinions are welcomed.

Saturday, January 31, 2009

What's Narro good for?

Being too busy developing the application, I've never described in the simplest way possible what's Narro good for. Since examples are the best way to learn, here's one:

Old process:
  1. svn checkout file.po (CVS, hg, git or any other similar command)
  2. poedit file.po (Open the file with a program to translate it)
  3. svn commit file.po (commit the translations I've made with let's say poEdit)
Actual process using Narro:
  1. svn checkout file.po (CVS, hg, git or any other similar command)
  2. import the file in Narro
  3. translate the file in Narro
  4. export the file from Narro
  5. svn commit file.po (commit the translations I've made with let's say poEdit)

Although it seems that the actual process got complicated, there are several major improvements:
  • one text can have more translations than one
  • people can translate at the same time
  • the only tool they need is a browser
  • I can introduce various methods to improve quality, like the ones already implemented: punctuation check, spell check and entity check
As you can see from the example, the checkout and commit operations are still done the old way, right now using some cron jobs. That's because Narro doesn't know right now to import from something else than a directory. In the next version I plan to add the possibility to write various plugins for sources of translations.

Wednesday, January 21, 2009

Narro has its own translation in gettext

This entire post is about Narro's interface, not the files it handles for translation.

I've changed the internationalization engine that Narro uses for its translation from home made to gettext, so now there's a pot file to translate.

For those using l10n.mozilla.org, you'll have to approve the texts again, but this time you can export a po file an send it to me so I can include it in newer versions.
When you export the translation, a compiled file is generated as well besides the export po file and the translation in Narro is activated instantly.

Sadly, the engine I use, Zend_Translate, doesn't care about plurals, but since it's an active project I hope future versions will support plurals. And right now there are a few places that would use plurals, about 10, so it's not a big issue.

Saturday, January 17, 2009

Narro 0.9.3 is out

Here goes another release. It wasn't the best time to release as there are many things to add, but the 0.9.2 version was getting too old and the trunk version is used without problems on two working installation, so things were stable enough.



I'll highlight the most important additions in this release:
  • permissions are grouped in roles now, which makes user management easier
  • "validate" changed into "approve"
  • you can export the unapproved suggestions based on several criteria, like the most voted ones, or your suggestions
Download from the project page: http://code.google.com/p/narro/

For the next version, I'd like to create customizable import and export sources that will allow you to get the translation from CVS and post it back to CVS for example. With this step, a general cleaning and improvement on messages on the import/export side will come so people that experienced problems with different php installations should be a little happier with the next version. I myself and a few others will be happy as well to publish their changes directly to versioning systems.

As always, feel free to suggest ideas or report bugs about Narro.

Monday, January 12, 2009

Narro @ Fosdem

FOSDEM, the Free and Open Source Software Developers' European Meeting

I'm going to Fosdem, so if you're there and interested in having a talk with me, try to find my head in the croud.

For those of you who can't make it, I'd just like to recommend to use the trunk version of Narro until a release is done. There were many changes, but there's no time right now for a release.

I'm planning to work on defining sources for import and export so that you can import and export directly from/to versioning systems. This is one of the most important things after getting Narro working as a translation tool.