The WebTranslateIt Blog · Page 2

i18n news and Product Updates about WebTranslateIt · Page 2

2 ways to paste translation suggestions in WebTranslateIt

By Edouard · March 15, 2022

Do you use suggestions? Here is another trick for our power-translators out there.

When you click on a suggestion, the text in the text area is replaced by the suggestion. Did you know that if you hold the Ctrl key (Command key on a Mac) while clicking on the suggestion, the suggested text is inserted where your cursor is?

We also have a lot of keyboard shortcuts for power-translators out there. Just press the H key anywhere on WebTranslateIt to see them.

This is the fourth episode of our 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.

Do you find these tips and tricks useful? Let us know on Twitter @webtranslateit if you like this series of posts.

Related Posts

Check if you can translate your app with WebTranslateIt

By Edouard · March 10, 2022

Today we’re very happy to release an updated section to our documentation regarding File Formats.

We have been working several weeks on that update, and we internally find it quite useful, as it’s compiling information from all over internet about which language file formats can be used on which platform (meaning which software framework, programming language or ecosystem).

We also now have a new page showing our supported frameworks and programming languages.

Each programming language or framework page includes information about which language file format can be used on that platform, some links of interest including i18n libraries for that platform on GitHub, and some explanations on how to localize it.

Here for example is the page about Node.js, another one about Python, Laravel and Ruby on Rails.

As indicated on each page, let us know if you found an error or would like to submit a useful library for internationalizing a platform. We really value your feedback.

With that, thanks for reading!

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

Now is not the time to be neutral

By Estelle · March 8, 2022

As we all know, Western international institutions are taking severe economical measures in an attempt to paralyze Russia’s financial means and force them to back down and people from all over the world are donating money to charities helping out Ukrainians during this atrocious time.

Meanwhile in Russia, social networks are being censored by the government and independent journalists are being silenced by a draconian law adopted on the 4th of March that makes the publication of “false” or “mendacious” information about the Russian armed forces punishable by up to 15 years in prison. Russian people are being cut from the only access they had to unbiased sources of information about Russia’s raging war against Ukraine.

As a localization platform, we’ve always supported charity organizations that needed to reach out to a global audience by providing them our services for free. It is essential to global welfare that information regarding world poverty, conflicts, environmental matters circulate freely to raise awareness of what’s wrong in this world, who are the people trying to solve these issues and how the public can help out.
The thought of the Russian people losing access to essential information, information that should make them want to overthrow their leader, is unbearable.

From now on WebTranslateIt will donate to Reporters Without Borders the money earned every month with our Russian customers’ subscriptions, in the hope that they can support independent Russian media and convey the information the Russian people are entitled to.

Every gesture count. If you can, donate too.

The WebTranslateIt Crew

If you wish to learn more about Vladimir Putin’s motivation for launching an attack on Ukraine, here is an educational video made by Vox Media, an independent media group.

How to quickly add a term to the TermBase

By Edouard · March 1, 2022

Do you know the quickest way to add a term to your TermBase? Here’s a cool trick:

Select a word anywhere on WebTranslateIt’s translation interface. Click on “Add to TermBase”. The form will be pre-populated with your word. Then click on “Autocomplete” and we will deduce the part of speech (noun, verb, etc) and a definition.

This is the third episode of our 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.

Do you find these tips and tricks useful? Let us know on Twitter @webtranslateit if you like this series of posts.

Related Posts

Use a specific date in the filters

By Edouard · February 24, 2022

Do you use the Filters feature? Are you annoyed you can only select predefined dates, such as “added in the last 24 hours”, “last month”, etc?

This one is for power users. You can actually set any date by changing the parameter in the URL.

This is the second episode of our 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.

Do you find these tips and tricks useful? Let us know on Twitter @webtranslateit if you like this series of posts.

Related Post

Keep up with new features on WebTranslateIt

By Edouard · February 22, 2022

Hey guys!

We’ve released a bunch of new features on WebTranslateIt in the past few months and we have more to come.

We have realised that our users don’t always know about it, so we’ve just released a feature that let our users know when there is a new feature available to use right on the Dashboard.

If you’re not interested, you can always click on the “X” icon and the notification will close right down.

As always, don’t hesitate to let us know what you think at support@webtranslateit.com

Thanks!
Edouard

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

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

By Edouard · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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