About WebTranslateIt.com

WebTranslateIt.com is a web-based translation tool to translate documents and software.

Learn more at WebTranslateIt.com.

Subscribe to our newsletter

Get our monthly newsletter about WebTranslateIt’s latest features.

Recent posts

Improvement on Web Translate It: better YAML importer

Posted 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.

New in Web Translate It: project reporting

Posted by Edouard on January 11, 2010

A bit more than a week ago, I announced that Web Translate It was using a new system to generate stats. If the new stats engine makes pages using statistics load faster —which is already a great feature— it was in fact the first part of a bigger feature: project reporting.

On your project page, you now have a new tab: Statistics.

If you have been using Web Translate It these past days you should already have enough data for populating this page.

Let’s have a quick tour and see what this new feature does.

Detailed stats

The new stats engine not only counts the amount of strings by status, it also counts the amount of words. The statistics page displays all this data.

Deltas

Web Translate It also calculates deltas. This is the variation of the amount of strings between one day and another.

If nothing happened on your project during some period of time (for example during the week-end), then there is nothing to display. In the example below, nothing happened between the 7th and the 11th of January.

Graphs

The graphs represent the amount of strings, by status, over time. Hover the graph and you will get a bit more information.

I hope you will find project reporting useful. Let me know if you have any suggestion or comments. Thank you for using Web Translate It.

More API improvements

Posted by Edouard on January 9, 2010

I just updated the API with a few improvements and a new endpoint.

Improvements

The locale endpoint, which allows you to fetch a list of locales accepted by your project is now capable of returning xml, json or yaml by simply appending the format you want at the end of the URL.

For example, if you want your list of locales in YAML, you would call /api/projects/04b254da22a6eb301b103f848e469ad494eea47d/locales.yaml and it would return something like so:

--- 
locales: 
- name: French, France
  code: fr_FR

New Endpoint: Project information

This new endpoint can be very useful to develop an advanced integration between Web Translate It and your application.

It returns 5 things:

  • the project name,
  • a list of locales accepted by the project,
  • the project source locale,
  • the language file ids and names.

The data is available in xml, json or yaml.

An example of the data structure in YAML would be:

--- 
project: 
  name: Web Translate It
  source_locale: 
    name: English, United Kingdom
    code: en_GB
  target_locales: 
  - name: French, France
    code: fr_FR
    type: Locale
  project_files: 
  - name: fr.yml
    id: 1175
  - name: en.yml
    id: 1174

I hope these improvements will make easier for everyone to integrate Web Translate It with their application and develop awesome extensions.

For detailed API specifications, check API Information on Web Translate It.

New in Web Translate It: new API, updated plugin for Ruby on Rails

Posted by Edouard on January 4, 2010

The API and on the Web Translate It plugin for Ruby on Rails. All of what follows use Web Translate It’s API which is only available on paying accounts.

API upgrade

The new API use a different URL and allow users to fetch their strings file by file. This is especially important for projects with several files to fetch their strings via the API.

The older API is deprecated, but will keep functioning indefinitely, so there is absolutely no need to update anything on your side if the endpoint you currently use works well for your project.

The other new feature is the ability to update a language file through the API. This can be really useful if you want to automatise the workflow between your project and Web Translate It.

What you do of it is entirely up to you. It could be used by a nightly or weekly task to upload an updated version of your master language file. This way new strings would be automatically added on Web Translate It.

For more information, I invite you to refer to the new API documentation for developers on Web Translate It.

Rails plugin upgrade

The plugin for integrating Web Translate It with Ruby on Rails projects has had a nice update today and now use the new API.

Once installed and set up, it allows you —if you want to— to sync the translations between your app with Web Translate It for every page requested. This is great for translators to test their work on a staging website.

It also comes with 3 rake tasks to help you manage your translations:

  • rake trans:fetch:all to fetch all your translations in all languages,
  • rake trans:fetch[fr_FR] to only fetch the french translations,
  • rake trans:upload[en] to send a new version of your language file to Web Translate It.

Grab it on Github if you haven’t already!

Thanks for using Web Translate It!