The WebTranslateIt Blog · Page 1

i18n news and Product Updates about WebTranslateIt · Page 1

Navigate Translation Suggestions with Keyboard Shortcuts

By Edouard on October 7, 2025

Speed is everything when you’re translating hundreds of segments. We’re thrilled to introduce a new keyboard navigation system that lets you select translation suggestions without ever touching your mouse.

What’s New?

You can now navigate through translation memory suggestions and machine translation results using arrow keys and apply them with a simple Enter press. This enhancement makes the translation workflow significantly faster for power users who prefer keyboard-driven interfaces.

How It Works

Opening a Segment

When you open a segment for translation (press Enter or click the edit icon), WebTranslateIt automatically loads suggestions from:

  • Your Project Translation Memory: Translations from your current and connected projects
  • Global Translation Memory: Over 24 million translations from the community
  • Machine Translation: Results from Google Translate, Microsoft Translator, DeepL, etc. (if configured)

Navigating Suggestions

Once suggestions load, you can navigate them using your keyboard:

  1. From the textarea: Press (Down arrow) when your cursor is at the end of the text
  2. First suggestion: Automatically highlighted and focused
  3. Move between suggestions: Use (Down) and (Up) arrows
  4. Apply suggestion: Press Enter to paste it into the translation field
  5. Return to textarea: The focus automatically returns to your translation

Visual Feedback

As you navigate with arrow keys, the currently selected suggestion is visually highlighted, making it easy to see which one you’re about to apply.

Complete Translation Keyboard Shortcuts

Here’s a refresher on all available keyboard shortcuts in the translation interface:

Navigation

  • or J — Select next segment
  • or K — Select previous segment
  • Enter — Open selected segment for editing
  • / — Focus on search field
  • H — Display keyboard shortcuts help

In an Open Segment

  • Esc — Close segment without saving
  • Tab — Save and move to next segment
  • Shift + Tab — Save and move to previous segment
  • Cmd/Ctrl + Enter — Save current translation
  • — Navigate to suggestions (when cursor at end of text)
  • / — Navigate between suggestions
  • Enter — Apply selected suggestion

Segment Actions

  • P — Mark segment as proofread
  • F — Flag segment as “to verify”
  • V — Copy source text to target
  • C — Open comments
  • D — Open segment details
  • I — View instructions
  • L — View all translations for segment
  • — Go to segment history
  • — Return to segment list

Real-World Example

Let’s say you’re translating a software interface from English to French:

  1. Navigate to the next untranslated segment with
  2. Open the segment with Enter
  3. The translation memory loads and shows several French suggestions
  4. Review suggestions using to scroll through them
  5. Select the best match with Enter to paste it
  6. Edit if needed (maybe just a small terminology adjustment)
  7. Save and continue with Tab to move to the next segment

All of this without touching your mouse!

Why This Matters

Speed

Keyboard navigation is significantly faster than mouse clicking. For professional translators working on large projects, this can mean:

  • 30-50% faster suggestion selection
  • Reduced context switching between keyboard and mouse
  • Better flow state during translation sessions

Ergonomics

Keeping your hands on the keyboard reduces repetitive strain from constantly moving between keyboard and mouse. This is especially important for translators who work long hours.

Precision

Sometimes with a mouse, you might accidentally click the wrong suggestion, especially when they’re visually similar. Keyboard navigation gives you precise control with clear visual feedback.

Translation Memory Reminder

Not familiar with WebTranslateIt’s Translation Memory? Here’s a quick overview:

Project Translation Memory learns from translations in your current project and connected projects. The more you translate, the better it gets.

Global Translation Memory contains over 24 million translations from projects that choose to contribute. You can opt in or out in your project settings.

Translation Memory automatically provides:

  • Complete Matches (100%): Exact matches from previous translations
  • Partial Matches: Similar segments with varying match percentages
  • Context awareness: Prioritizes suggestions from your own projects

You can adjust suggestion quality using the matching level selector at the bottom of the screen (4, 7, 10, or Complete Match).

Learn more in our Translation Memory Documentation.

Machine Translation Support

This keyboard navigation also works with machine translation suggestions! If you’ve configured machine translation engines (Google Translate, Microsoft Translator, DeepL, etc.), their results appear in the suggestions list alongside translation memory matches.

Navigate and apply them the same way—with arrow keys and Enter.

Pro Tips

  1. Combine with other shortcuts: Use V to copy source text, then to check suggestions, then Tab to save and continue
  2. Adjust match quality: Use higher quality settings (10 or Complete Match) to see only the best suggestions
  3. Learn the flow: Practice the rhythm of EnterEnterTab for maximum speed
  4. Use search: Press / to quickly jump to specific segments using keyword search

Getting Started

