The WebTranslateIt Blog · Page 18

i18n news and Product Updates about WebTranslateIt · Page 18

Ruby on Rails plugin for Web Translate It

By Edouard · November 2, 2009

In an effort to make Web Translate It easier to integrate with your application I developed a Ruby on Rails plugin for Web Translate It.

What does it do?

It provides a rake task to fetch your translations

rake trans:fetch

You can also setup the plugin to “autofetch” your translations, the plugin will look for and fetch new translations for every page loaded on your site. This means a translator can translate a string on Web Translate It, reload a page on your website and see instantly the translation she made in context.

How do I get and install it?

Please refer to the documentation on github.

For more help with regards to Web Translate It integration, please have a look at the integration help section on Web Translate It.

Which other web frameworks will you support?

I plan to create plugins for the popular frameworks Django and Cake PHP.

I hope you will find this plugin useful. Should you notice any issue or have a feature request for this plugin, please open an issue on Github’s issue tracking system.

Web Translate It Update: Better File Manager

By Edouard · October 29, 2009

I just rolled out an update to Web Translate It. The update fixes a couple of bugs with the plural forms, and better the File Manager and the importers.

What’s new in the File Manager?

Your list of files is now easier to use. On the File Manager home page you will see a list of Master language file, that is, the files in the language you want to translate from.

If you click on “View Translations”, you will see the target files, that is, the language files you want to translate to.

On this page, you can now rename the files. This is useful to map your Web Translate It projects to your project’s language file architecture. For example, some projects are organised this way:

o locales
  o en
    - locale.po
    - another_file.po
  o fr
    - locale.po
    - another_file.po

Now you can name your English file “en/locale.po” or your French file “fr/locale.po”. Web Translate It is clever enough to recognise you need subdirectories to organise your files and will create it for you when you download your project in a zip file.

The last improvement is support for language file headers. If you import a language file that contains some copyright or important information, Web Translate It will save it and will export your language files with that header.

You can as well edit the headers in Web Translate It’s interface, like so:

I hope this new addition helps you manage your files better in Web Translate It!

Product update: Web Translate now has an activity feed, better comments, charts and a better search

By Edouard · October 24, 2009

Thanks for everyone who gave Web Translate It a try and for the kind words, in your different, beautiful languages.

Since the opening to the public last week I have been hard at work. I improved some existing features and added a few new features. Let’s have a look on what is new.

Improved comments

Comments are now slightly more sociable.

For example, let’s pretend I am a translator and I have a question about the context of a string to a developer.

So let’s write a comment. The new feature here is that I can mark comments as “annoucements”, “questions” and “answers”. Let’s mark it as a question.

The questions not yet answered are displayed on the project home page until they are answered, like so.

If anyone has an answer to a question, she can mark the comment as an “answer” and the topic will be marked as answered.

Comments are now a very efficient way to communicate within the team. Besides, any comment you write are imported/exported with the language files.

Improved project page

There are many improvements on this page. The biggest new feature is that it integrates an activity feed.

You can see at a glance what has been done in your project lately.

That’s not all. The raw project statistics have been replaced by charts.

All put together, it gives the following page.

The global, raw statistics from the old project page are gone to a new Language page.

Improved search

Search is better, too. You can now search for strings in a specific language.

Results are also more relevant. You can search through the translations, the key names and the developer comments, if available.

Minor bug fixes and improvements

Better blank slates

The blank slates (for example the project page for a newly created project) have been drastically improved.

Locale autocompletion

The long “locale select of doom” that was showing 300-ish locales in a drop-down had his time and has been replaced by a shiny field with auto complete. You can just type the beginning of the locale name or locale code (German or de_DE) and select it in the list. Much easier!

Better “people and languages” page

The “people and language” page was a page that allowed you to create new languages for your project, as well as inviting new users to your project.

All these important actions in one page wasn’t making it particularly easy to use, so I split it into two pages: the “Users” page and the “Languages” page.

I hope you will enjoy this new version of Web Translate It. If you have any remarks, questions and suggestion, please write a message on our support forum.

Web Translate It has launched!

By Edouard · October 14, 2009

Yes, you read it right: Web Translate It has launched.

What’s new?

A few bug fixes here, a few little features there, and few enhancements here again…. The biggest feature really is the payment system, so I can now welcome new customers.

Better import/export of strings

Look how slick the importer/exporter is now. It now has a nice progress bar and display how much time is left before completion. So now you know if you have the time to grab a cup of coffee or not.

Word counter

