Lingvit

Native localization plugin for Payload CMS

Translate Payload CMS content seamlessly. @lingvit/payload integrates with Payload's localization engine to translate collections, globals, and Lexical rich text fields with zero friction.

What gets translated

  • Localized collection fields and global configurations
  • Lexical and Slate rich text editors
  • Blocks, arrays, and relationship fields
  • Before/after change hooks for automatic delta translation
  • Drafts and versions support
  • Admin UI translation button in collection editor
  • Fast concurrent processing with rate-limiting
  • Fail-open fallback behavior

Setup guide

  1. Install the Payload plugin

    Install @lingvit/payload via your preferred package manager.

    npm install @lingvit/payload
  2. Add to payload.config.ts

    Import and register the plugin in your Payload configuration.

    import { lingvitPlugin } from '@lingvit/payload';
    
    export default buildConfig({
      // ...
      plugins: [
        lingvitPlugin({
          projectKey: process.env.LINGVIT_PROJECT_KEY!,
        }),
      ],
    });
  3. Publish content in any locale

    Save or publish any document. Enabled locales are translated automatically in the background.

Frequently asked questions

Does it support Payload 3 on Next.js App Router?

Yes. The plugin is built with Payload 3 and Next.js App Router support in mind, as well as Payload 2 standalone servers.

How does it handle Lexical rich text?

The plugin parses Lexical AST nodes, translates text runs while preserving node formatting, links, and custom blocks.

Can I exclude certain collections or fields?

Yes. The plugin configuration accepts collection-level and field-level ignore rules.

Does it work with draft/published workflows?

Yes. Translated content can be saved as drafts until approved by your localization team.

Start translating your Payload CMS site

A monthly word generation allowance for new translations. Cached delivery uses no extra allowance.