💻 App

⚡ Quick Translate

The core of JTranslate - Offering fast, accurate and reliable JSON translation.

Quick Translate

Quick Translate takes your source JSON and translates it to one or more target languages. Each translation creates a corresponding translation job where you can track the progress, view changes, and download both the resulting translated target languages, and the version of the source that was used at that point in time.

Source JSON

The source JSON is your base locale file. This is typically your app's native language, the one file that you update and keep on top of during development.

Quick Translate Types

There are two types of quick translation:

Stand-alone Quick Translations

This is the default translation type which happens when you start a translation from the Quick Translate page at jtranslate.dev/quick-translate. You upload your source file, pick your target languages, and start translating.

Limitations

Stand-alone Quick Translations will always translate the entire file every time, with no memory of relating translation jobs. That makes them great as an initial translation or for one-off jobs, but it isn't efficient or cost effective when thinking about on-going translation support against your source - for that we recommend translating inside a project.

Project Quick Translations

Project Quick translations are for when your source has been updated and your target languages now need bringing up to date.

Under the hood they're exactly the same as stand-alone Quick Translations but with some added benefits:

  • Change detection from last source upload - only translate the difference, not the entire file.
  • Saves translation jobs to the project history and links related jobs.
  • Translation jobs will now offer an "open in editor" on the changes tab, opening specific translations in that project's web editor.

Translation key cost calculation

Translation cost is based on the number of keys being translated. As a general rule of thumb, one JSON key (or string) equates to one translation key from your account.

If your strings are long (averaging over 75 characters per key in total), extra translation keys are added to account for the additional work.

It's worth acknowledging that it is entirely possible do a translation of a very long string that is for example, 1,000's of characters long, and it may still not consume any extra keys if the overall translation consists of many shorter keys.

This is because of a 'fairness threshold' we account for during every translation.

The fairness threshold is 75 characters per key. This means, for example, a translation of 10 keys (or strings) gives you a 750 character allowance (10 × 75), 100 keys = 7,500 characters, and so on. Extra keys are only added if your total character count exceeds this threshold. So translating in bulk is more cost effective than running a translation job for a single string.


Translation jobs

Each Quick Translate creates a corresponding translation job. Translation jobs run in the background using a FIFO queue system, meaning you can run multiple jobs at once. The language translations on a given job all run in parallel, making them relatively quick.

The job completes when all language translation processes either finish or fail.

Job lifecycle

  1. Queued - waiting for an available worker
  2. Processing - translation in progress
  3. Completed - all languages succeeded
  4. Partial - some languages succeeded, some failed
  5. Failed - all languages failed

If any part of a translation job fails, the failure is calculated and your failed keys will automatically be refunded.

Job lifespan

Jobs are stored for 90 days, before being automatically deleted. During that time, you can always revisit a job and download both the translated files and a snapshot of the source at that point in time.