Another minor but essential improvement is the word counter. It counts for you how many words there is in a project.

Organisations pages

This part is completely new. This is where you manage your organisation (company or group), your billing information, the plan you choose, and so on. From there, you can change you plan, see at a glance how many strings you are using on your quota and park the projects you don’t use.

Try it!

Do you have a website or software to translate? Give it a try, you will get a 30-day trial so it won’t cost you a thing. If you don’t like it, just let the trial expire and we will delete your data.

Possible scheduled downtime next Saturday from 12AM-1PM GMT

By Edouard · October 13, 2009

Web Translate It currently use a very basic disk cache to display faster a lot of different things. Disk cache is simple to implement, however it is not very efficient as it needs to access the hard disk to invalidate the cache.

Under high server load it even causes some malfunctions as it sometimes become slower to invalidate the cache than displaying a page.

On Saturday afternoon I will migrate the cache system to Memcache which will solve these problems and probably speed things a little bit up. I shouldn’t take the site down, but it is probably wise not to plan to do any important work on Web Translate It from noon to 1PM GMT.

New Feature: string sorting

By Edouard · October 5, 2009

I released a new feature on Web Translate It today. You can now create custom filters and sort strings using these filters.

The user interface is slightly different than draft I made the other day, because it wasn’t working as soon as there are a lot of filters.

Let’s see how it works

Here we look at all the strings in the project.

Now, if I want, I can have a look at the new strings I added 1 week ago. As you can see, the statistics change as well.

Now I want to sort the strings I added a month ago, which are on this template edit_profile.tpl. Let’s create a custom filter that match the template I want in my project.

And we can now select “1 month ago” and “edit_profile.tpl”.

This is very flexible. You can also filter by file name and key name. I hope you will find this feature useful.

September Status Update

By Edouard · October 2, 2009

This month I have been releasing only very few new features. I have also been working on the website’s performance.

A few new features

Search

“Search” seems to be such a little feature. It’s actually used a lot, needs to search everything and fast. It has been quite complex to implement.

Given the amount of string entries we are dealing with (we currently have more than 30,000 strings in database without having officially launched), and because we want a full-text search, it becomes quickly inefficient to directly query our database.

The solution for this problem is a search engine. In the background, an indexer look at the database for changes in the strings and well, index these changes. On the front-end, a search server check the index and respond quickly to your queries.

I chose Sphinx because it is fast, lightweight and under active development. It also has awesome plugins for Ruby on Rails, I chose Thinking Sphinx, which has an amazing documentation.

Save all strings in this page and developer comments

Another small improvement is the ability to save all the strings in the page. This has been requested by our beta testers. Furthermore, Web Translate It can now display developer comments. Developers can put there explanations or links to example pages.

Help section

I have also been working on the help section. It actually is a wiki, users will be able to write there tips and tricks.

Better importers

I have been rewriting the Yaml importer and exporter from scratch. The version I had was not capable to handle Rails’s plural forms. Also, more validations are now done before actually triggering the importers, therefore more availability and less failures.

Lastly, since today we also support PHP .ini and Java .properties files.

Performance improvements

API performance improvements

This was also technically thrilling: The API now supports Conditional GET Requests.

If you provide your request with a context (a HTTP header that include the date of last modification of your file), the new API will respond with a sensible HTTP status code.

If there has been changes since your last call, it will respond with the code 200 OK along with your translations. If there aren’t any changes, it will respond with a mere 304 Not Modified without your translations.

Needless to say, respond something empty is blazing fast.

Website performance improvements

To accommodate this feature, I also have been optimising Apache, which now supports Gzip compression, page caching and E-tags. The YSlow plugin for Firefox and Yahoo’s Best Practices for Speeding Up Your Web Site have been inestimable resources for this work. Web Translate It really feels much faster now.

Finally, I upgraded Ruby, the language that powers Web Translate It to a slightly newer version. Because traffic is still quite low, it is hard to notice any improvements on speed, but I noticed a huge drop in memory consumption.

That’s it

That’s it for this month. This is probably the last time I write a monthly status update. I release a new version of Web Translate It weekly, so it is hard for me to compile all my work in a post, and it makes rather long posts. I’d rather post weekly updates or “feature by feature” updates for large features.

Finally, as usual: Web Translate It is currently open for beta testers, so if you want to test Web Translate It for free, send me an email at edouard@atelierconvivialite.com.

New release

By Edouard · October 2, 2009

I just released a new version of Web Translate It. Unfortunately the string filtering feature didn’t make it and will be pushed another week further. It requires some important work to integrate well with the statistics system. Besides, a few other important features required all my attention.

