The WebTranslateIt Blog · Page 2

i18n news and Product Updates about WebTranslateIt · Page 2

How to use case-sensitive search and regex search with the new search bar

By Edouard on February 17, 2022

Hey guys,

We’re starting a new series of posts with short, useful tips showing you how to use some of the most advanced features in WebTranslateIt that maybe you didn’t know existed. Please follow our blog and follow us on Twitter @webtranslateit if you like this series of posts.

Today I’d like to show you how to use our new search bar. It was introduced during the last design update and includes the case-sensitive search and regex search buttons right inside the search bar.

Case-sensitive Search

First, what does case-sensitive mean? It means that the search engine will differentiate between the search terms User and user, for instance. By default the search engine is case-insensitive, which means searching for user will give both segments having a key name or text containing the words User and user.

Let’s say you want to narrow the search results down to the ones matching User with a capital U, that’s when you’ll need the case sensitive search. Type the text you’d like to search for and click on the Aa button in the search bar. As you can see, it now only lists segments matching exactly User with a capital U.

Regex Search

Regex search is a feature dedicated to our power users. It lets you type in a regular expression. For instance ^user will match all the keys and text starting with the word “user”. It can also be combined with case-sensitive search so you can run case-sensitive regex search.

Just like the new case-sensitive search, type in a regular expression and click on the (.*) button.

I hope you like these updates. Don’t hesitate to give us feedback at support@webtranslateit.com or via @webtranslateit on Twitter. We’re happy to listen or help you with anything*.

* (anything related to software localization. Sadly we can’t do anything about the current pandemic or the world’s current financial volatility 🤓)

web_translate_it rubygem v2.5.3 released

By Edouard on February 17, 2022

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

This new version brings compatibility to ruby 3.1.

wti synchronization tool


Install or Upgrade

To install web_translate_it, please refer to the gem documentation.

As usual, upgrade web_translate_it to its latest version by typing in a terminal: gem install web_translate_it.

Follow us on Facebook, Twitter and LinkedIn for instant updates.

Update to the language file converter

By Edouard on February 16, 2022

We have been updating our free language file converter tool to now serve pages using HTTPS.

For those of you converting files using its API the server should redirect you from HTTP to HTTPS. If your code doesn’t follow redirects, you should change the code to use HTTPS instead of HTTP 😬

With that, thanks for reading and happy converting!

Follow us on Facebook, Twitter and LinkedIn for instant updates.

New in WebTranslateIt: Updates to our Translation Interface

By Edouard on February 14, 2022

Hey guys,

We’re excited to announce that we’ve updated our user interface! Our users on G2 felt that it was a bit dated and we agreed with that so we’ve made the design more modern and improved usability - and we’ll keep on improving it in the next few months, little by little, so that you can get accustomed to the changes.

You can see the previous version of the translation interface here.

We have also made our buttons and menus bigger and easier to read.

You can see the previous version of the filters and menu

One very new thing is the new search bar which now combines the buttons to perform a regex search and a case-sensitive search inside the search bar. It is also larger so you can see more when searching for longer strings of text. This make the interface look sleeker and frees up some space on the interface header.

If you want to do a case-sensitive search, just type the text to search and click on the Aa icon. Regex search works the same way.

The old search bar can be seen here

We hope you will like these changes. Thanks for using WebTranslateIt!

PS: If you use WebTranslateIt we’d like to see some honest reviews on the SaaS review platforms, like G2, SaaSHub and GetApp

Follow us on Facebook, Twitter and LinkedIn for instant updates.

Fixing up the jobs queue and releasing wti 2.5.0

By Edouard on November 15, 2021

Last week we released an important update to our queuing system. It makes updating your language files work faster and more consistently.

How updating language files work on WebTranslateIt

When a translation is made from the web interface, we don’t directly update the project’s language files. Updating files is a very resource intensive job (it requires thousands of SQL queries) and it would take too long to update the file directly when requesting to download the file. So instead files are pushed to a queue and then updated asynchronously.

We have this system in place since 2009 and it has served us very well. We now have a small army of workers (60 workers working off jobs about files and 20 workers working off jobs to fetch translation suggestions, etc.) and they have been working off over 400 million jobs since its inception. Not too bad!

