# General Translation Integrations: Managing translations
URL: https://generaltranslation.com/en-GB/docs/integrations/payload/guides/managing-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: How to preserve Payload CMS edits, finish background runs, and resolve translation failures.

Keep editors&#39; changes when content is translated again, and control how incomplete runs resume. The plugin stores run state in Payload, so translation work is not tied to a single browser tab.

## Preserve local edits [#preserve-edits]

Editors can change a translated locale directly in Payload. Save those values to General Translation before a later run so that unchanged source text reuses the edited translation.

### Save edits before every run

1. Open a document&#39;s **Translations** drawer or the site-wide **Translations** page.
2. Turn on **Save local edits before translating**.
3. Start the translation.

The preference is off by default and is remembered for each Payload user. When it is enabled, the plugin saves known locale edits before it uploads the current source.

### Save edits without translating

Choose **Save local edits** to send the current locale values without starting a translation. This also creates a General Translation source version for content translated before the plugin was installed.

The action covers all supported target locales, not only the locales currently selected for translation.

<Callout type="warn">
  Saving local edits makes Payload the source of truth for that version. The values in Payload replace translations General Translation already holds. Review pending work before you save.
</Callout>

Text whose links no longer match the source cannot be saved. The plugin warns you when it leaves such text out; with **Save local edits before translating** enabled, it keeps those Payload values instead of replacing them.

## Finish background runs [#background-runs]

Translation runs continue after the tab that started them is closed. The plugin stores progress in Payload&#39;s `gt-translation-runs` collection and can finish a run in either of the following ways:

* The next signed-in user who opens the admin panel resumes any outstanding work.
* Payload&#39;s jobs queue finishes it immediately when `jobs.autoRun` is configured or a scheduler calls Payload&#39;s jobs endpoint.

Use Payload&#39;s [jobs queue](https://payloadcms.com/docs/jobs-queue/overview) when translations should finish without waiting for another admin visit.

## Publish translated content [#publish]

The plugin never publishes. It requests a draft save for collections and globals with drafts enabled, and writes directly only when the Payload config has no draft workflow.

Review and publish each locale using your existing Payload permissions and workflow.

## Resolve failures [#failures]

* **Sign-in required:** open the admin panel as an authenticated Payload user.
* **Permission denied:** ask for update access to the document. When translating a single document, access is checked before any work starts; in a site-wide run, documents you cannot edit fail and the rest are translated.
* **Usage limit reached:** upgrade your plan in **Organisation &gt; Plans** or add credits in **Organisation &gt; Settings &gt; Billing**, then retry.
* **Unsupported locale:** add a [`customMapping`](/docs/integrations/payload/reference/plugin-configuration#custom-mapping) or choose a supported locale code.
* **Some text was skipped:** review fields with changed links or malformed rich text. Successful fields and locales remain saved.

A failed document does not roll back other documents in a site-wide run.

## Next steps

- /docs/integrations/payload/guides/translating-content

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
