GE

generate-translations

Generates localized translation files for PayloadCMS after adding new keys.

Install

mkdir -p .claude/skills/generate-translations && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4414" && unzip -o skill.zip -d .claude/skills/generate-translations && rm skill.zip

Installs to .claude/skills/generate-translations

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when new translation keys are added to packages to generate new translations strings
88 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Add English translations to core Payload packages
  • Add client keys for browser-side translations
  • Generate translations for all supported languages for core packages
  • Add English translations to plugin packages
  • Generate translations for all supported languages for plugin packages
  • Scaffold new translation folders for plugins

How it works

This skill uses OpenAI to translate new English keys into other languages, updating core and plugin translation files.

Inputs & outputs

You give it
New English translation key/value pairs in en.ts files
You get back
Translated strings in all supported language files

When to use generate-translations

  • Add translations for new core features
  • Generate plugin translation files
  • Sync client-side translation keys

About this skill

Translation Generation Guide

Payload has two separate translation systems:

  1. Core Translations - for core Payload packages (packages/ui, packages/payload, packages/next)
  2. Plugin Translations - for plugins (packages/plugin-*)

Table of Contents


1. Core Translations

When to use: Adding translations to core Payload packages (packages/ui, packages/payload, packages/next)

Steps:

  1. Add the English translation to packages/translations/src/languages/en.ts

    • Add your new key/value to the appropriate section (e.g., authentication, general, fields, etc.)
    • Use nested objects for organization
    • Example:
      export const enTranslations = {
        authentication: {
          // ... existing keys
          newFeature: 'New Feature Text',
        },
      }
      
  2. Add client key (if needed for client-side usage) to packages/translations/src/clientKeys.ts

    • Add the translation key path using colon notation
    • Example: 'authentication:newFeature'
    • Client keys are used for translations that need to be available in the browser
  3. Generate translations for all languages

    • Change directory: cd tools/scripts
    • Run: pnpm generateTranslations:core
    • This auto-translates your new English keys to all other supported languages

2. Plugin Translations

When to use: Adding translations to any plugin package (packages/plugin-*)

Steps:

  1. Verify plugin has translations folder

    • Check if packages/plugin-{name}/src/translations exists
    • If it doesn't exist, see "Scaffolding New Plugin Translations" below
  2. Add the English translation to the plugin's packages/plugin-{name}/src/translations/languages/en.ts

    • Plugin translations are namespaced under the plugin name
    • Example for plugin-multi-tenant:
      export const enTranslations = {
        'plugin-multi-tenant': {
          'new-feature-label': 'New Feature',
        },
      }
      
  3. Generate translations for all languages

    • Change directory: cd tools/scripts
    • Run the plugin-specific script: pnpm generateTranslations:plugin-{name}
    • Examples:
      • pnpm generateTranslations:plugin-multi-tenant
      • pnpm generateTranslations:plugin-ecommerce
      • pnpm generateTranslations:plugin-import-export

Scaffolding New Plugin Translations

If a plugin doesn't have a translations folder yet, ask the user if they want to scaffold one.

Structure to create:

packages/plugin-{name}/src/translations/
├── index.ts
├── types.ts
└── languages/
    ├── en.ts
    ├── es.ts
    └── ... (all other language files)

Files to create:

  1. types.ts - Define the plugin's translation types
  2. index.ts - Export all translations and re-export types
  3. languages/en.ts - English translations (the source for generation)
  4. languages/*.ts - Other language files (initially empty, will be generated)

Generation script to create:

  1. Create tools/scripts/src/generateTranslations/plugin-{name}.ts

    • Use plugin-multi-tenant.ts as a template
    • Update the import paths to point to the new plugin
    • Update the targetFolder path
  2. Add script to tools/scripts/package.json:

    "generateTranslations:plugin-{name}": "node --no-deprecation --import @swc-node/register/esm-register src/generateTranslations/plugin-{name}.ts"
    

Important Notes

  • All translation generation requires OPENAI_KEY environment variable to be set
  • The generation scripts use OpenAI to translate from English to other languages
  • Always add translations to English first - it's the source of truth
  • Core translations: Client keys are only needed for translations used in the browser/admin UI
  • Plugin translations: Automatically namespaced under the plugin name to avoid conflicts

Prerequisites

OPENAI_KEY environment variable

Limitations

  • Requires English as the source of truth for translations
  • Client keys are only for browser/admin UI translations
  • Plugin translations are automatically namespaced

How it compares

This automates translation generation using an AI model, unlike manual translation or using a different translation service.

Compared to similar skills

generate-translations side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
generate-translations (this skill)16moReviewBeginner
lokalise-core-workflow-a125dReviewBeginner
playwright-browser-automation297moReviewIntermediate
codex-skill125moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

lokalise-core-workflow-a

jeremylongshore

Execute Lokalise primary workflow: Upload source files and manage translation keys. Use when uploading translation files, creating/updating keys, or managing source strings in Lokalise projects. Trigger with phrases like "lokalise upload", "lokalise push keys", "lokalise source strings", "add translations to lokalise".

12

playwright-browser-automation

lackeyjb

Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.

29146

codex-skill

feiskyer

Use when user asks to leverage codex, gpt-5, or gpt-5.1 to implement something (usually implement a plan or feature designed by Claude). Provides non-interactive automation mode for hands-off task execution without approval prompts.

12110

bullmq-specialist

davila7

BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications. Use when: bullmq, bull queue, redis queue, background job, job queue.

2595

browser-tools

Whamp

Lightweight Chrome automation toolkit with shared configuration, JSON-first output, and six focused scripts for starting, navigating, inspecting, capturing, evaluating, and cleaning up browser sessions.

694

run-nx-generator

nrwl

Run Nx generators with prioritization for workspace-plugin generators. Use this when generating code, scaffolding new features, or automating repetitive tasks in the monorepo.

571

Search skills

Search the agent skills registry