Here’s what’s new:

  • Ability to upload multiple language files in a zip file. This is useful for large projects with many language files.
  • File Manager: this is a big update. It is now much easier to use and allows you to do more with your files.
  • PHP .ini files support
  • More robust language file importer/exporter, with better error handling.
  • A few of small improvements in the translation interface
  • Fixed a bug with the search engine. It wasn’t indexing your new strings sometimes.

Calling out all beta testers

By Edouard · September 21, 2009

Web Translate It has reached the point we call the “minimum viable product”. Do you need a translation management system for you project? Join and test it.

Web Translate It is not ready for prime time yet but it already works really well. Do you have a project to translate? Are you interested by trying it before everyone else? Please contact me to get a beta tester account.

What will you get?

You will gain access to a web-based translation system that makes it easy for human translators to collaborate. During the beta time, using it will be free. After the launch date you will have to choose if you want to continue to use it and pay, or not use it. Web Translate It will remain free for Open Source project.

Web Translate It can help you to translate 3 things:

  • Dynamic websites
  • Software
  • iPhone applications

It also solves a few problems in the translation process:

Avoid unnecessary file logistics

Web Translate It integrate an easy to use and efficient translation interface. The whole translation team can work on your translations directly in a web browser. The translators can ask questions to the developer through a commenting system. The developer can see when his translation work is finished in the Project Statistics, and download all the language files at once in a zip file.

Test the translations

Web Translate It has a very simple API. If you work on translating a website, you are invited to set up a staging site for the translators to test their translations. You could make your staging site fetch and display the latest translations for every page load. Translating a website and testing your translations is as simple as saving your translations and checking the result on the staging website. If you are a software developer, you could develop a system that regularly builds your application against the latest translations.

History

Web Translate It keep an history of everything that happened on a string: who translated it, who proofread that and when. You can also revert the string to a previous version. This feature is crucial for an efficient translation workflow.

Don’t reinvent the wheel

Developers, developing yet another hasty web-based translation software is a loss of time. Developing good software takes time. Translators don’t like to work on slow or buggy tools. Besides, our API afford a tight integration to your system, as if Web Translate It was hosted on your system.

Keep in touch

Subscribe to the RSS feed for frequent product updates, follow us on Twitter or join our mailing list if you want to get an email when we launch our product.

June and mid-July Status Update

By Edouard · July 13, 2009

Wow, how can it already be mid-July? We have been pretty busy refactoring Web Translate It and adding new features. Here is what we have been up to.

It feels like June went very quickly, and when we look back it seems we haven’t done much this month. The truth is that we have been working on some rather tricky features.

Gettext .po, Apple .strings, Rails .yml, you name it

Gettext .po is widely use, but we really wanted to support two other file formats: Apple .strings and Rails .yml. This is now implemented, which means you will be able to use Web Translate It to translate your Mac and iPhone applications, as well as Ruby on Rails websites! Along the way we refactored and improved our importer/exporter engines to be more abstract, so supporting more file formats will now be easy. We’re quite thrilled about this.

Import and Export jobs improvements

Remember our CPU-hungry processes we run as background jobs? They took a little while to perform, without any feedback. Not anymore: we thought giving our users a little bit of feedback wouldn’t hurt.

Also, downloading every single file one by one can quickly become unpleasant if your project is translated in lots of different languages. You can now download all your language files in a zip file containing all your language files.

Next

The next release will be mainly focused on improving the interface usability, particularly the on the interface to assign jobs to your team, and invite other team members, which is rather cumbersome at the moment.

We will also improve our import/export engines a bit more. We will introduce support for plural forms in .po and .yml, which is a big piece of work.

What’s left after all this? We need to rework the translation interface: better interface for comments, code colorisation in translation forms, ability to filter strings by status, etc, and finally implement a payment system.

Once it will be completed it will be finally time to launch! We’re getting there.

Let’s get in touch

For frequent updates, follow us on twitter or subscribe to our RSS feed. If you want us to contact you as soon as we launch join our mailing list on the Web Translate It website.

We also have our customer support forum on GetSatisfaction if you have any ideas, enquiries or suggestions.

April and May Status Update

By Edouard · May 31, 2009

June is here. While we still don’t have much to show you, a lot of things have happened during these last two months.

We have been busy working these last two months and made lots of improvements on Web Translate It.

We hope to have something substantial to show you this summer. Here’s what we have been up to.

House cleaning and a few new features