This feature is available immediately for all users on all plans. No configuration needed—just open the translation interface and start using arrow keys to navigate suggestions!

Press H in the translation interface to view all available keyboard shortcuts.

We’d Love Your Feedback

We’re constantly working to improve the translation experience. If you have ideas for additional keyboard shortcuts or workflow improvements, please let us know at support@webtranslateit.com.

Happy translating! ⌨️🚀


Additional Resources:

Filter Segments with OR Logic Using the Label API

By Edouard on October 3, 2025

We’re excited to announce a powerful enhancement to our API label filtering system that makes it easier than ever to work with segments across multiple categories.

What’s New?

You can now use OR logic when filtering segments by labels in the WebTranslateIt API. This means you can retrieve segments that match any of the specified labels, not just those that match all of them.

How It Works

The Syntax

Use the |[label1,label2,label3] syntax to filter segments with OR logic:

GET /api/projects/:project_api_key/strings.json?filters[label]=|[bug-fix,new-feature]

This returns all segments labeled with either “bug-fix” OR “new-feature”.

Real-World Example

Let’s say you’re managing a large localization project and you want to export all segments that need urgent attention. You’ve been using labels to categorize your work:

  • high-priority for critical segments
  • bug-fix for corrections
  • release-blocker for segments that must be translated before launch

Previously, you would need to make three separate API calls to fetch each category. Now, you can get them all in one request:

curl "https://webtranslateit.com/api/projects/YOUR_API_KEY/strings.json?filters[label]=|[high-priority,bug-fix,release-blocker]"

Complete Label Filtering Options

WebTranslateIt now supports three different label filtering modes:

1. Single Label Match (default)

filters[label]=urgent

Returns segments with the “urgent” label.

2. OR Logic (any of the labels)

filters[label]=|[label1,label2,label3]

Returns segments with any of the specified labels.

3. AND Logic (all of the labels)

filters[label]=[label1,label2,label3]

Returns segments with all of the specified labels.

4. Negative Matching (exclude a label)

filters[label]=!unwanted

Returns segments that do not have the “unwanted” label.

5. No Labels

filters[label]=none

Returns segments with no labels at all.

URL Encoding

Remember to URL-encode your labels when making API requests. Spaces should be encoded as + or %20, and special characters must be properly escaped:

filters[label]=|[new+feature,bug+fix,ui+improvement]

Use Cases

This feature is particularly useful for:

  • Batch exports: Download all segments from multiple related categories at once
  • Priority filtering: Combine different priority levels (critical, high, medium) in one query
  • Feature-based filtering: Get all segments related to multiple features (checkout, payments, shipping)
  • Status tracking: Filter by multiple workflow states (needs-review, needs-context, needs-screenshot)
  • Release management: Gather segments for multiple upcoming releases

Integration with Existing Workflows

This enhancement works seamlessly with all other API filters. You can combine OR logic with:

  • Status filters (filters[status]=to_translate)
  • File filters (filters[file]=123)
  • Category filters (filters[category]=mobile)
  • Date range filters (filters[created_at]=2025-10-01)
  • Type filters (filters[type]=string)

Example combining multiple filters:

curl "https://webtranslateit.com/api/projects/YOUR_API_KEY/strings.json?filters[label]=|[urgent,high-priority]&filters[status]=to_translate&filters[locale]=fr"

This returns all French segments that are untranslated and marked as either “urgent” OR “high-priority”.

Documentation

For complete API documentation, including all available filters and parameters, visit:

API String Documentation

You can also learn more about label filtering in our FAQ:

Searching for segments with multiple labels

Getting Started

This feature is available immediately in the API for all WebTranslateIt plans. No changes are required to your existing integrations—OR logic is a new syntax option that works alongside your current label filtering.

Try it out and let us know how it improves your workflow! If you have questions or feedback, reach out to us at support@webtranslateit.com.


Technical Details:

  • Label matching is case-sensitive
  • You can include as many labels as needed in the array
  • The feature is available in both the read-only and read-write API endpoints

wti v.3.0.0 released

By Edouard on September 20, 2023

We released the version 3.0.0 of our synchronization tool wti. This is mostly a code refactoring release and it removes one dependency. Here’s the changelog:

  • Remove dependency on multipart_post gem
  • Don’t rescue SSL Errors.
  • Move ArrayUtil#to_columns to StringUtil
  • Replace custom ArrayUtil#chunks with native ruby method each_slice
  • Autocorrect frozen strings comments offences

See the complete wti changelog.

The update to the gem is also available as a docker package, which is running the latest Alpine linux with ruby 3.2.2.

New in WebTranslateIt: Free Machine Translations

By Edouard on May 30, 2023

We’ve released an update to WebTranslateIt where all organization on the plans including Machine Translation (all plans excluding the Starter plan) get access to free machine translations using Google Translate or Bing Translator.

