Skip to content
Server unreachable — reconnecting
[[ error ]]
Free engines are rate-limited right now. Add your own server or a free LibreTranslate key for unlimited speed. Get free key ↗
Favorites
Your text already looks like [[ (langs.find(function(l){return l.code===targetLang;}) || {name:targetLang}).name ]]
✓ [[ detectedLangText ]] · [[ detectedConfidence ]]%
[[ inputWordCount ]]w · [[ inputCharCount ]]c [[ inputCharCount ]]/[[ charactersLimit ]]
[[ outputWordCount ]]w · [[ translatedText.length ]]c
[[ chunkInfo ]]
Back-translation
[[ backSimilarity ]]% match [[ backSimilarity ]]% match [[ backSimilarity ]]% match
Line-by-line [[ linesRows.length ]] lines
[[ r.src ]]
[[ r.tgt ]]

Type multi-line text, then press “Translate lines” — each line is translated and shown side-by-side.

Alternative translations — click to use

[[ sentences ]] sentences [[ paragraphs ]] paragraphs ~[[ readingTime ]] read ~[[ speakingTime ]] speak [[ readabilityLabel ]] [[ longestWord ]] ✓ Palindrome
Text tools
[[ encodeResult ]]
|
Compare in other languages
Dictionary & synonyms
[[ def.word ]]
[[ d ]]
Synonyms
Related words
Daily word: [[ dailyWord ]] — [[ dailyWordTrans ]]
[[ acctStats.translations ]] translations [[ acctStats.wordsTranslated ]] words total [[ acctStats.streakDays ]]-day streak session [[ sessionTime ]]

Upload, drop or paste an image to extract text
JPG, PNG, WebP · processed locally in your browser

Uploaded image preview
[[ ocrStatus ]]

Drop a document here or click to browse
PDF, DOCX, TXT, XLSX, SRT · extracted locally in your browser

[[ docFile.name ]] [[ docText.length ]] chars
Advanced: translate a file natively (keeps original format)

Uses the server engine and preserves document layout.

Fetches the page and translates its visible text into [[ targetLangName || targetLang ]]. Some sites may block fetching.

[[ currentSubtitle ]]
Type text in the Text tab first
[[ sub.time ]] [[ sub.text ]]
[[ (langs.find(function(l){return l.code===effectiveSourceLang;}) || {name:'Auto'}).name ]] → [[ (langs.find(function(l){return l.code===targetLang;}) || {name:targetLang}).name ]]

Chat-style translation. Type in your language, Nevai replies in the target language — perfect for live conversations.

[[ (langs.find(function(l){return l.code===m.lang;}) || {name:m.lang}).name ]] [[ m.text ]]

Translation History

No saved translations yet.
Your translations are saved here automatically.

No matches found.

[[ item.sourceLang ]] → [[ item.targetLang ]]
[[ item.sourceText ]]
[[ item.translatedText ]]

Phrasebook

No saved phrases yet.
Save useful translations for quick reuse. Add from the translator with the + button.

[[ phrase.source ]]
[[ phrase.target ]]

Glossaries

No glossaries yet.
A glossary pins specific terms so they are always translated your way.

[[ g.entries.length ]] terms

No terms yet — click + to add source/translation pairs.

Active glossary: [[ activeGlossaryName ]]

Account

Connected to an external translation server — your history, glossaries and stats are saved privately on this device.

Usage statistics

[[ acctStats.translations ]]Translations
[[ acctStats.wordsTranslated ]]Words translated
[[ formatNumber(acctStats.charsTranslated) ]]Characters
[[ acctStats.sessions ]]Sessions
[[ acctStats.streakDays ]]Day streak
[[ acctStats.totalActiveDays ]]Active days
Last 28 days
Today: [[ todayWords ]] / [[ prefs.dailyGoal ]] words ✓ Goal reached

Preferences

[[ (accentPalettes[accent] && accentPalettes[accent].label) || accent ]]

Translation server

Translations run on free public engines by default (no account needed). Connect a Nevai/LibreTranslate server for full quality and unlimited speed. Current server:

[[ BaseUrl ]]

[[ apiServerStatus ]]

Tip: you can also pass a server via URL — ?api=https://server.example.com

API key

Use a key for higher limits and API access from other apps.

[[ apiKeyStatus ]]

Cloud sync (Matrix)

Save and restore ALL your data in your own Matrix account, on any homeserver.

[[ matrix.user_id ]]
[[ matrix.homeserver ]] · private room

Last backup: [[ matrix.syncLabel ]]

[[ matrixMsg ]]

Data controls

[[ importStatus ]]

Local storage used: [[ storageEstimate ]][[ (storagePercent).toFixed(1) ]]%

Danger zone

Everything Nevai Translate can do

Free and unlimited. Everything runs on your own server — no tracking, no accounts required.

No features match “[[ featuresSearch ]]”.

[[ group.title ]][[ group.items.length ]]

  • [[ f ]]
[[ toastMsg ]]