symbion-payload
v0.1.0
Published
Symbion für Payload CMS 3 — KI-Übersetzung mit Translation Memory, SEO & Content-Tools über die Symbion Cloud
Maintainers
Readme
symbion-payload
Symbion für Payload CMS 3 — KI-Übersetzung mit Translation Memory (v1), SEO & Content-Tools (v2) über die Symbion Cloud. Dritter Symbion-Client nach WordPress und Shopware 6.
Status: Translation + SEO komplett, E2E gegen die Live-Cloud bestanden.
Funktionsweise: Das Plugin registriert pro aktivierter Collection zwei Sidebar-Panels
(„Symbion Übersetzung" und „Symbion SEO"), in der Media-Collection einen
Alt-Text-Generator, ein Settings-Global (Formalität, Modell, Glossar) sowie die Endpoints
unter /api/symbion/*:
| Endpoint | Funktion |
|---|---|
| POST /api/symbion/translate | Dokument in Ziel-Locale übersetzen (Draft bei Versions-Collections) |
| POST /api/symbion/seo/generate | Meta-Titel/-Beschreibung/Keywords aus dem Seiteninhalt |
| POST /api/symbion/seo/analyze | Deep-Analyse des gerenderten Frontends (Score 0–100 + Findings) |
| POST /api/symbion/seo/alt | Alt-Text per Vision-Modell (Bild geht als data:-URL — funktioniert auch lokal) |
| POST /api/symbion/seo/keywords | Keyword-Reality-Check (Markt- vs. Binnensprache) |
| GET /api/symbion/status | Diagnose + Feld-Mapping für die Panels |
Die SEO-Panels schreiben Vorschläge in den Form-State (Redakteur prüft und speichert);
per API (write: true, Default) landen sie direkt im Dokument. SEO-Optionen:
symbionPayload({
collections: ['pages'],
seo: {
titleField: 'metaTitle', // Feld für den Meta-Titel
descriptionField: 'metaDescription',
mediaCollection: 'media', // false = Alt-Text-Feature aus
altField: 'alt',
pagePath: (doc) => `/${doc.slug}`, // Frontend-Route für Analyse-URL
},
})Konzept & Architektur-Entscheidungen: DOCS/TECH/TECH-PAYLOAD-PLUGIN.md
Verwendung (Ziel-Bild)
// payload.config.ts
import { buildConfig } from 'payload'
import { symbionPayload } from 'symbion-payload'
export default buildConfig({
// Voraussetzung: localization mit den gewünschten Locales aktiviert
localization: {
locales: ['de', 'en'],
defaultLocale: 'de',
},
plugins: [
symbionPayload({
collections: ['pages', 'posts'],
}),
],
})| Env | Default | Zweck |
|---|---|---|
| SYMBION_LICENSE_KEY | — (Pflicht) | Symbion-Lizenz |
| SYMBION_API_URL | https://symbion.dev/api/v1 | Cloud-API |
| SYMBION_DOMAIN | Host aus config.serverURL | Domain-Verifikation der Lizenz |
Übersetzt werden nur Felder, die selbst oder über einen Vorfahren localized: true sind.
Opt-out pro Feld: custom: { symbion: { skip: true } } — das Feld wird nicht übersetzt,
sein Wert aber unverändert in die Ziel-Locale kopiert (für Anker, URL-Ziele, Codes).
Entwicklung
npm install
npm run check # Typecheck + Tests
npm run build # dist/ (ESM + d.ts)Vom Repo-Root: npm run payload:check.