Back in April we launched a temporary front page for Web Translate It to present our product. Since then, a lot has happened.

We’ve been working on a brand new design, implemented a few new features, dusted off some scalability problems and have drastically simplified our product’s architecture.

A new design

Remember the sketch we posted a few weeks ago?

Well, after using it ourselves, it didn’t felt right so we went back to our pencils and came up with something dramatically simpler.

This is very green. If you don’t like it, you will be able to change the background and header colour to your taste.

This new design is much more simple and will allow easier modifications in the future.

New Features

We worked on a new page we call the “String Log” (screen-grab above). This is basically a page showing the details of what happened on a string: translations changes, status changes, comments posted, in a chronological order. We still have a bit more cosmetic work to do on it.

We also worked on implementing string export, so you can actually fetch your languages files once the translation work is done. It’s not entirely finished yet, but the engine is here and ready to use.

Scalability

We noticed some performance issues while importing large languages files to our system. These kind of tasks simply take too much time to perform online.

So we moved these CPU-hungry tasks as background jobs. It was a very interesting project to do. We’ll write another post later to share our experience on this.

Simplification

As much as we try to keep things simple, some parts of our product seemed very complex to use so we reworked them in a much more simple way.

We also rewrote our .pot file parser from scratch, as the one we were using was blatantly inefficient.

System

Some of our work cannot be seen. We set up a communication system, a server monitoring system, and tuned our backup system.

Our source code and our database are backed up to an offsite server every day.

We also installed some tools to help us code better.

Continuous Integration

We now have a continuous integration server, Integrity.

Every time we we push code to the main branch, Integrity runs the website’s batch of tests and tells us the result on Campfire.

Of course we test our code locally on our computers while we code, but several times we committed code breaking the test suite without noticing.

It is now impossible to ignore it.

Metrics

“You can’t control what you can’t measure”. We run software metrics on our code since four days now.

It seems promising and will help us a lot to improve our code.

Inspired by the good folks at Thoughtbot we chose metric_fu, a tool to generate software metrics for ruby code.

Basically, metric_fu calculates everyday a few software metrics from our source code and notifies us from design issues, code smells, missing test cases, duplicated or too complex code.

Tools like Reek, Flay,

Flog and Rcov are amazingly useful.

Now, the vanilla metric_fu doesn’t look so hot. So we decided to go ahead and use Thoughbot’s fork which is aesthetically more appealing, and since we were at it we made it a bit better.

Our fork automatically generates and includes graphs showing our day-to-day progression. Grab our fork at Github.

Edit: our changes have actually been pull to the official metric_fu.

Getting in touch

We launched our company website/blog a few weeks ago to be as transparent as possible and talk about what we are doing.

We are really pleased to read you left us a few comments and we hope we’ll have the opportunity to discuss more.

If you want to hear from us or get in touch, you can use the comments here, or use our customer support forum at GetSatisfaction or send us an email.

If you prefer to just watch what is going on you can subscribe to the RSS feed for frequent updates, or join our mailing list if you want to get an email when we launch our product.

In Search for Convivial Communication

By Edouard · May 18, 2009

Since Étienne and I work remotely from France and Sweden we crafted an efficient internal communication tool based on Campfire. Check out how we work.

Étienne works from Paris, France and I work from Linköping, a middle-sized town in Sweden. We are about 1600 kilometers far away. Luckily we don’t have any time-zone on the way, but we do have day jobs, which means we often work asynchronously.

We use 37Signal’s Campfire for our daily talk.

Campfire logs everything that has been said in a transcript and that’s very convenient: it allows both immediacy and asynchrony.

For example, if I am away for a few days I can look through Campfire’s transcripts when I come back and see what Étienne did and what were his blocks and problems.

Since I see every details on the transcript, I don’t need to ask him anything. It’s a great time saver.

In the same handy fashion I can ask a question to Étienne on Campfire while he’s away. He will answer me the next time he logs in, even if I am not logged in myself.

On top of that we run a few notification scripts shaped to our needs.

Revision control system notifications

We use Git for our code versioning. Every time we push code to our repository a notification message is displayed on our Campfire chat room.

This is great for awareness and to discuss about code changes.

This is really an easy script, but we’ve open sourced it.

Issue tracking system notifications

We use Redmine to keep track of our features and bugs.

This is a great open source web-based tool for collaborative work, but since all our attention is focused on our Campfire chat room our actions on Redmine lacked of visibility.

So we made a plugin to notify each-other of every ticket changes, edits on our internal wikis and forums.

