The WebTranslateIt Blog

i18n news and Product Updates about WebTranslateIt

Not Just Any Localization Platform

By Estelle on October 8, 2020

We could once again brag about the fact that we are the best value for money when it comes to choosing your localization platform but no, not today folks.
Today we are just here to remind you that one of the reasons to choose us is that we respect your privacy.

Privacy Report anyone?

Want more? Follow us on Facebook and Twitter

Our Path to Carbon Neutrality

By Estelle on September 29, 2020

Back in 2017, we realized that even though we aren’t a big company, the role our activity played in global warming wasn’t insignificant.
We work remotely so we don’t have to commute, our servers are hosted in an already carbon-neutral datacenter in the Netherlands (Evoswitch’s AMS-01) and to our surprise we discovered that the biggest impact didn’t come from our travels, electricity or water consumption but from the manufactured goods we are buying, especially high-tech ones like laptops or phones.

We looked for solutions to compensate our carbon footprint and there are quite a few non-profit organizations that will offer you to participate in projects helping develop sustainable energies all over the world or even just initiatives as simple as reforestation.

We decided to get involved with the Fondation Goodplanet - created by the photographer and environmentalist Yann Arthus-Bertrand - whose Action Carbon Solidaire Programme was created in 2006 with the aim of combating climate change by developing sustainable and economically viable alternatives to polluting activities, to the benefit of the most disadvantaged groups.

To this day we keep making daily efforts as individuals to change our consuming habits and not throw anything away that can be repaired and as a company we keep collaborating with the Fondation Goodplanet by donating money every year to finance a variety of down-to-earth and exciting projects such as developing sustainable agriculture and forestry, encouraging biodiversity conservation and restoration or creating bioclimatic schools in developing countries.

Join us in the fight, we believe climate change is not a fatality.

Want to calculate your carbon footprint? Go to

Want more? Follow us on Facebook and Twitter

Rate limiting on the String API

By Edouard on December 17, 2019

Hey there!

Last Thursday the 12th of December in the morning WebTranslateIt was hit with severe performance issues. The website and the API became unavailable at time.

Every 10 minutes, we received massive waves of requests (more than 400 requests per seconds on the API), which made the web server very slow.

Upon investigation, we found out that the performance issues were due to some users using automated tools performing requests on the String API. We always intended this API to be rate limited (in fact, our documentation has always stated that we limit requests up to 25 requests per seconds), but we noticed that some users were using the API way over 100 requests per seconds, so our rate-limiting was clearly not working.

We are now properly limiting this API up to 25 requests per seconds with bursts up to 30 requests per seconds. We think this is a very reasonable limit given the fact that this API serves up to 250 segments and all their translations, and requesting over 30 requests per seconds to one web service really is doing a lot of requests.

If you get a HTTP error code 429 Too Many requests it means that you are being hit by our rate-limiter. The only way to avoid this limit is by reducing the amount of requests you are doing to that endpoint. You can do that by implementing caching or by introducing a few milliseconds pause on the device performing the request. We limit requests by IP and by organization. If you cannot use caching nor can you pause the server doing these requests, are you using the correct API for this job? The File API for instance, lets you download all the segments of a file in one request.

Properly rate-limiting this API is essential. Having no rate-limit to this API results in a unreliable API and service in general.

If you need any help or have any issues with our API, don’t hesitate to contact us.

web_translate_it rubygem v2.4.11 released and DockerHub build

By Edouard on October 25, 2019

We released a new version of the web_translate_it gem, the open-source synchronization tool for Web Translate It.

wti synchronization tool

Our synchronization tool is very stable now, so we do very few releases. When we do, it’s mostly tiny bug fixes and features requested by our customers.

New Feature

There have been several releases since the last release announcement (for web_translate_it 2.4.0) on the blog.

We implemented one new features: the ability to move files with the wti mv source target command.

Here’s what is new since that version from the changelog

Version 2.4.11

  • New command: wti mv path/to/file.po newpath/to/file.po to move a language file both on your local working directory and on your WebTranslateIt project.

Version 2.4.9 / 2019-08-07

Version 2.4.8 / 2018-09-06

  • Update deprecated gem Trollop to Optimist.

Version 2.4.7 / 2018-03-28

  • Add an option to .wti file to silence SSL errors.