Hitting the limits of the system

In the past few months, this system has shown its limits under heavy load, so much that it became our first point of failure. Failure means that files were sometimes not being updated in a timely fashion. We’ve tried to add more workers but it wasn’t doing anything.

The problem was due to a handful of large projects hosting very large files (containing over 20.000 segments per file) being translated and generating hundreds of long running jobs each minute.

Updating files for such projects is slow because it involves pulling thousands of segments from the database and generating very large files. It can take over 3 minutes to update such files, compared to a few seconds on a 4.000 segments file. So things quickly go out of hand.

To put things into perspective, 1 translation and 1 proofread on one of these files create two 3-minutes-long jobs. Imagine a team of translators working these files and you have a backlog of tens of thousands of jobs in queue. And since they are working the same file these are actually duplicated jobs! As these large project get translated these jobs pile up and and all our workers are all busy working off the large jobs, and no workers are available to work off other project’s jobs, and they pile up as well. How can we fix that?

How we fixed the queue

First, we focussed on making these jobs finish up quicker. We improved the code and these 3-minutes jobs now finish in about 45 seconds. Not a bad start. We deployed the changes and monitored the queue. We quickly noticed that while there was definitely an improvement, we were still experiencing the same issue of jobs piling up under heavy load. So, what else can we do to completely fix the issue?

We thought: “Could we rate-limit background jobs for these large projects? We could allow each file to be updated once per minute. Large projects wouldn’t even notice the difference and it would actually work better. And also: couldn’t we do it not only for large projects, but for everyone?”

So that’s the new Jobs architecture that we’re currently using. It works great so far. Whenever we need to update a file due to a translation or status change the system flags it as “to update” with an attribute on the File object. Then, each minute, a cron job runs, checks which files need to be updated and then pushes them to the queue. This way, a file is updated at most once per minute.

We immediately noticed that our jobs server load is now lower, the queue is almost always empty and there is never more than 1 minute of delays after a file update. This makes the system work more consistently for everyone.

wti 2.5.0

This update brings another sweet new features to files. Since we now know when the file was last updated (by a translation or a status change) and we also know when the file was last generated, we can now tell if the file we’re currently serving is stale or not.

We’ve updated our Project API to show if the files that are ready to be served are stale or fresh.

And we also updated our synchronization tool wti to make use of that feature.

If at the time you request a wti pull files are fresh, then no problem: you can download them right away. If they are stale, then the system lets you know by displaying a tiny * right next to the language file name. And now you should never have to wait longer than 1 minute with this new system.


We’ll continue to refine this system further and have other updates planned to our wti gem. With that, thanks for reading!

Planned maintenance window on November 13, 2021, 19:00 CEST

By Edouard on November 9, 2021

In order to maintain WebTranslateIt in good shape we will have to take the service down for a hardware maintenance and reorganization.

Our servers will have to be moved to a different rack in our datacenter.

In order to do this upgrade we will need to be unavailable on Saturday, November 13th 2021, 19:00 CEST (Paris Time) as the servers are being moved. We expect the downtime to not exceed 2 hours. The website will be unavailable from Saturday, November 13th 2021, 19:00 CEST to Saturday, November 13th 2021, 21:00 CEST.

I would like to sincerely apologize for this second planned downtime this year. We already had another planned downtime for maintenance last month and we strive to keep our service up as much as possible. Our hosting provider had a very bad planning and overbooked the rack we’re currently in, which requires us to physically move the servers to a different location in the datacenter in order to maintain our network performance.

Note that this hardware move will require us to change our IP addresses, but this shouldn’t change anything on your end.

As always, we’ll keep you updated on this blog post and we’ll also post live updates on @webtranslateit on Twitter.

Planned maintenance window on October 24, 2021, 19:00 CEST

By Edouard on October 22, 2021

In order to maintain WebTranslateIt’s service we will have to take the service down for a hardware maintenance.

One of our database memory module is defective and needs to be replaced.

