Guide
Multi-language screenshot OCR
Language data shapes how Tesseract reads screenshots in your browser. Pick the right language, wait for the first-load files, and crop mixed UI thoughtfully.
Updated September 11, 2026
Language is a setting, not a guess the engine always gets right
Screenshot OCR looks like magic until the wrong language pack is loaded. English models expect English letter frequencies and shapes. Feed them a Spanish screenshot and accuracy drops. Feed them Chinese UI with English selected and you get noise. The fix is almost always the language picker, not a harder crop.
Screenshot2Text runs Tesseract in the browser with language data fetched as needed. Every listed language uses the same local privacy model: recognition in your tab, ads separate from the file.
Below: what the picker does, what happens on first load, and how to handle screenshots that mix languages in one frame.
Language data nudges the engine toward characters and words that belong in that language. Without the right pack, confident wrong guesses fill the box.
What the language picker controls
Before you drop a file, choose the language that matches the text you care about. English is the default because many UI screenshots and error dialogs are English even when the device locale is not. Spanish, French, German, Portuguese, Italian, Dutch, Chinese (Simplified), Japanese, and Korean are available for matching screenshots and scans.
The picker loads the recognition data for that language. It does not translate. A French screenshot returns French text (as best the engine can read). It will not auto-translate into English. If you need translation, copy the output into a translator after OCR.
Pick the language of the body text when chrome and content disagree. A Japanese article inside an English browser window should use Japanese after you crop away the English chrome. Cropping still matters.
If you switch languages mid-session, the next drop uses the new pack. You do not need to reload the whole site. If a previous result is still in the box, clear or overwrite it so you do not mix outputs from two settings by accident.
First-load language files
The first time you use a language in a browser profile, Screenshot2Text may download that language's data files to your device. The OCR engine itself may also download on first use. These are public assets from a content delivery network. The requests do not include your screenshot or the text you produce.
On a slow network, wait for the download to finish before judging quality. Canceling mid-fetch or running offline without a cache can leave the reader unable to start. Reload once on a normal connection if nothing happens. Later runs in the same browser usually reuse the cache and start faster.
Corporate filters sometimes block WebAssembly or CDN hosts. If one language never loads while English works, the language file URL may be filtered. Try another network or browser, or use an approved offline package when policy is strict.
Clearing site data removes cached language files. The next recognition in that language downloads again. That is normal browser behavior, not a quota.
Shared family computers and locked-down profiles may block persistent cache. In that case every visit feels like a first load. Plan a minute for the download when you are on a slow link, especially for larger CJK data files.
What works well on screenshots
Printed UI fonts in a single language, sharp captures, and decent contrast work best. System dialogs, settings pages, chat bubbles, and slides are typical wins when the language matches.
Chinese, Japanese, and Korean screenshots need the matching language selected and enough resolution for complex glyphs. Tiny phone UI at default zoom is a common miss across all languages. Zoom the content, then capture.
Accented Latin languages (Spanish, French, German, Portuguese, Italian, Dutch) generally behave like English on clean screenshots when the right pack is loaded. Watch for missing accents when compression softens small diacritics. A PNG helps.
Handwriting, stylized display fonts, and vertical or curved text remain weak spots regardless of language. The engine is built around printed letterforms.
Screenshots of translated UI are still screenshots. If the app drew French strings, pick French. If you took a photo of a paper dictionary page, the same picker rule applies, but expect photo problems (skew, shadow) to dominate over language choice.
Mixed-language pages and UI chrome
Mixed frames are common: English buttons around a local-language article, or a terminal log with English keywords inside another language's commentary. Tesseract is happier when most of the crop matches one language pack.
Crop to a single-language region and run once per region with the matching picker setting. Merge the edited text yourself.
If the minority language is only chrome you do not need, crop it out and run the body language alone.
When you must keep both in one crop, pick the language of the denser text, then fix the other language's words by hand in the editable box. Do not expect perfect bilingual layout analysis from a single pass.
Emoji-heavy chat in any language adds colorful glyphs that are not useful prose. Crop them out when you only need the sentence. The language pack cannot turn stickers into clean paragraphs.
Code screenshots with English keywords and local comments follow the same idea. Crop comments separately if they matter.
Practical workflow
Open the homepage. Select the language. Drop a cropped PNG when you have one. Skim the output for script-specific mistakes. Copy or download .txt.
For PDFs, set the language before you rely on a long batch. The first page is a cheap test that the pack loaded and that the scan matches your choice.
If output is empty or nonsense, confirm the picker, confirm the first-load finished, then revisit crop and contrast. Wrong language is one of the fastest checks on the failure checklist in the "when browser OCR fails" guide.
Listed languages are part of the free tool. If a language you need is not listed, say so via Contact with the page URL and the language name. Do not email the file. Feature requests help prioritize without pretending every script is already perfect.
Until a language appears in the picker, do not assume a clever workaround with English will help. It usually will not. Use an offline pack that already includes that script, or wait until we add it.