The WebTranslateIt Blog

i18n news and Product Updates about WebTranslateIt

New in Web Translate It: Public projects for crowd-sourcing!

By Edouard on January 26, 2010

I just rolled out a new version of Web Translate It. Projects can now be open to the public. This is useful for crowd-sourcing!

Reworked project homepage

If you visit your project pages, you will notice it has been reworked quite a bit.

The activity feed has been moved to a dedicated tab, and the project home page now feature a list of the latest comments made on the project.

New settings

There are also a few new options in the project settings.

You can now put a description for your project and a link to your project homepage. The description is formatted using Markdown, so you’re not bound to write a description here: you can use this field to give general instructions to the translation team, or anything else you think can be useful.

Private and public projects — Crowdsourcing

And this… Well this is a bigger thing. You can now make your project public and browsable by everyone. By default, new and existing projects are set to private, and to be able to translate or comment on your project, users will have to request an invitation.

It seems to be a little change (it was definitely not!), but it is actually the first step to use Web Translate It to crowd-source your project’s translations. It is only the first step, and that was a tough one.

It is also great for Open-Source projects to improve their visibility.

How does it work?

This is your project page you can see if you’re a project member.

If you make the project public, this is what everyone else will see. You can actually see it by yourself here.

In order to join the translation team, the user will have to request an invitation to the project manager. The user can do so by clicking on the invitation link.

You can directly your users to the invitation request page and provide their e-mail address in the URL, too. For instance: https://webtranslateit.com/projects/244-VLC-unofficial-/invitation_request?email=john.doe@webtranslateit.com

When the project manager will have accepted the invitation, the user will be able to translate the project.

This is really the simplest solution that could possibly work for this issue. This workflow will work fine for projects until you reach 3 translators per language. If your user base is very much larger than this and hundreds of users want to join the translation team (lucky you!), you will need a more advanced system to handle vandalisms, translation suggestions, and so on. I will progressively improve this feature in time with a voting system.

I hope you will find this new feature useful. Thank you for using Web Translate It.

Maintenance window this Sunday 11-12AM GMT

By Edouard on January 23, 2010

Tomorrow Sunday the 24th I will be performing some database optimisations between 11AM and 12AM GMT.

The service will be up during most of this time. However these optimisations require to restart the database server, so Web Translate It might have the hiccup for a minute or two during this maintenance window.

Follow @webtranslateit for live updates.

New customer support website for Web Translate It

By Edouard on January 20, 2010

I just set up a new customer support site at Tender for Web Translate It.

Support for Web Translate It is now located at help.webtranslateit.com.

You will find there a knowledge base, a forum and a helpdesk.

If you are not a Web Translate It user, you can ask questions without creating a user account. If you are a Web Translate It user, you should already have a user account there.

Finally, all support requests sent to support@atelierconvivialite.com will be forwarded to the new support site.

New in Web Translate It: leaner interface

By Edouard on January 19, 2010

I just pushed a new version of Web Translate It. This new version include a couple improvements as well as a few bug fixes.

Redesigned action buttons on the translation interface

The action buttons on the translate page were only visible when hovering the string. While it was great for reviewing strings, several users reported it was a bit confusing. Besides, the comment button was lacking too much visibility.

So I redesigned these action buttons. The goal was for them to gain enough attention, while staying fairly invisible to afford a comfortable reviewing of the strings.

The buttons were a bit jammed in the upper right corner. I gave them some more padding to give them some more importance. I also made them bolder, while making them more greyer. The result is that the buttons are more noticeable while being less visible.

When hovering, the buttons gain some more contrast, making them more visible.

I think it is a good trade-off. I will tweak this up more in the upcoming releases, please let me know if you have any comments.

Leaner Web Translate It

493,29KB. That’s how much Web Translate It did weight before this release.

The big guy was the Javascript framework PrototypeJS with Scriptaculous, served via Google AJAX API. The Javascript framework is served non minified by Google and was totalling 345KB. Ouch!

318,77KB. That’s how much it weights now. That’s still quite a bit but it’s 200KB less already, without removing any feature.

How?

I switched the Prototype + Scriptaculous Javascript framework (345KB not minified) to the latest jQuery, which is served minified by Google: 68KB.

I had to rewrite all the Javascript front-end to make it work with jQuery but it worth it: everything is much simpler, and I killed a few bugs along the way. It is very likely you will notice some micro-improvements when using Web Translate It.

Improvement on Web Translate It: better YAML importer

By Edouard on January 14, 2010

Today I improved and launched a new parser for the importer used for YAML files on Web Translate It. The previous parser was buggy and inefficient.

The default Ruby on Rails implementation for i18n, so-called “Simple” use YAML to store its files.

A YAML file looks like so:

fr:
  some_key:
    key: value
    # a comment
    hello: bonjour

The YAML parser used until today was home-made. It used to browse every line in the YAML file, extracted keys, values and comments.

Really good YAML parsers exist for pretty much every language, but they don’t allow me to extract comments and display them on the translation interface, and it was a no-go when I implemented this feature.

My parser was working fine with really simple YAML files. In practice many customers had problems importing their YAML files because my parser did not support some edge-cases.

As Web Translate It grows, a few more customers needed to be able to import YAML files. As a consequence, last night and today a few more import jobs failed for a customer. I am really sorry about that.

Being able to actually import YAML files is obviously more important that being able to extract comments. On top of that, my parser had become incredibly complex and I felt I would not be able to fix the issue in a simple way, and to maintain a such hullabaloo.

So I switched to the vanilla ruby YAML parser, which not only parses files really well, but also parses them really fast. The only downside is that it is not possible to extract and import comments from the YAML file any longer.

A note of caution with YAML

Be cautious when writing copy in your YAML file because everything your write in the file is interpreted by the parser (by your application as well as by Web Translate It). Words like true, false, yes, no are interpreted as the booleans True or False by YAML parsers.

Consider this YAML file:

en:
  date:
    true: foo
    false: bar
    yes: baz
    no: boo

It will be interpreted as:

en:
  date:
    true: foo
    false: bar

Because yes == true and false == no in YAML, the parser consider the compounds yes: baz and no: boo duplicate respectively true: foo and false: bar. If you must use yes and no as keys, wrap them around quotes, like so:

en:
  date:
    true: foo
    false: bar
    "yes": baz
    "no": boo

Same goes for the value. This:

en:
  date:
    a_key: yes
    b_key: no

will be interpreted as:

en:
  date:
    a_key: true
    b_key: false

So wrap them around quotes:

en:
  date:
    true: "yes"
    false: "no"

Thank you for your patience with this issue, and thank you for using Web Translate It.