In order to do this upgrade we will need to be unavailable on Sunday, October 24th 2021, 19:00 CEST (Paris Time) as the server is being repaired. We expect the downtime to not exceed 2 hours. The website will be unavailable from Sunday, October 24th 2021, 19:00 CEST to Sunday, October 25th 2021, 21:00 CEST.

As always, we’ll keep you updated on this blog post and we’ll also post live updates on @webtranslateit on Twitter.

We apologize for this planned downtime and for announcing it at such a short notice, but this is due to an unexpected hardware failure.

Edit 23/10/2021 at 15:08: On top of swapping the memory module, we will perform a full hardware check, which will increase the maintenance window to 30 minutes more. So the website will be down from Sunday, October 24th 2021, 19:00 CEST to Sunday, October 25th 2021, 21:30 CEST.
Edit 24/10/2021 at 20:46: We’re now back online. The faulty RAM module has been successfully changed. Network engineers still need to investigate a network issue which seems to be situated at switch level. Since the issue isn’t urgent and doesn’t require any downtime it will be investigated tomorrow during business hours.

New: Support for i18next v4

By Edouard on September 29, 2021

We’ve been updating WebTranslateIt so it now supports the newest version of i18next: version 4 😀

The new version of this library includes a breaking change to how plurals are handled. But I think this is for the best as they now use standard CLDR’s pluralisation format, and no unintelligible numbers. If you upgrade, please add a so-called magic comment featuring which version of i18next you are using in your JSON file, like so:

{
  "//": "i18next v4",
  "key": "value",
  "keyDeep": {
    "inner": "value"
  },
  "keyNesting": "reuse $t(keyDeep.inner)",
  "keyInterpolate": "replace this {{value}}",
  "keyInterpolateUnescaped": "replace this {{- value}}",
  "keyInterpolateWithFormatting": "replace this {{value, format}}",
  "keyContext_male": "the male variant",
  "keyContext_female": "the female variant",
  "keyPluralSimple_one": "the singular",
  "keyPluralSimple_other": "the plural",
  "keyPluralMultipleEgArabic_zero": "the plural form 0",
  "keyPluralMultipleEgArabic_one": "the plural form 1",
  "keyPluralMultipleEgArabic_two": "the plural form 2",
  "keyPluralMultipleEgArabic_few": "the plural form 3",
  "keyPluralMultipleEgArabic_many": "the plural form 4",
  "keyPluralMultipleEgArabic_other": "the plural form 5",
  "keyWithArrayValue": ["multipe", "things"],
  "keyWithObjectValue": { "valueA": "return this with valueB", "valueB": "more text" }
}

So, WebTranslateIt now supports i18next 1, 2, 3 and 4. Thank you for reading!

We’re hiring an experienced Ruby on Rails developer (remote) [Position Filled]

By Edouard on September 3, 2021

Hi there! We’re looking for a remote experienced full stack Ruby on Rails developer for constant long term work with at least 3+ years work experience. Ideally we’d like to start with you doing a few tasks as a freelancer and see how it goes from there.

About us

WebTranslateIt is a completely remote, bootstrapped, profitable SaaS company launched in 2009 and built with Ruby on Rails. Our software helps hundreds of software companies manage their translations in order to reach new markets. You can read more about our history here.

The team is small — in fact it’s only Estelle who does the administrative and financial part and I, Ed, working on software development (I’m also the founder and CEO). After more than 12 years working on WebTranslateIt’s code I am looking to step back from programming to give me time to steer and grow the company. The app is used by hundreds of companies all over the world.

The software is large and complex, but we designed it modular. For instance, all the language file parsing code (we support over 40 different file formats) is in a separate rubygem library. Same thing with the code to connect to the machine translation APIs, or with the code that verifies if a translation is semantically valid or not.

Our stack: Ruby on Rails, nginx, passenger enterprise edition, Postgres, delayed_job background workers and Sphinx search for full-text search. Our stack is running on 2 high performance bare metal servers (one server hosting our app and files, the other hosting our database).

