Web Scraper was translated into 50 languages with AI

martinsbalodis1 pts1 comments

How Web Scraper was translated into 50 languages with AI | Web Scraper

How Web Scraper was translated into 50 languages with AI

August 13, 2026

i18n

Originally, the Web Scraper extension was only available in English. English is only the third most spoken native language in the world, with 372 million native speakers, while Spanish has 487 million and Chinese has 988 million. To improve usability and reduce misuse, we decided to internationalize the Web Scraper extension. The initial plan was to use a SaaS, but in the end, everything was translated by AI.<br>Why is translating software important?<br>The Chrome extension developer dashboard provides information about user count per country. Using this information, we can calculate how many Web Scraper extension users there are per million people. In native English-speaking countries like the United States, the United Kingdom, and Australia, there are 350+ users per million people, while in countries like Italy and Japan, where English adoption is only 28%, the user count is 200 - 250. From our analysis, English adoption in a country correlates with the user count per million people. See the table below for more examples.

Country<br>Users per 1M population<br>English speaking %

United States37796%<br>United Kingdom36398%<br>Australia49791%<br>Sweden358.689%<br>China40.30.70%<br>India65.219%<br>Italy252.628%<br>Japan226.928%<br>Turkey106.015%<br>Germany198.556%<br>France586.825%

Initial SaaS approach<br>Initially, we decided to use a SaaS to perform the translations. We created scripts that would synchronize our string file with their system. There we could initialize languages and translate them via machine translation, AI, or hire human professionals. We started with Latvian, since it is the language our entire team speaks. Latvian is a lot more complex than English: a word can have a gender and up to seven different endings. In a sentence, this means that when multiple words are combined, they have to take specific endings or the sentence doesn't make any sense at all. The initial machine and AI translations were bad or inconsistent. Machine translation would mix up the word endings, and AI got them right only about half the time (at that point, we were using Opus 4.8). In the end, we decided to use human translators.<br>Example of Latvian language endings:

Grammatical case<br>Feminine singular<br>Feminine plural<br>Masculine singular<br>Masculine plural

Nominative (who/what)mājamājaszēnszēni<br>Genitive (of what)mājasmājuzēnazēnu<br>Dative (to whom)mājaimājāmzēnamzēniem<br>Accusative (whom)mājumājaszēnuzēnus<br>Instrumental (with whom)ar mājuar mājāmar zēnuar zēniem<br>Locative (where)mājāmājāszēnāzēnos<br>Vocative (addressing)māja!mājas!zēn!zēni!

SaaS AI setup<br>For AI, good context is sometimes what makes or breaks the result, and for i18n it is essential. We set up the context both to try out the AI feature and to remove any ambiguity for human translators, who still use AI and machine translation as a starting point. Here is what we set up:

Business description - a brief description of the product.

Tone - rules for how the user should be addressed. For example, avoid addressing the user as "you".

Word dictionary - descriptions for product-specific terms. For example, a scraper can be a web scraper or a tongue scraper; the dictionary clarifies which one is meant.

SaaS human professional translation<br>After everything was set up, we tested human translation for Latvian and German. The translator first translated the dictionary, then kept adding new words to it during the translation. When the translated strings came back and we started checking them, we found that while the translations were fluent, the tone was inconsistent, and there were some incorrect translations when an English word was ambiguous. As a result, we weren't 100% satisfied.<br>The switch to 100% AI<br>While we were testing professional human translation, a lot was happening in the AI world: the Fable model launched, and OpenRouter announced Fusion, which combines three models to score even higher on benchmarks than Fable. We had to try it. We didn't have access to this in the SaaS platform, so we built this setup locally. The AI translation was iterative work, where each step was redone because of new learnings or changes in previous steps. Here are the steps we performed, some of them multiple times.<br>Original English strings<br>While we were happy with our original strings, after creating the tone definition we tasked AI with reviewing them and suggesting better wording. It did, and we made a few changes.<br>String descriptions<br>When we first tested AI, there were a lot of ambiguous translations, so we added descriptions to the problematic strings. This steered the translations in the right direction. It was also essential to note when a string is a button label and should be kept as short as possible. For the final version, we tasked AI with going through the entire source code and adding a description for every string. After a manual review, about 10 out of...

scraper english translation translated million saas

Related Articles