Akbar on Development
Attaining the Impossibles
  • All Projects
  • Jack Sparrow Compass
  • Subtitles Translator
  • USB Disk Manager
  • Swift MVC Framework
  • TaskbarExt
  • Quick Chess
  • Basecamp Extension
  • Language Tools
  • Rapid Downloader

Subtitles Translator – FAQ

Here are some frequently asked questions for the Subtitles Translator. If you can’t find your answer here, please ask the question below and I will get back to you with a fix, workaround or answer reasonably soon.

Translation Quality

Q. Which of the translators (Google, OpenAI, Gemini, etc) is best for subtitle translation?

This is such a simple and basic question, but the answer, unfortunately, is not that straightforward. You can probably guess this because I’m already offering more than six translators on my website. If I knew which one is the “best” translator in all scenarios, I would have removed the rest of these already 🙂

At least part of the answer is comparatively easy. In the majority of cases, paid translators (DeepL, ChatGPT, Gemini, etc.) will do more natural, accurate and contextual subtitle translation. But then you can’t beat the free translators by price as these are Free!

When it comes to paid translators, especially the new LLMs (ChatGPT, Gemini, DeepSeek, etc.), answering this gets even more complex. As most of these engines also support “model” choices, whereas the newer (and more expensive) models promise to bring in more natural and context translations compared to the older ones. Another complication is the way these model works, as these can not only perform better or worse translation for some language pairs but vary greatly on blocks of text as well.

So, as an end-user, where does this leave you? I think the best answer is probably “Try it yourself!”. Nearly all the paid translators and their models, offer a demo/trial mode, where you can translate up to 50 lines free of charge. To try this out, you can upload a subtitle file, choose translator and select Translation Type as “Free”. You can then see which translator seems to work best for the language pairs of your choice.

As far as my input is concerned, I find the Gemini model to be the best for my native language translations. However, here is how the translation data of my website looks for the past three months:

Subtitle Translation Pie Chart:

OpenAI Chart-GPT: 44%
DeepL: 37%
Gemini: 17%
Azure: 1%

This tells us that OpenAI Chat-GPT models are the most popular option for translation on my website, followed closely by DeepL. While Gemini is not that far behind either. This is only part of the big picture here because translator quality varies by language-pair too. So DeepSeek or Gemini may be way superior for some language pair translations, however, most of the users on my website are not translating in those languages resulting in the lower usage count in the above graph. I probably need to show more usage data to share better overall statistics, but leaving this for another day.

I know that it’s not a clear or simple answer, but hopefully, this still leaves you in a slightly better position than before.

Q. I got a message that the translation was successful, but a few of line blocks are either not translated, empty or misaligned. What’s going on?

This is normally a problem when using LLM-based translators like OpenAI ChatGPT, Gemini, etc. I have rarely seen this problem in DeepL or Microsoft, but that’s probably not the best answer. Before I tell you how to best fix this, probably it would be better to first let you know what’s going wrong here in the first place.

As you may know a subtitles file has not only text (as displayed on screen), but sequence markers, timing information and many other styles meta-data. Now to get accurate, natural, and contextual translation, the subtitle file is not passed to the back-end translation engine as is. Instead, the translator performs a clean-up step first, where all this extra meta-data is stripped from the subtitles and only dialog texts is split into paragraphs of text – more like a story or novel. The translation on this type of next brings is more natural and contextual translation.

Now obviously, once the translation is done, we need to have some way to reverse map the translated text to the original meta-data. This, during the clean-up, the translator also embeds some XML position marker tags in the source text paragraphs. The translation prompt/instruction then used to pass this data to external models tells it not to touch/remove these position tags and keep these as is in the translated text.

However, due to the inbuilt randomness in the LLM engines and probably also based on the fact that what type of data these are trained on, rarely do these AI engines remove/delete these positional tags nevertheless from the translated text. Now when this happens, it makes it really hard for the reverse-mapper algorithm to calculate where to place/split translated, so based on how many and where the position tags were removed from the translated text, you see side effects like:

  • The line is not translated i.e. showing the source text
  • The translation line is blank/empty
  • Translation line or a block of lines are misaligned.

While I have experienced that newer AI translation models, like Gemini 2.0 or Chat-GPT 4o, are not only better in translation quality, but rarely remove these positional tags and thus don’t show these symptoms. But nevertheless, it happens from time to time. And probably is also the reason you are reading this section.

Now when this happens, and the automatic recovery algorithm also fails to correct this properly, the only workaround is for you to fix this manually. To facilitate and speed up this manual fixing process, I have developed the following two tools in the online editor:

With the help of these two tools, you can hopefully quickly fix translated subtitles, if only part of it got damaged. However, if the translation is totally rubbish and beyond quick repair. Please just report this back to me and I will issue a full refund for that translation order.

Translation Errors and Failures

Q. My translation failed with an error message like “Unfortunately, the translation process failed with the following error…“, and I was using the paid option. Can I please get my money back?

But, importantly, you are never charged for a failed translation with a server-side message like the above one. If you were paying using PayPal, there are good chances that the amount is never deducted from your account in the first place and you can confirm this by looking at the Transactions Activity directly in your PayPal account. The same is the case for the translations using Balance credits – the account is charged only after successful translations.

However, if that’s not the case and your money was still charged either from your PayPal or Balance account due to any failure, please report your order number or filename to me and I will try to get back and resolve this issue ASAP – with full refund in 99% of the cases.

Q. Translation failed with an error message like “This content doesn’t comply with OpenAI usage policies….“. But there is no sensitive content in the subtitles. Can this limit be removed?

Unfortunately, this error is from the OpenAI moderation API and is not under my control – I have slightly tweaked the default limits, but that’s it. It seems OpenAI is very strict, a bit too much to be honest, in what kind of content is processed through its engine. So, it sometimes may flag the content as violent even due to a single word or sentence in the subtitles.

Like, if your subtitles contain even a single threatening sentence, there are high chance that content will be flagged as “violent/threatening” and will be blocked.

When you run into this issue, there is no way to bypass it. You can either try to edit the subtitles to remove/rewrite the sensitive words. Which I can understand is very tricky and time-consuming. Another option is to use other translators like Gemini or DeepL which are comparatively more lenient in the moderation policies.

Feedback & Comments

No Responses

Comments are closed.