Although our software has grown relatively complex over the years, I strongly believe on keeping software as simple as possible and I think that in software, boring is a feature. We’re running on a vanilla Ruby on Rails stack with a stock Postgresql database. We’re not looking for a developer who pushes us/fights us to use one of the latest technology fads which would make the software harder to maintain. Everything is a trade off. With technology advancing and processing power getting cheaper we’re looking at simplifying our software stack by removing dependencies. For instance, we’d love to be able to use Postgresql’s now built-in full text search instead of relying on Sphinx. Sphinx has been good on us, but it also adds a certain layer of complexity (indexes, re-indexes via background jobs, etc).

In clear, we’re not against using newer technologies, but we know every solution has its pros and cons, and one of the big pros for us is simplicity and maintainability. We’re looking for a developer having enough maturity and experience to be able to understand, respect and agree with that.

About you

The work will be done remotely but since we are looking for someone able to do some tech support you must be situated in an area between GMT-3 to GMT+3.

You must:

  • be proficient in English,
  • have 4+ years experience in Ruby on Rails,
  • be willing to learn,
  • know how to work with jQuery and Javascript
  • be independent, self-learner and have a can-do attitude
  • be courteous and respectful, especially with our customers.

Some of the tasks you will undertake:

  • upgrade the Ruby on Rails framework and dependencies,
  • upgrade the code to integrate some of Rails’s newest technologies,
  • fix bugs with our Stripe integration,
  • integrate a revamped homepage working with a designer,
  • answer technical customer support, file a ticket if there is a problem and fix the bug,
  • be on call every now and then (only once you’re proficient in the technical support and with financial compensation)
  • build a file parser for a new file format that we need to support

EDIT November 9th of 2021: This position has now been filled.

Why we’ve added Google ReCaptcha to WebTranslateIt

By Edouard on April 15, 2021

Hi there!

Just a quick post to announce that we’ve added a Google ReCaptcha on some of our pages. We know it sucks, but just let me explain why we installed Captcha and where, and which version of the Captcha we’ve installed.

Why we’ve added Google ReCaptcha

A few months ago we noticed a huge spike of spammers creating user accounts and spamming other users through the discussions feature. We don’t like people sending spammy e-mails on our behalf, and it didn’t want this to have an impact on our e-mail sending reputation, so we started banning these users, but hundreds of new ones were continuing creating accounts every day!

Since the past 10 years or so we used to use a honeypot (or negative captcha) which was working well, but nowadays it seems robots can figure it out, and some users started to have problems using the pages with the honeypot. As it turns out, new versions of Google Chrome now autofills the fields that are used for the honeypot. We were very reticent to using a solution like Google ReCaptcha, because it is annoying and invades privacy, but the situation left us with very little choice. If you have a better alternative don’t hesitate to let us know!

Where we have implemented Google ReCaptcha

We’ve implemented captcha on 3 pages: the sign up page, to fight against spammy accounts creation, the recover password page, to fight against spammy “I forgot my password” actions, and on the Support Request page, to fight against spammy support requests. The Google Captcha code is only included on these 3 pages. If you are browsing another page, your won’t be tracked by Google’s ReCaptcha servers.

Which version of ReCaptcha we’ve installed

Finally, there are different versions of Captcha. Some of them are a bit intrusive to user’s privacy, others are very intrusive to the user’s privacy. We installed the one with the least implications to our user’s privacy. We use the “v2 I’m not a robot” captcha and it the code is only installed where we absolutely need it (so, as we said, on the sign up, recover password and support request pages).

Again, don’t hesitate to let us know if you have other suggestions to improve this. Unfortunately this came out as a necessity to keep the website running.

How is it going

We’ve implemented Captcha a few months ago now and we thought it would be interesting to share how these protective measure have been working for us. Frankly, it has stopped most of the spammy accounts we created, but not all of it. We’re still surprised that some spammers spend time and money to create accounts on WebTranslateIt for advertising products, although we have very few public pages where these links would be displayed anyway.

So we still have a few spammy accounts getting created each day, and we delete them manually as a daily routine.