In your project settings you can now select if you want suggestions to run with Google Translate or Microsoft Translator. You won’t have to input your own API key anymore, we’re using our own API key and take care of the bill.

We hope you will like this improvement. Thank you for using WebTranslateIt!

Planned maintenance window on May 20th 2023, 07:00 CEST

By Edouard on May 19, 2023

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

We’re upgrading our servers to more powerful and energy saving hardware.

In order to do this upgrade we will need to be unavailable on Saturday, May 20th 2023, 07:00 CEST (Paris Time) as we migrate the data to our new servers. We expect the downtime to not exceed 2 hours. The website will be unavailable from Saturday, May 20th 2023, 07:00 CEST to Saturday, May 20th 2023, 09: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.

What’s new in WebTranslateIt — An October and November recap

By Edouard on November 15, 2022

Hi! I hope you’re having a productive week so far. We’ve been shipping several important updates to WebTranslateIt in the past month. We focussed our attention to code refactoring, improvements to existing features and performance improvements.

We have also released a new category on our blog: The Changelog, where you can see the nitty gritty details about the updates that we make. You can subscribe through the changelog’s atom feed. You can also read the changelog on the dashboard when you’re signed in. It’s a quick and easy way to keep you informed about our latest changes.

Here’s what has changed, by order of importance.

Faster Translation Suggestions

We’ve released an update to the Translation Suggestions system to make them load much faster. They are so fast actually, that we’ve simplified and removed all the loading system that used to work via background jobs. Enjoy a much better user experience when using translation suggestions.

More information: Faster Translation Suggestions

Faster File Updates

We released another round of improvements to our file generation system to make them much faster.

More information: Faster File Updates

Updated our YAML handler

Our YAML files are now generated with a new handler using libyaml. The file output will be different. Here is an example of the differences between our current YAMLer and the new YAMLer.

More information: Updated our YAML handler

Update to the word and character count system using Unicode’s text segmentation standard

This is a very deep change on how words and characters are counted in WebTranslateIt. The new system is more accurate, especially when counting words or characters in CJK language.

You can read more information:
- in our documentation about word counting
- or in the changelog entry.

Translation suggestions system improved

We improved the translation suggestions system for projects using Gettext PO files. Due to the nature of PO files, the source text is often blank and is populated by the key name, and this wasn’t picked up by the suggestions system. We updated our translation memory so that it also uses the text from the key names.

More information: Translation suggestions system improved

API Authentication Update

We’ve refactored how the API Authentication system works internally. The project and organization API keys are now prefixed with proj_readwrite and proj_readonly, for example. There is no need to update your integration.

More information: API Authentication Update

Project image charts updated

We replaced the charts system using the long deprecated Google Image Charts with one provided by quickcharts.io.

More information: Translation Charts Update

Removed low-priority import mode

It used to be possible to push a language file and set the import as a low priority. This was a nice thing to do in the early ages of WebTranslateIt when importing many files used to clog our import queue, but it doesn’t matter anymore so we removed that option and deprecated the command options on the wti client.

More information: Removed low-priority import mode

web_translate_it rubygem v2.7.0 released

By Edouard on October 25, 2022

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

This new version brings a few improvements:

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 Twitter, LinkedIn & Facebook for instant updates.

What’s new in WebTranslateIt? A 2022 Recap

By Edouard on October 11, 2022

We’ve been busy working on the app. Here’s an update of what we’ve been up to.

A large infrastructure update

We have spent a few months working on upgrading our app framework Ruby on Rails to the latest version 7. We also upgraded ruby to the latest version 3.1.

While doing so, we also worked on increasing our test code coverage. We also ran tools such as rubocop to standardize our code.

We also upgraded our translation serialization system which previously relied on a custom serializer using YAML to use native Postgres JSONB fields. It looks like nothing, but migrating close to 90 million translations took us over a week!

Overall these upgrades were a lot of work, but were worth it, as they helped us increase our software quality, standardize the way we write code and increased the website performance while lowering our resources usage.

We have replaced our Translation Memory engine

We have been using Sphinx Search for almost 10 years (we’re not getting any younger are we? 😳) and it has served us well. However our database server PostgreSQL now integrates a great full-text search engine, and it is easier to maintain it than having both PostgreSQL and Sphinx running side by side. So we simplified our stack and now use PostgreSQL to run our translation memory.

We have also set up a series of tests and benchmarks to maintain and improve the translation memory speed and relevance, and we will keep improving on it.

All our infrastructure and providers are now in the European Union & GDPR compliant 🇪🇺

We hired a GDPR specialist and revised our Data Processing Agreement and improved our GDPR support.

We were also advised to make some changes on the providers we use (namely Amazon S3 hosted in the US and Mailchimp) to use similar services hosted in the European Union. Our Amazon S3 assets are now hosted in Germany and our newsletter by MailJet. You can see a list of all our providers on our Privacy page.

