# AI Translate

The AI Translate feature provides users with AI-powered translations. It introduces an intuitive interface for reviewing and managing AI-suggested translations directly within the document, ensuring content meets professional standards with minimal manual effort.

> **Unlock this feature with selected CKEditor Plans**
>
> Try all premium features – no credit card needed.
>
> [Sign up for a free trial ](https://portal.ckeditor.com/checkout?plan=free)[Select a Plan](https://ckeditor.com/pricing/)

<a id="demo">

## Demo

<!-- AI-AGENT-NOTE: An interactive demo is embedded here but is not represented in this Markdown file. If you need to see it in action, open this page in a browser (e.g. via a browser-automation MCP like Chrome DevTools or Playwright), or let the user know a live demo is available on this page. -->

This demo presents a limited set of AI features. Visit the [CKEditor AI overview](ckeditor-ai-overview.md#demo) to see more in action.

<a id="integration">

## Integration

To start using the Translate feature, first load the `AITranslate` plugin in your editor configuration. The translate button will appear in the AI user interface. [Learn more about installing and enabling AI features](ckeditor-ai-integration.md).

AI Translate runs across all roots of a multi-root editor and across all editors sharing a `Context`, translating the full document in a single pass. See the [AI in multi-root and multi-editor setups](ckeditor-ai-multi-root-multi-editor-support.md) guide for the integration details.

After choosing one of the available languages in the Translate tab, AI will analyze the document and propose a translation. While in the Translate Mode, the editor remains read-only and allows you to browse translation suggestions. Translation suggestions can be seen in the editor content, visualizing how a fully translated document will look:

While the Translate tab shows the original content for better context:

You can either click suggestions in the sidebar or select them in the editor content (underlined) to see which translation applies to which part of the original content:

You can accept translations by using the “Accept translation” button at the top of the user interface. You can also abandon the review by hitting the “Cancel” button.

<a id="languages-list">

## Languages list

The default list of languages includes several languages out-of-the-box: _English, Spanish, French, German, Chinese (Simplified), Japanese, Russian, Portuguese, Korean, and Italian_. The list can be [fully customized](#customizing-list-of-languages).

<a id="customizing-list-of-languages">

### Customizing list of languages

The [`config.ai.translate.languages`](../../api/module_ai_aitranslate_aitranslate-AITranslateConfig.md#member-languages) property allows you to provide a custom list of languages for the “Translate” feature. For instance, the following configuration will replace the default list with “German” and “French”:

```js
ClassicEditor
	.create( {
		ai: {
			translate: {
				languages: [
					{
						id: 'german',
						label: 'German'
					},
					{
						id: 'french',
						label: 'French'
					}
				]
			}
		}
	} )
	.then( ... )
	.catch( ... );
```

<a id="supported-languages">

### Supported languages

The AI Translate feature supports multiple languages with varying quality levels. The production-ready languages (_English, Spanish, French, German, Chinese (Simplified), Japanese, Russian, Portuguese, Korean, Italian_) offer the most reliable results for any-to-any translation pairs. Extended support is available for 40+ additional languages based on LLM provider capabilities, though quality may vary depending on the language pair and content complexity.

Translation quality is generally highest for _English-to-X_ or _X-to-English_ pairs, while any-to-any translation between non-English languages outside the production tier may produce less reliable results, particularly with specialized vocabulary.

[Contact us](https://ckeditor.com/contact/) if you need more specific translation capabilities.

<a id="context">

## Context

Translations can draw on a context from the [Context Library](ckeditor-ai-context-library.md) – a named container of reusable prompts, reference files, or both, kept on the AI service and referenced by its `id`.

<a id="default-context">

### Default context

Reference the context in [`config.ai.defaultContext`](../../api/module_ai_aiconfig-AIConfig.md#member-defaultContext) and target the `translate` feature. Set it to `true` to attach the context to every translation, or provide a `RegExp` to attach it to selected languages only:

```js
ClassicEditor
	.create( {
		/* ... */

		plugins: [ AITranslate, AIEditorIntegration, /* ... */ ],

		ai: {
			defaultContext: [
				// Applied to every translation.
				{
					id: 'glossary',
					features: {
						translate: true
					}
				},

				// Applied to German translations only.
				{
					id: 'glossary-de',
					features: {
						translate: /^german$/
					}
				}
			]
		}
	} )
	.then( /* ... */ )
	.catch( /* ... */ );
```

The `RegExp` is matched against the `id` of the target language, as declared in [`config.ai.translate.languages`](../../api/module_ai_aitranslate_aitranslate-AITranslateConfig.md#member-languages) or taken from the [default list](#languages-list). The attached context is invisible to the user, and the same reference is applied whether the translation starts from the translate panel or from [`startTranslate()`](../../api/module_ai_aitranslate_aitranslate-AITranslate.md#function-startTranslate).

[Learn more about the Context Library](ckeditor-ai-context-library.md), including the reference shapes and how to attach contexts to the other AI features.

<a id="common-api">

## Common API

<a id="rest-api">

### REST API

Translation is available via the REST API through two endpoints, depending on the scope of the content:

* **[Actions](../../../../cs/latest/guides/ckeditor-ai/actions.md)** – Best for translating short text sections. The `translate` action performs a single-pass translation of the provided content.
* **[Reviews](../../../../cs/latest/guides/ckeditor-ai/reviews.md)** – Best for full documents. The review-based translation ensures all text is translated, including parts that a single-pass action might miss in longer content.

See the [programmatic documentation](ckeditor-ai-programmatic.md) for examples and the [full API reference](https://ai.cke-cs.com).

---

Full index of the CKEditor 5 documentation: [llms.txt](../../../llms.txt)
