ASS subtitle translator
Translate ASS and SSA subtitles without breaking the typesetting
Upload one or more .ass or .ssa files, choose a language, and get the same files back with only the dialogue text translated. Styles, embedded fonts, positions and override tags such as {\pos} and {\fad} stay as they were, and karaoke lines are left alone unless you ask for them. The first part is free with no sign-up, and the whole job, an episode or a season of up to 30 files, is $5 as one payment. A chatbot can translate a few lines of ASS, but on a full episode it tends to stop partway and to drop, translate or move the tags inside the lines, and the script no longer renders the way it did.
- Up to 150 lines free in full, first part of longer files free, no account needed
- Whole job $5, one payment: an episode or a season of up to 30 files
- Only Dialogue text changes: [Script Info], styles, embedded fonts and Comment lines stay as they are
- Override tags never reach the model, so {\pos}, {\fad}, {\i1} and colors come back in place
- Karaoke and drawing lines left untouched, or karaoke translated if you choose
- 81 languages, translation only or bilingual, back as .ass or .ssa, SRT or VTT
What you get back
You get your files back in their own format, an .ass file as .ass and an .ssa file as .ssa, under the same name plus a language code, for example "[Group] Show - 01.es.ass". One file downloads as that file; several come as one ZIP. Before you download, every dialogue line is shown on screen with its time code and its tags, and you can edit any of them.
- The same script: [Script Info], the style section, [Fonts], Comment lines and the order of events are copied from your file.
- Layer, Style, Name, margins and Effect stay the same on every Dialogue line, and so do the start and end times. Only the Text field is translated.
- Tags inside a line are put back where they were. If the translation leaves no place for one, that tag block is added at the end of the line instead of being lost.
- \N line breaks and \h hard spaces kept. For Arabic, Persian, Hebrew and the other right-to-left targets, an invisible right-to-left mark after the leading tags and at the end of each line.
- SRT or VTT instead, if your player needs it: italics, bold, underline and a position such as {\an8} carry over; tags like \pos and \fad have no equivalent there and are left out.
Translating ASS subtitles with a chatbot, and with this tool
ChatGPT, Claude and Gemini handle dialogue well, including anime dialogue with honorifics and slang. The difficulty with an .ass file is everything around the dialogue: style definitions, comma-separated fields, and override tags written in the middle of sentences.
| Your situation | A chatbot | This tool |
|---|---|---|
| A few lines of dialogue copied out of the file | Usually translates them well | Translates them and writes them back into the script |
| A full episode, several hundred Dialogue lines | Tends to stop partway or ask you to say "continue" | Translates every line in blocks, up to 10,000 lines per job |
| Override tags such as {\pos(640,80)} or {\i1} in mid-sentence | May translate, move or drop them | Tags are swapped for placeholders before translation and put back afterwards |
| Styles, fonts and the [Script Info] header | Has to retype the whole file, so details can change | Copied from your file; only Dialogue text is touched |
| A karaoke opening with {\k} syllable timing | Translates the syllables and the timing stops matching the song | Leaves karaoke lines as they are unless you choose to translate them |
| A season of 12 or 24 episodes | One file per chat, and you keep track of what is done | Up to 30 files as one job, downloaded as one ZIP |
How to translate an ASS subtitle file
-
1
Upload your .ass or .ssa files
Drop in one episode or a whole season, choose the language you want, and pick translation only or bilingual. Decide what happens to karaoke lines: keep them as they are, or translate them. The source language is recognized from the text.
-
2
Check the first part free
The first block of dialogue appears on screen with its time codes and tags. Read it and edit anything in place. No account is needed for this step.
-
3
Unlock the rest and download
Happy with the first part? Unlock the whole job for $5, then download the files as .ass or .ssa, or as SRT or VTT.
Why ASS files trip up general AI assistants
An ASS script is not a list of sentences. Each line of dialogue is an event such as "Dialogue: 0,0:03:12.40,0:03:15.02,Default,,0,0,0,,{\an8}Text", with ten comma-separated fields, and the text itself often contains braces full of rendering instructions: a position, a fade, a color, a font change halfway through a word. Above the events sit the script header, the style definitions and sometimes whole fonts embedded as text.
To translate that in a chat, an assistant has to write the entire file back out. On an episode it tends to stop before the end, and along the way it may translate words inside the braces, drop a tag it does not recognize, or shift a comma so a field moves. Any of these changes how the line renders, and some break it completely.
This tool never asks a model to rewrite the file. It reads the script, takes only the Text of each Dialogue line, and keeps the tags out of the model: blocks at the start and end of a line stay aside, and blocks in the middle become numbered placeholders that are put back after translation. The text goes out in blocks of up to 60 lines, each line must come back under its own number, a missing line is asked for once more, and if it is still missing the original stays in place. Everything else in the file is copied as it was.
What is translated and what is left alone
- Translated: the text of every Dialogue line that has words, including signs and on-screen text typeset with \pos, \move or \frz
- Left alone: [Script Info], styles, [Fonts] and [Graphics] sections, Comment lines, actor names and the Effect field
- Left alone: drawing lines ({\p1} vector shapes) and lines with no words
- Left alone by default: karaoke lines with {\k}, {\kf} or {\ko} syllable timing, usually romaji song lyrics. Choose "Translate them" and the \k tags are removed, the line is translated, and it keeps its start and end time
- Bilingual option: the original line above the translation, in the same event, so both show with the same style and position
What people translate
- Fansub releases of anime, into a language the group does not cover
- A full cour of 12 or 24 episodes for friends or family who read another language
- Donghua and drama scripts typeset in Aegisub
- Their own subtitles for a video, shared in more languages with the styling kept
- Bilingual scripts for learning Japanese, Chinese or Korean while watching
Limits and getting a good result
Typesetting is kept, but it was made for the original words. A sign fitted tightly into a box or masked with \clip can overflow when the translation is longer, and copies of the same sign stacked on several layers are translated line by line, so check signs in the first part and fix any you need in the editor. The fonts named in your styles stay too; if they have no letters for your target language, such as Arabic or Chinese, the player may fall back to another font or show empty boxes, so change the Fontname in the style section if that happens.
Karaoke is recognized by its {\k} tags. Effects already generated by a karaoke template, one syllable per line, are not recognized as karaoke; translate the script before applying the template, or remove those lines first. Image-based subtitles (.sup, .sub with .idx) and video files are not supported, and the timings are not changed: if the script is out of sync with your copy of the video, the translation will be too.
It is machine translation, well suited to watching and sharing. For a release under your group's name, have a translator or editor read it.
By language and situation
Translate ASS subtitles to English
Found a fansub script in Spanish, Portuguese, Chinese or Indonesian for a show with no English release? Upload...
Read more →Translate ASS subtitles to Spanish
Upload an English, Japanese or other .ass or .ssa script and get it back in Spanish, with every style, font, p...
Read more →Translate ASS subtitles to Portuguese
Upload .ass or .ssa scripts and get the dialogue back in Portuguese inside the same files, with styles, embedd...
Read more →Translate ASS subtitles to Arabic
Upload .ass or .ssa scripts and get the dialogue in Arabic, inside the same files, with each line marked so pl...
Read more →Translate a whole anime season of ASS subtitles
Upload the .ass or .ssa scripts of a whole cour, 12 or 24 episodes, choose a language, and get every episode b...
Read more →What it costs
Short jobs, first part
Free
Files with up to 150 dialogue lines in total are free in full, downloads included. Longer jobs: the first block is shown on screen, no account. 1 job a day, or 3 a day with a free account.
Whole job
$5
One payment for every file in the job: up to 30 files and 10,000 lines. No subscription, never expires.
Unlimited
$19 / week
Every tool on the site, with subtitle jobs of up to 30,000 lines.
Questions and answers
Can ChatGPT translate an ASS subtitle file?
A few lines, yes, and the dialogue is usually translated well. On a whole episode a chatbot tends to stop partway, and it may translate, move or drop override tags such as {\pos} or {\fad}, which changes how lines render. This tool sends only the dialogue text, keeps the tags out of the model, and writes the translation back into your own file.
Will my styles and typesetting survive?
Yes. Styles, fonts, [Script Info], Comment lines and every field of each Dialogue line except the text are copied from your file, and tags inside the text are put back where they were. A translated sign can be longer than the original, so check signs that were fitted tightly.
What happens to karaoke lines?
By default, lines with {\k} syllable timing are not translated, so the song lyrics stay in sync with their effects. If you choose to translate them, the \k tags are removed and each line is translated as a whole, keeping its start and end time.
Which languages can it translate into?
There are 81 target languages, the same list as the subtitle translator, including English, Spanish, Portuguese (Brazil), Portuguese (Portugal), French, German, Arabic, Persian, Indonesian, Vietnamese, Chinese (Simplified), Chinese (Traditional), Korean and Russian. The source language is recognized from the text.
Is it free?
The first part of every job, up to 60 lines, is translated free and shown on screen, with no account. The whole job, with the files to download, is $5 paid once. Jobs with up to 150 dialogue lines in total are free in full, downloads included.
Can I download SRT or VTT instead of ASS?
Yes. Italics, bold, underline and a position such as {\an8} carry over to SRT and VTT. Other tags, such as \pos, \fad and colors, cannot be expressed in those formats and are left out, and drawing lines are dropped.
Does it handle Arabic, Persian and Hebrew?
Yes. For Arabic, Persian, Dari, Pashto, Kurdish (Sorani), Urdu, Sindhi, Punjabi (Shahmukhi) and Hebrew, each translated line gets an invisible right-to-left mark after its leading tags and at its end, so punctuation shows at the correct side. The file is saved as UTF-8 with a byte order mark.
Which files can I upload?
Advanced SubStation Alpha (.ass) and SubStation Alpha (.ssa) files, up to 10 MB each and 30 files per job, including scripts with embedded fonts. For .srt or .vtt files, use the subtitle translator. Image-based subtitles and video files are not supported.
Are my files private?
Only you can open your job. The dialogue text is sent to an AI model provider for the sole purpose of translating it, through routes that do not use your data for training. Jobs uploaded without an account are deleted after 7 days, and you can delete any job yourself at any time.
Updated October 25, 2026 · APPFACT STUDIO LTD