This is very convenient, we can see how a project is going at a glance.

We made this Redmine plugin available.

Deployment notifications

This is important to notify each-other when we deploy in case something gets awry. So we display a notification message as well as a message explaining what the deploy is for.

Alerts!

This one is quite new and is not really usable yet. We setup our monitoring system to display alerts for some of our most critical processes.

Note: this is not an actual alert

We can also easily display monitoring graphs on Campfire to quickly show what’s wrong and discuss on how to fix it.

Here our server’s memory usage seems quite high.

That’s about it! Using this tool is really handy, and I don’t think we could work as efficiently without it.

Announcing our first product: Web Translate It

By Edouard · May 2, 2009

Since a few months we’ve been working on a secret project. Do you have a website or an application you want to open to the world? Read on!

Did you know that the European Union has 23 official languages? That Spain has 4 official languages? That the spanish government’s websites are multilingual? That even though their languages are related, people from different Nordic Countries don’t understand each other? How many kilometers are in one mile?

You got it. Win a foreign market requires some internationalisation and localisation efforts.

Website or application internationalisation is not easy. Some developers cook a “home-made” translation system which is most of the time not very usable by the translation teams.

There are also a few translation solutions, but they too complicated to use and don’t allow easy communication within the translation team, or between the developer and the translation team. They also have poor support for iterative project development.

So, Web Translate It!

We decided to scratch that itch and develop ‘Web Translate It’ to make all that easy.

It’s still under development. We started working on it a few months ago and we already have an usable software, but some things aren’t quite finished yet.

We expect to have everything ready to launch by the end of August or early September and we’ll keep you posted about our progress on this blog.

Above: an idea of the project page on Web Translate It.

Web Translate It will be:

  • web-based. You will use Web Translate It in your web browser over the internet. You don’t have to worry about anything: just work and collaborate easily.
  • commercial. Although everything seems to be free on Internet nowadays, we develop software for a living. We believe our product will be superior than the open source alternatives and that it will worth every penny. We haven’t clearly defined the price yet, but we really want it to be fair, as in bring more value than it costs, and we will likely use the “pay as you go” model. At some point we will introduce a free plan for open source projects.
  • a translation tool. We will support the translation files formats we’re used to in the course of our jobs: Gettext .pot, yml and Apple Strings (the iPhone and Mac apps translation format). We plan to support more file formats later on. We also plan to integrate a translation memory, although this feature may come a bit later.
  • a communication tool. Stop emails! Assign jobs and deadlines on the tool itself. Ask questions to the project owner, all the project stakeholders will be able to communicate very easily, and everything will be really visible.
  • a tool for developers. We’ll integrate Web Translate It to the major web development frameworks. We plan to integrate first those we use and love: Ruby on Rails and Django.

Get in touch

For frequent updates, subscribe to our Atom feed. If you want us to contact you as soon as we launch join our mailing list on the Web Translate It website.

We also have our customer support forum on GetSatisfaction if you have any ideas, questions or suggestions.

Let’s start talking

By Edouard · May 1, 2009

We’ve been actively working for months without saying a word. Now it’s time to introduce ourselves and talk about what we are doing.

Étienne and I are the co-founders of this not-yet-officially-created software company called Atelier Convivialité.

A few months ago we decided to work together and start our own software company. We like to work for ourselves and we share the same philosophy on how tools should be.

Software with a philosophy

Our company is named after Ivan Illich’s essay “Tools for Conviviality” which enlightened us very much.

In a nutshell, Illich’s essay states that a convivial tool should be efficient without degrading the user’s autonomy.

This simple idea may sound like common sense but most computer tools don’t even come close to that. It means a lot to us and we are taking it very seriously.

Many craftsmen are struggling with tools unadapted for their work. People end up doing work that should be automated.

Why is that? It may be because a specific tool don’t exist for their craftsmanships, or because the available tools became unadapted due to the new technologies. Or it could also be because they are poorly designed.

Bad tools get in the way and hurt. Good tools ought to be forgotten and help you work better.

So we decided to develop software that solve simple problems with this naive idea: we can do better and simpler.

Our tools will do less than our competitors because you ain’t gonna need it.

We also wrote a little red book. We want to develop convivial tools. We want our products to be simple and secure, and we want to be as transparent as possible.

Stay tuned

There’s plenty of ways to keep in touch. You can subscribe to our blog feed and follow us.

We also have a customer support forum on GetSatisfaction. You can also use the comments here or send us an email at info@atelierconvivialite.com.