We value our users’ privacy so we’re now proudly made and hosted in the EU, and we’re also Carbon Neutral since 2017.

New homepage

We have a new homepage! You can see it when you are signed out of WebTranslateIt. The new homepage uses a new responsive design and includes a lot of new illustrations.

Auto-Translate

We’ve released a new feature for the organisations on the Enterprise plan: Auto-Translate.

Auto-Translate is a feature that lets you use the translations hosted on the different projects on your organization and automatically apply them to your projects right when a new translation candidate appears.

For instance if you add segments to a project and some of these new segments’ text have already been translated elsewhere (on your project or on another project hosted on your organization) it will use the other translations and apply them to your new segments.

It also works if a translator translates a segment on a project and if another similar segment exists elsewhere on your organization: as the first segment gets translated, the similar segments will get translated automatically.

New versions of the wti CLI tool

We’ve released several versions of our synchronisation tool wti. The latest changes include compatibility with ruby 3.1 and we’ve just added a new subcommand wti status path/to/file to see the translation statistics about a file.

If you don’t know about wti, you should try it it’s a great command-line tool to easily sync your language files with WebTranslateIt.

We also now have a docker package for wti.

Update to the Translation Interface

We’ve updated the Translation Interface with a brand new search bar which integrates case-sensitive and regex search. We hope you like these changes.

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

New Organization API Endpoint: Delete a collaboration

By Edouard on September 29, 2022

Today we released a new API endpoint to delete a Collaboration.

A collaborator is a person working on your organization and projects. Deleting a collaboration does the following:

  • it removes the user from the organization,
  • it removes any project memberships,
  • it cancels any unaccepted invitations on your organization’s projects,
  • it removes any team memberships,
  • it cancels any unaccepted invitations on your organization’s teams.

So that person won’t be able to access anything on the organization.

I hope you will find this new feature helpful to manage your users. Thank you for using WebTranslateIt!

We’re deprecating JSONP support on our API

By Edouard on September 28, 2022

We’re removing JSONP support on all our API endpoints. JSONP (JSON with Padding) is a historical JavaScript technique for requesting data by loading a <script> element, and is ancient technology now.

It could be used to load data from our API using Javascript from another domain, by bypassing same-origin policy, which disallows running JavaScript code to read media DOM elements or XMLHttpRequest data fetched from outside the page’s originating site.

JSONP has been superseded with CORS in modern applications.

We’ve monitored our API usage over the past few days and nobody is using JSONP, so this deprecation shouldn’t impact anyone.

The character counter and character limits in WebTranslateIt

By Edouard on April 12, 2022

Do you translate? Do you know what the character counter is? Here is another trick for our power-translators out there.

When translating software, it is important to keep the size of the text your type as concise as possible, as it can cause size problems (text overflowing elements or going out of the viewport, etc). The character counter you can see at the bottom right of the translation text area gives you a soft warning when the text you typed in is more than twice as large as the size of the source text.

When translating size-constraint segments, the character counter gives you a hard warning that you went over the limit, and actually prevents you from saving your translation.

This is the sixth 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

How to filter segments by more than one label

By Edouard on March 29, 2022

Did you know you could filter segments by more than one label? Well you can. This trick is for power users.

In the Translation Interface, click on the first label you’d like to filter by. Then, go to the address bar and search for the label parameter. Replace the label name by square brackets [ ] and then type in the label names you want to search by separated by commas. You should have something like labels=[label1,label2].

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

web_translate_it rubygem v2.6.0 released

By Edouard on March 24, 2022

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

This new version brings a few improvements:

  • Better support for before_pull, after_pull, before_push, after_push hooks. They now display the command output, and write an error message if the exit status of the command was not successful.
  • Add ability to ignore files from pulls with a setting in the .wti file. It lets you ignore a specific file, or use a glob to ignore a series of files. Example: ignore_files: ['**/fr.yml', 'config/locales/js/*.yml', 'config/locales/app/fr.yml']
  • Remove silence_errors = true option that could be put in the configuration file, which was silencing SSL connexion errors. SSL is important, and if it isn’t properly configured, it needs to be fixed on your machine by updating your cert chain.
  • We have also updated our documentation to show how you should use wti to handle multiple projects.

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 Twitter, LinkedIn & Facebook for instant updates.

We’ll retire 4 obsolete file formats

By Edouard on March 18, 2022

We’ve had a look at the file formats we support and noted that 4 of them are now obsolete. In order to streamline our code we will retire these file formats on June 1st, 2022.

The obsolete file formats are:

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

2 ways to paste translation suggestions in WebTranslateIt

By Edouard on 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 on 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 on 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 on 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 on 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 on 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.