Version 2.4.6 / 2018-02-28

  • Fix SSL issue.

Version 2.4.5 / 2017-12-21

  • Fix issue pulling multiple files. #142

Version 2.4.4 / 2017-11-27

  • Fix issue on wti status command.

Version 2.4.3 / 2017-11-22

  • Clearer error message when no files to push. #136
  • New: ability to pull by file name and language. #133 Example: wti pull config/locales/app/* -l en
  • New: wti pull [filepath] now pulls files matching a glob match on the files hosted on (instead of relying on shell’s list of files which might not exist on the first pull). Close #137. This shouldn’t change existing commands but allows typing something like: wti pull config/locales/*/en.yml to download only the en files.
  • Fix: Report error messages when running commands such as:
    • wti rmlocale xxx
    • wti addlocale xxx
    • wti status #139

Version 2.4.2 / 2017-09-28

  • Fixed an issue where a file would not be created if its content was empty.

Version 2.4.1 / 2016-02-03

  • wti status now returns a status code when a project is not 100% translated or not 100% proofread. #127 Status codes are:
    • 100 if not 100% translated,
    • 101 if not 100% proofread,
    • 0 if project is 100% translated and proofread.
  • wti init now returns a successful status code. #126

Install or Upgrade

To install web_translate_it, please refer to the gem documentation.

To upgrade web_translate_it to its latest version, type in a terminal: gem install web_translate_it.

DockerHub build

We released a DockerHub build for our wti client tool. So you shouldn’t have to install the whole ruby stack if you want to use wti.

To use it, simply install Docker and run: docker pull webtranslateit/webtranslateit

New features on WebTranslateIt

By Edouard on October 16, 2019

Hi there!

We haven’t been updating this blog regularly lately, because we’ve been working on compliances and features that can’t be seen and on larger features that can’t be released yet. We’ve also been adding smaller, new features and bug fixes. Here are a few of these features and changes that we released recently. In a nutshell: updated payment gateway with SCA support and SEPA Direct Debit for our European customers, updated machine translation APIs, updated file handlers and a new Team and Project cleanup feature.

Newer payment workflow and new payment method (SEPA Direct Debit)

First came the RGPD, and now the SCA.

SCA is another big thing for European web companies. It requires web companies based in Europe to verify their European customer’s bank cards using 3D Secure in order to verify their consent for payment. This extra mandatory step in the payment workflow required us to rewrite most of our payment pages. I’d like to think it’s for the best, because we are now using the latest version of Stripe’s tools and also because it allowed us to support payments by SEPA Direct Debit easily.

If you are a European customer and would like to pay by card, just update your payment method in your organization settings, right under the “Payment Method” tab.

Upgraded Microsoft Azure Translator to v3

We also upgraded our Microsoft Azure Translate from v2 to v3. This change should be seamless and invisible for you, however it is great to know that you are now running on the latest version of the API.

Microsoft .resx files now supports plural forms

We constantly deploy bug fixes or small improvements to our language files handler based on our customer’s feedback. Most of these changes are too small to be detailed here, but we released something new on our Microsoft .resx/.resw file handler.

Our Microsoft .resx file handler can now handle plural forms. Although they are not officially supported, you can use plural forms by using an external library such as PluralNet or ReswPlus. You will find in our documentation an example of .resx file with a plural form.

Users and Team cleanup

WebTranslateIt is around since 10 years now. This means that some of our users are simply not active anymore. We now monitor our e-mail bounce rate and flag some e-mail addresses as not deliverable, so we don’t send so many e-mails to unreachable recipients again.

We thought that knowing if a user can receive messages and is still active is interesting data for project managers, too. So we now show this information on the Team page or Project Users page for managers.

Users whose work e-mail address bounces back have probably left your company and won’t collaborate on your project anymore.

deleting obsolete users

Note that invitations to join translation projects are already automatically cleaned up. Invitations that haven’t been accepted in 3 months are automatically deactivated.

Stickers anyone?

We ❤ our users, and we have some stickers for you if you want to grab them. Just let us know and we’ll send you a few sticky dogs with its jetpack on your way! 😃

I hope you will like all these changes. Don’t hesitate to get in touch with us if you have any questions, feedback or feature requests!

And don’t forget to follow us on Facebook, Twitter and LinkedIn.