With that, thanks for reading!

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 CarbonFootprint.com

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 WebTranslateIt.com (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.

Have you heard about Metatogger and Echosync?

By Estelle on March 26, 2019

If there’s one thing we’re all interested in, it’s free software - especially when it comes with no ads. Metatogger and Echosync both meet these expectations. Developed and launched by Sylvain Rougeaux, legal expert during the day and amateur programmer at night, you can find them on the Lumisoft Software website.
Lumisoft/Luminescence Software is not a company nor an association, it doesn’t have any legal existence. It’s just a non-official brand Sylvain uses as a « home » for the software he develops. He’s just a private individual sharing his software programs for free.

We asked Sylvain, officially legal expert in IT law in a large French bank, to tell us more about his altruistic hobby.

WTI: When did you start developing Metatogger and Echosync and what motivated you to do it?
S.R.: I have started developing Metatogger in 2005 and Echosync (ex-SyncToVHD) in 2010, on my own. It was a long time ago now, time flies!
I am not a professional developer, I have learnt how to code by myself. I’ve always been in awe of the potential of computer engineering: I find programming self-rewarding - in the way that you don’t have to limit yourself to what others have created for you and can create something that really fits your own needs - and also fascinating because of the constant innovations in this field allowing you to keep improving things all the time.

WTI: Can you tell us what kind of software are Metatogger and Echosync and how did you come up with idea of creating them?
S.R.: Metatogger is a tag editor for audio files (Ogg Vorbis, FLAC, M4A (AAC et ALAC) and WMA). These tags or metadata allow you to manage substantial music collections more easily. The problem is that many audio files are not coming along with metadata, while others are having wrong, useless or inconsistent data. Sometimes, even the file name doesn’t reflect the true content of the file. It is then difficult to identify the piece without playing it. This is where Metatogger makes it great.
Metatogger allows you to fix or complete these tags. Here are a few of its features:
* edit tags manually or using C# scripts
* retrieve the tags from the file name or path
* rename files according to their tags
* look for potentially duplicate files
* order files according to their tags (copy, move, symbolic links)
* retrieve tags from a local database holding up to 1,5 million music albums
* recover album covers or lyrics from the internet
* identify files after analyzing their acoustic fingerprint
* quickly clean out unwanted tags

Echosync is a software that doesn’t require any installation and allows the differential synchronization of two directories.
This way, only the modifications that have happened since the last synchronization has passed on. Echosync uses an algorithm to detect files that have been renamed and/or moved around which allows not to delete and then copy all these files in the destination directory. Echosync can copy locked files and supports file paths of over 255 characters.

Partial synchronizations are possible, like for instance copying only new files but not the modified ones.

Many amateur programmers spend a lot of time and energy on making clones of existing software, keeping on reinventing the wheel. I wouldn’t have created these two programs if I hadn’t thought I wasn’t able to make something better than what was already available.
I wanted them to different: free of charge so that anybody could use them, with a simple interface, a user-friendly design (I think a lot of developers built software only meant for other developers) and reliable. I hope I’ve met these objectives!

WTI: Who is maintaining and developing Metatogger and Echosync now and have you ever thought of selling these programs?
S.R.: I’m still doing it on my own. I’m not making a living developing software, it’s my hobby. Anyway, I don’t think these two specific programs have any sufficient market potential. And not selling them gives me total freedom as I don’t have to meet market expectations, I develop only features I want to develop and I do it my way.

WTI: Metatogger and Echosync are already available in French and English, do you plan on having them translated into other languages?
S.R.: I’m the one taking care of their localization in French and English. Metatogger is also available in Italian, Spanish, German, Russian and Greek, thanks to users volunteering to translate it. The same users just offered to translate Echosync so it will soon be available in these languages as well.

WTI: In how many languages do you intend to translate the website and how could people help out with the translation?
S.R.: We’re currently covering 14 of the European languages: Croatian; English, Finnish, French, German, Hungarian, Italian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish plus Ukrainian - and we’d still need help for Bulgarian, Czech, Danish, Dutch, Estonian,  Greek,  Irish, Latvian, Lithuanian, and Maltese.

WTI: Can you tell us how WebTranslateIt is helping you out with the localization process?
S.R.: WebTranslateIt is perfect for localizing .NET software because it natively supports .resx files. Downloading and uploading datas extracted from these files onto WebTranslateIt is a very smooth process and the translated segments are directly usable with Visual Studio.
WebTranslateIt being an online software makes collaborating with a team of remote translators very easy. Each translator gets an automatic notification when a new segment has been added or modified on the platform, which insures the continuity of the localization with up-to-date translations ready to be deployed.

WTI: How do you finance the development and translation of Metatogger and Echosync?
S.R.: Since neither of them generates revenue, I have to be careful to keep the development and maintenance costs under control because I finance everything myself.
Most of costs come from hosting the Luminescence Software website and WPF graphic components from DevExpress. I do get a few donations through PayPal but it covers only a very small part of the global costs.
Nevertheless, I’ve managed to keep them manageable: I’ve obtained an important discount from DevExpress after I explained both my projects are non-profit and I use as much as possible open source libraries and websites offering their services for free to non-profit organizations, like WebTranslateIt. Thanks guys!

WTI: Are you looking for volunteers to help with the translation process?
S.R.: Always! It’s thanks to volunteer users that Metatogger is now available in other languages than French and English. And thanks to the same people, Echosync will soon be too, I’m really thankful to them!
Make Metatogger et Echosync available in their users’ native languages is one of my priorities, their accessibility really matters to me. So, any help is welcome, to reinforce the already existing translation team or offer translation in a language that is not yet available.

Want to help out? Don’s hesitate to get in touch with Sylvain.



Want more? Follow us on Facebook, Twitter and LinkedIn.

Planned maintenance window on March 24, 2019, 06:00 UTC+1

By Edouard on March 12, 2019

Hello there!

In order to improve WebTranslateIt’s performance we will do an important hardware upgrade to WebTranslateIt’s servers.

In order to do this upgrade we will need to be unavailable on Sunday, March 24th 2019, 06:00 UTC+1 as we move our database to a new server. We expect the downtime to not exceed 2 hours. The website will be unavailable from Sunday, March 24th 2019, 06:00 UTC+1 to Sunday, March 24th 2019, 08:00 UTC+1

As always, we’ll keep you updated on this blog post and we’ll also post live updates on @webtranslateit on Twitter.

We apologize for this planned downtime and we hope you will appreciate the performance improvements this will allow.

PS: For the nitty-gritty details, we’re moving WebTranslateIt out of a large, single server to two smaller, newer servers with loads of RAM (we’ll have more than 4 times the amount of RAM that we currently have). This will allow for more background workers, which means faster file imports and file generations and faster suggestions. We’ll still be hosted by Leaseweb in the Netherlands which have been amazing in the past 3 years.

Have you heard about the EuroLargeCarnivores project?

By Estelle on November 14, 2018

Today we’d like to bring into focus the EuroLargeCarnivores project which aims at improving our coexistence with large carnivores in Europe through communication, exchange of knowledge and cross-border cooperation.

We asked Raffael Hickisch, Project Manager at WWF Germany, to tell us more about it.

WTI: What is the EuroLargeCarnivores project exactly?
R.H.: EuroLargeCarnivores (ELC) is a project funded by the EU LIFE Programme. It aims at showing the impact of many projects on wolf, bear, lynx and wolverine that were implemented over the past decades.
As diverse as the landscapes are that large carnivores return to, as divergent are the reactions of local communities living there. A return evokes emotions ranging from fear to elation. Conflicts arise especially with stakeholders in traditional agriculture such as sheep herding, for whom it is vital to find practical solutions for coexistence.
The ELC project aims at providing a platform to gather and share knowledge on human-large carnivore coexistence among various stakeholders across the European Union, Switzerland and Ukraine. Topics like monitoring, human-wildlife conflict mitigation and prevention, the discussion of fears and safety concerns, herding practices, but also poaching, economic opportunities and investment requirements are the focus of this LIFE project.

The ELC project also provides visibility for scientific publications regarding large carnivores. We are currently testing certain conflict mitigation approaches in 10 testing sites across Europe and there is for instance a comprehensive discussion among scientists on which instruments work for protecting your livestock from being attacked by wolf - hence, we don’t expect that one size will fit all. We do however want to provide people with context relevant information that can actually help them understand what works for their situation - and at the same time inform the European Commission about the conclusion we gather over the project duration.

WTI: Who are the people who started the ELC project and what was their main motivation?
R.H.: It has mainly been launched by a network of WWF country offices, and coordinated by WWF Germany (who is also my employer), but also includes non-WWF partners. We are also looking for cooperation in countries and regions we are currently not active in.

WTI: How is the website for the ELC project maintained and developed? Do you rely only on volunteers?
R.H.: In the countries and focus regions that the project is working in, the work is done by our project partners - however, in other regions any suited body (e.g. national administrations) are welcome to contribute.

WTI: What is the aim of the website? Is it solely informative or is it a more interactive platform?
R.H.: The website mainly provides visibility for people that we work with, as well as at a later stage context sensitive information such as: If my livestock is attacked, whom should I reach out to in my country? We try to provide space for discussion, so that everyone can provide their perspective (and not only successful project managers) - however, we have some doubt that the people that live in remote areas actually use the Internet as much. Another main function of this website is to keep track of what we learn and make it directly accessible to the European Commission.

WTI: In how many languages do you intend to translate the website and how could people help out with the translation?
R.H.: We’re currently covering 14 of the European languages: Croatian; English, Finnish, French, German, Hungarian, Italian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish plus Ukrainian - and we’d still need help for Bulgarian, Czech, Danish, Dutch, Estonian,  Greek,  Irish, Latvian, Lithuanian, and Maltese.

WTI: Can you tell us how WebTranslateIt is helping you along the way?
R.H.: With a five year timeframe our budget for external assistance is limited, and we rather want to use this for on site activities, rather than for overhead, so WTI really came in handy. Also, the website content keeps evolving and WTI helps us to easily manage our team of volunteer translators and guarantee continuous translation.
The CMS (Pimcore) we use is directly pulling the translations from Webtranslateit - hence we now have the flexibility to finalise translations with different timelines for every partner, as it resonates with their time budget. Also it would be great if volunteers could help us out for the languages we do only have automatic translations for at the moment.

WTI: How do you finance the project?
R.H.: The project is largely funded by the EU LIFE Programme with the reference LIFE16 GIE/DE/000661. LIFE is the EU’s financial instrument supporting environmental and nature conservation projects throughout the EU.

WTI: Are you looking for volunteers in there any other fields related to the project (developing, content writing, editing, field workers…)?
R.H.: We are on the search for normal people’s experience with large carnivores, challenges and practical solutions - please share them with us via the take action function on our website, or by email.

Are you a translator and interested in helping out the EuroLargeCarnivores project reach out to as many people as possible? Get involved


Want more? Follow us on Facebook, Twitter and LinkedIn.

The Málaga Bike cycling team on the winner's podium

By Estelle on September 25, 2018

WebTranslateIt has started sponsoring Málaga Bike, a Málaga cycling team, a little bit more than a year ago and we are really proud to say that they have been doing really good this Summer in the Andalusian championships.

The team’s champions, Bruno Cuesta, Kini Muñoz Villodres and Victor Cardenas have been seen on the winner’s podium more than once and are breaking records!
Our dear Victor has been injured so couldn’t participate to all of the races and we wish him a prompt recovery.

One of the most sought after prices in Spanish competitions: the ham! At least that one is not gonna get all dusty on the mantel of your fireplace.

Congratulations to all of them, shall they keep up the good work!

Want more? Follow us on Facebook and Twitter

Better Support for i18next v1, v2 and v3 language files

By Edouard on September 12, 2018

We just released an improvement to our i18next support. If you don’t know it, i18next is a Javascript library to help internationalizing apps written in JavaScript.

Its file formats have changed quite a bit since its inception, with 3 versions which differ quite a bit for languages with complex plural forms. Up to today WebTranslateIt supported only the first version of the language files. We now support all of them.

Now, projects set up before the 10th of September 2018 will keep using i18next v1 by default. Projects set up after September 2018 are using i18next v3 by default. You can change the version of i18next you are using in the File Manager.

Click on “Rename/Details” to see the details of your language file.

And select which version of the i18next you’d like to use.

I hope you will find this improvement useful. Thank you for using WebTranslateIt and don’t forget to follow us on Facebook, Twitter and LinkedIn.