Auto Translation Pro: Installation und Einrichtung


Installationsanleitung, Dokumentation und FAQs zum Shopware Plugin

Installationsanleitung

Erweiterung über den Erweiterungsbereich installieren.

Deinstallation: wichtige Reihenfolge

Nutzt du zusammen mit Auto Translation Pro weitere Erweiterungen aus der Reihe (Mehr Bereiche, Bulk, Mehr Bereiche Bulk, Lexikon oder Sprachpaket), halte bei der Deinstallation unbedingt diese Reihenfolge ein:

  1. Alle betroffenen Erweiterungen zuerst deaktivieren.
  2. Erst danach deinstallieren, und zwar die Zusatzerweiterungen (Mehr Bereiche, Bulk, Mehr Bereiche Bulk, Lexikon, Sprachpaket) vor dem Basis-Plugin Auto Translation Pro.
  3. Erst wenn alle Erweiterungen deaktiviert und deinstalliert sind, „kündigen und entfernen“ nutzen.

Wichtig zu wissen: Shopwares Funktion „kündigen und entfernen“ prüft nicht, ob eine Erweiterung noch aktiv ist, und löscht die Dateien trotzdem. Ist die Erweiterung dann noch installiert oder aktiv, kann der Shop danach im Frontend und Backend mit einem Fehler 500 ausfallen. Wenn du die Erweiterungen vorher in der oben genannten Reihenfolge deaktivierst und deinstallierst, passiert das nicht.

API Schlüssel

Google Translate API

  1. Gehe zu https://console.cloud.google.com/ .
  2. Erstelle mit deinem Account ein neues Projekt.
  3. Trage Namen des Projekts ein und klicke auf „erstellen“.
  4. Öffne das neue Projekt und gehe zu API & Dienste.
  5. Aktiviere API und Dienste.
  6. Suche in der Liste nach „Cloud Translation API“ und aktiviere es.
  7. Erstelle nun einen neuen Google Translate API Schlüssel über „Anmeldedaten erstellen“ und trage diesen in den Einstellungen der Shopware Erweiterung ein.

DeepL API

  1. Gehe zu https://www.deepl.com/en/login
  2. Erstelle einen Account oder logge dich ein.
  3. Gehe zum „API Keys & Limits“ Bereich
  4. Erstelle einen neuen „Schlüssel“ und kopiere den Schlüssel.
  5. Füge den Schlüssel in die Einstellungen der Shopware Erweiterung ein.
  6. Wir empfehlen die Kostenkontrolle zu aktivieren, damit im Falle eines unerwarteten Fehlers nicht unnötige Kosten anfallen.
Aktiviere die Kostenkontrolle und setze ein Limit für den APi Schlüssel

OpenAI API Schlüssel

  1. Gehe zu https://platform.openai.com/.
  2. Melde dich an.
  3. Erstelle ein neues Projekt.
  4. Gehe zu deinem Profil und gehe zum „API keys“ Bereich https://platform.openai.com/settings/organization/api-keys.
  5. Erstelle einen neuen API Schlüssel über „Create new secret key“.
  6. Lade Guthaben auf, damit die OpenAI API funktioniert. https://platform.openai.com/settings/organization/billing/overview
  7. Optional: Wir empfehlen, dass ein Limit für die Nutzung gesetzt wird, damit bei einem Fehler keine unnötigen Kosten entstehen https://platform.openai.com/settings/organization/limits
Erstellen eines neuen API Schlüssels

Mistral API Schlüssel

  • Gehe zu https://console.mistral.ai/
  • Account erstellen oder einloggen
  • API Key erstellen und in Shopware-Erweiterung eintragen
  • Guthaben aufladen
  • Hinweis: Europäischer Anbieter (DSGVO-konform)

Claude (Anthropic) API Schlüssel

  • Gehe zu https://console.anthropic.com/
  • Account erstellen oder einloggen
  • API Key erstellen und eintragen
  • Guthaben aufladen unter „Plans & Billing“
  • Optional: Nutzungslimit setzen unter „Usage Limits“

Google Gemini API Schlüssel

Einrichten der Erweiterung in Shopware

API Einstellungen

  • Google API-Schlüssel: Falls Google Translate genutzt werden soll, den Schlüssel hier eintragen
  • DeepL API-Schlüssel: Falls DeepL API-Schlüssel genutzt werden soll, den Schlüssel hier eintragen
  • OpenAI API-Schlüssel: Falls OpenAI API-Schlüssel genutzt werden soll, den Schlüssel hier eintragen
  • Mistral API-Schlüssel: Falls Mistral API-Schlüssel genutzt werden soll, den Schlüssel hier eintragen
  • Claude API-Schlüssel: Falls Claude API-Schlüssel genutzt werden soll, den Schlüssel hier eintragen
  • Gemini API-Schlüssel: Falls Gemini API-Schlüssel genutzt werden soll, den Schlüssel hier eintragen

Einstellen der Abonnenmentart von DeepL

DeepL bietet verschiedene API Abonnenmentarten an. Die für die Erweiterung zwei wichtigen sind:

  1. DeepL API Free, bietet bis zu 500.000 freie Zeichen im Monat
  2. DeepL API Pro, freie Zeichenanzahl, 20 EUR pro 1.000.000 Zeichen

Bitte beachten: die richtige Abonnementart muss ausgewählt passend zum DeepL API Plan.

Einstellung für die Übersetzung

Übersetzbare HTML Attribute, aktiviert die Übersetzung von z.B. Links oder Bilder.

Bilder und Element-Einstellungen aus der Ausgangssprache übernehmen

Ein Element einer Erlebniswelt (oder eines Kategorie-, Produkt- oder Landingpage-Layouts) besteht aus übersetzbaren Texten und aus nicht übersetzbaren Einstellungen: dem Bild, Links, der Ausrichtung, dem Anzeigemodus, der Mindesthöhe und weiteren. Shopware speichert beides je Sprache. Solange eine Zielsprache noch keine eigene Version des Elements hat, erbt sie alles live von der Ausgangssprache. Sobald das Plugin das Element einmal übersetzt hat, gibt es eine eigene Sprachversion, und Änderungen an Bild oder Einstellungen in der Ausgangssprache kommen dort nicht mehr automatisch an.

Im Bereich „Einstellung für die Übersetzung“ findest du dafür vier Optionen, je eine für Erlebniswelten, Kategorie-Layouts, Produkt-Layouts und Landingpages:

Bilder und andere nicht übersetzbare Element-Einstellungen aus der Ausgangssprache übernehmen

  • Aus (Standard): bisheriges Verhalten. Die Zielsprache behält ihre eigenen Bilder und Einstellungen. Richtig, wenn du je Sprache bewusst unterschiedliche Bilder pflegst, zum Beispiel bei Text im Bild.
  • An: bei jeder Übersetzung (Übersetzen, Alles übersetzen, Alle Sprachen, Konsole, Massenübersetzung) werden Bild und alle anderen nicht übersetzbaren Einstellungen der Elemente aus der Ausgangssprache in die Zielsprache übernommen. Bereits übersetzte Texte bleiben erhalten. Abweichend gepflegte Bilder in der Zielsprache werden dabei überschrieben.

Wichtig zu wissen

  • Es werden nie neue Sprachversionen angelegt. Ein Element, das in der Zielsprache noch erbt, erbt weiter, so bleibt die Vererbung von Shopware intakt.
  • Bei Erlebniswelten gilt das auch für Elemente, die gar keinen Text enthalten, zum Beispiel reine Bild-Elemente. Sie werden nicht übersetzt, sondern nur kopiert, ohne Kosten beim Übersetzungsdienst und ohne Eintrag im Übersetzungsprotokoll.
  • Als übersetzbar gelten die Textfelder, die das Plugin kennt: Überschriften, Texte, Button-Beschriftungen, Alt-Texte und weitere Felder der unterstützten Elemente. Ein Text-Feld eines unbekannten Drittanbieter-Elements zählt zu den Einstellungen und wird bei aktiver Option ebenfalls aus der Ausgangssprache übernommen. Bei solchen Elementen die Option testweise an einer Erlebniswelt prüfen.
  • Die Option wirkt beim nächsten Übersetzungslauf. Um bestehende Erlebniswelten nachzuziehen, einmal „Übersetzen“ beziehungsweise „Alle Sprachen“ auf der Erlebniswelt ausführen. Im Massenübersetzungs-Lauf (Bereich Erlebniswelten) werden reine Bild-Elemente immer nachgezogen, bereits übersetzte Text-Elemente nur mit dem Haken „Bereits übersetzte Elemente erneut übersetzen“.
  • Elemente, deren Feld in den Plugin-Einstellungen von der Übersetzung ausgeschlossen ist, bleiben auch von der Übernahme ausgeschlossen.

DeepL spezifische Einstellungen

  • Tonale Einstellung
    • Hier kann eingestellt werden, in welchem Ton DeepL die Übersetzung machen soll. Informell oder förmlicher Ton.
  • DeepL Übersetzungskontext
    • Hier können bestimmte Kontexte an DeepL übergeben werden, mit denen Übersetzt werden soll.
    • Beispiel: „Dies ist ein Text über Jagd, Jagdbekleidung und Jagdausrüstung“.
    • Dieser Kontext hilft beim Übersetzen Fachterminologie besser zu verstehen.

DeepL Übersetzungsmodell

In der Plugin-Konfiguration (Erweiterungen → Auto Translation Pro → Konfigurieren) findest du im DeepL-Bereich die neue Option DeepL Übersetzungsmodell mit zwei Werten:

  • Beste Qualität (Next-Gen, empfohlen) – verwendet die neuen DeepL-Next-Gen-Modelle (LLM-basiert) für höhere Übersetzungsqualität. Dies ist die Standardeinstellung.
  • Klassisch (schnell) – verwendet die bisherigen DeepL-Modelle. Etwas schnellere Antwortzeiten und unverändertes Verbrauchsverhalten beim Zeichen-Kontingent.

Wann welchen Wert wählen?

  • Next-Gen (Standard): in den meisten Fällen die beste Wahl. Bessere Übersetzungsqualität, kontextstärker.
  • Klassisch: wenn maximale Geschwindigkeit wichtiger ist als die letzte Qualitätsstufe oder wenn du beobachtest, dass die Quota schneller verbraucht wird als gewünscht.

DeepL Free: Wenn du den DeepL-Free-Plan nutzt und das Next-Gen-Modell auf deinem Endpunkt (noch) nicht unterstützt wird, fällt das Plugin automatisch auf das klassische Modell zurück. Es ist kein Eingreifen nötig – die Übersetzung läuft trotzdem durch. Du kannst die Option also gefahrlos auf der Standardeinstellung lassen.

Bestehende Installationen: Nach einem Update auf diese Version wird automatisch das Next-Gen-Modell verwendet, ohne dass du die Plugin-Konfiguration neu speichern musst.

Links übersetzen

Übersetzt einen Link auf der Seite und stellt fest, ob es einen alternativen Link in einer anderen Sprache im Verkaufskanal gibt.

Folgende benutzerdefinierte Felder werden bei der Übersetzung ignoriert

Eine Auswahl an Customfields, welche bei der Übersetzung ignoriert werden können.

Folgende Produktfelder werden bei der Übersetzung ignoriert

Hier findest du eine Auswahl an Produktfeldern, die bei der Übersetzung ignoriert werden können. Wähle keine Pflichtfelder wie „Name” aus. Aus technischen Gründen können Übersetzungen nicht mehr gespeichert werden, sobald diese Felder ausgewählt sind.

OpenAI spezifische Einstellungen

  • Temperatur
    • Steuert die Zufälligkeit: Niedrigere Werte (<0.5) machen Ausgaben fokussierter und deterministischer.
    • Höhere Werte (0.5-2.0) machen Ausgaben kreativer und vielfältiger.
    • Hinweis: wird in GTP-5 Modellen nicht unterstützt.
  • Optionaler zusätzlicher User Prompt
    • Zusätzliche Anweisungen zur Erweiterung des Übersetzungs-Prompts, leer lassen um Standard-Prompt zu verwenden.

Mistral spezifische Einstellungen

  • Modell: Mistral Large oder Mistral Small
  • Temperature: 0.0–2.0
  • Optionaler zusätzlicher User Prompt

Claude spezifische Einstellungen

  • Modell: Claude Opus 4 (stärkstes), Claude Sonnet 4 (balanciert), Claude Haiku 3.5 (schnell & günstig)
  • Temperature: 0.0–1.0 (Claude max. 1.0)
  • Optionaler zusätzlicher User Prompt

Gemini spezifische Einstellungen

  • Modell: Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.0 Flash
  • Temperature: 0.0–2.0
  • Optionaler zusätzlicher User Prompt

API- Anmeldeinformationen prüfen

Hier können die Oben eingetragenen API Schlüssel geprüft werden, nachdem diese gespeichert wurden.

Sprachen

Einstellungen -> Shop -> Sprachen

Wähle eine vorhandene Sprache oder erstelle eine neue Sprache.

Wähle einen Namen, erstelle die Lokalisierung und den ISO-Code der Sprache.

„Erben von“ – gibt an von welcher Sprache diese Sprache erbt.

Nach dem Speichern können die Übersetzungseinstellungen gemacht werden:

  1. API Wähle hier zwischen Google, DeepL, OpenAI, Mistral, Claude oder Gemini aus.
  2. Quellsprache gibt an, von welcher Sprache übersetzt wird. Hier sollte die Hauptsprache des Shops genommen werden.
    • Wenn du bei der Auswahl der Quellsprache eine andere Sprache als die Standardsprache einstellst, stelle sicher, dass alle Pflichtfelder ausgefüllt sind. Andernfalls können die Übersetzungen aus technischen Gründen nicht gespeichert werden.

Mit der Haupterweiterung ist nur Englisch verfügbar. Weitere Sprachen können mit dem Sprachpaket eingestellt werden.

Enthaltene Sprachen im Sprachpaket

Das Sprachpaket enthält 197 Sprachcodes. Hier findest du sie nach Kontinenten sortiert, jeweils mit dem Code, den du beim Einrichten der Sprache verwendest. Die Zuordnung richtet sich nach der Herkunftsregion der Sprache. Sprachen, die auf mehreren Kontinenten gesprochen werden, stehen nur einmal. Regionale Varianten (zum Beispiel Englisch USA) und alternative Codes (zum Beispiel iw für Hebräisch) zählen als eigene Codes.

Über OpenAI lassen sich alle diese Sprachen übersetzen.

Europa (63): Albanisch (sq), Aragonesisch (an), Baskisch (eu), Belarussisch (be), Bosnisch (bs), Bretonisch (br), Bulgarisch (bg), Deutsch (de), Dänisch (da), Englisch (en), Englisch (Großbritannien) (en-gb), Englisch (USA) (en-us), Estnisch (et), Finnisch (fi), Französisch (fr), Friesisch (fy), Färöisch (fo), Galicisch (gl), Griechisch (el), Irisch (ga), Isländisch (is), Italienisch (it), Jiddisch (yi), Katalanisch (ca), Kirchenslawisch (cu), Komi (kv), Kornisch (kw), Korsisch (co), Kroatisch (hr), Lettisch (lv), Limburgisch (li), Litauisch (lt), Luxemburgisch (lb), Maltesisch (mt), Manx (gv), Mazedonisch (mk), Niederländisch (nl), Nordsamisch (se), Norwegisch (no), Norwegisch (Bokmål Norwegen) (nb-no), Norwegisch (Bokmål) (nb), Norwegisch (Nynorsk) (nn), Okzitanisch (oc), Polnisch (pl), Portugiesisch (pt), Portugiesisch (Portugal) (pt-pt), Rumänisch (ro), Russisch (ru), Rätoromanisch (rm), Sardisch (sc), Schottisch-Gälisch (gd), Schwedisch (sv), Serbisch (sr), Slowakisch (sk), Slowenisch (sl), Spanisch (es), Tatarisch (tt), Tschechisch (cs), Tschuwaschisch (cv), Ukrainisch (uk), Ungarisch (hu), Walisisch (cy), Wallonisch (wa)

Asien (63): Abchasisch (ab), Arabisch (ar), Armenisch (hy), Aserbaidschanisch (az), Assamesisch (as), Awarisch (av), Baschkirisch (ba), Bengalisch (bn), Bihari (bh), Birmanisch (my), Cebuano (ceb), Chinesisch (zh), Chinesisch (China) (zh-cn), Chinesisch (Taiwan) (zh-tw), Chinesisch (traditionell) (zh-hant), Chinesisch (vereinfacht) (zh-hans), Dhivehi (dv), Dzongkha (dz), Georgisch (ka), Gujarati (gu), Hebräisch (he), Hebräisch (alter Code) (iw), Hindi (hi), Hmong (hmn), Indonesisch (id), Japanisch (ja), Javanisch (jw), Kannada (kn), Kasachisch (kk), Kaschmiri (ks), Khmer (km), Kirgisisch (ky), Koreanisch (ko), Kurdisch (ku), Laotisch (lo), Malaiisch (ms), Malayalam (ml), Marathi (mr), Mongolisch (mn), Nepalesisch (ne), Oriya (or), Ossetisch (os), Panjabi (pa), Paschtu (ps), Persisch (fa), Sindhi (sd), Singhalesisch (si), Sundanesisch (su), Tadschikisch (tg), Tagalog (tl), Tamil (ta), Telugu (te), Thai (th), Tibetisch (bo), Tschetschenisch (ce), Turkmenisch (tk), Türkisch (tr), Uigurisch (ug), Urdu (ur), Usbekisch (uz), Vietnamesisch (vi), Yi (ii), Zhuang (za)

Afrika (40): Afar (aa), Afrikaans (af), Akan (ak), Amharisch (am), Bambara (bm), Chichewa (ny), Ewe (ee), Fulfulde (ff), Hausa (ha), Herero (hz), Igbo (ig), Kanuri (kr), Kikongo (kg), Kikuyu (ki), Kinyarwanda (rw), Kirundi (rn), Kwanyama (kj), Lingala (ln), Luba-Katanga (lu), Luganda (lg), Madagassisch (mg), Ndonga (ng), Nord-Ndebele (nd), Oromo (om), Sango (sg), Sesotho (st), Setswana (tn), Shona (sn), Somali (so), Swahili (sw), Swati (ss), Süd-Ndebele (nr), Tigrinya (ti), Twi (tw), Venda (ve), Wolof (wo), Xhosa (xh), Xitsonga (ts), Yoruba (yo), Zulu (zu)

Nordamerika (inkl. Karibik und Arktis) (7): Cree (cr), Grönländisch (kl), Haitianisch (Kreol) (ht), Inuktitut (iu), Inupiaq (ik), Navajo (nv), Ojibwe (oj)

Südamerika (4): Aymara (ay), Guaraní (gn), Portugiesisch (Brasilien) (pt-br), Quechua (qu)

Ozeanien (11): Bislama (bi), Chamorro (ch), Fidschi (fj), Hawaiianisch (haw), Hiri Motu (ho), Marshallesisch (mh), Māori (mi), Nauruisch (na), Samoanisch (sm), Tahitianisch (ty), Tongaisch (to)

Historische und konstruierte Sprachen (9): Avestisch (ae), Esperanto (eo), Ido (io), Interlingua (ia), Latein (la), Occidental (ie), Pali (pi), Sanskrit (sa), Volapük (vo)

Nutzung der Erweiterung, ohne Bulk Erweiterung

Produkt

  1. Um ein Produkt zu übersetzen, öffne das Produkt in Kataloge->Produkte.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

Kategorien (Mehr Bereiche)

  1. Um eine Kategorie zu übersetzen, öffne die Kategorie in Kataloge->Kategorien.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

Hersteller (Mehr Bereiche)

  1. Um einen Hersteller zu übersetzen, öffne den Hersteller in Kataloge->Hersteller.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

E-Mail Vorlagen / Templates (Mehr Bereiche)

  1. Um eine E-Mail Vorlage zu übersetzen, öffne die E-Mail Vorlage in Einstellungen-> Shop->E-Mail-Templates.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

Dynamische Produktgruppen (Mehr Bereiche)

  1. Um eine dynamische Produktgruppen zu übersetzen, öffne die dynamische Produktgruppen in Kataloge->dynamische Produktgruppen.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

Erlebniswelten (Mehr Bereiche)

  1. Um eine Erlebniswelten zu übersetzen, öffne die Erlebniswelten in Inhalte->Erlebniswelten.
  2. Wechsel die Sprache in der Leiste oben zu der gewünschten Sprache.
  3. Wähle „Übersetzen“, im Dropdown kann eine der 4 Optionen ausgewählt werden:
    • Übersetzen (leere Felder)
    • Alles übersetzen
    • Übersetzen (leere Felder) -alle konfigurierten Sprachen
    • Alles übersetzen – alle konfigurierten Sprachen

Neben den Standard-Feldern werden auch Inhalte aus kompatiblen Drittanbieter-Erweiterungen automatisch mitübersetzt, z. B. die FAQ-Einträge (Titel und Text) im Akkordeon-Element von Moorl Foundation – auch wenn dieses in Kategorien oder Landingpages eingesetzt wird.

Nutzung der Erweiterung, mit der Bulk Erweiterung

Produkt

  1. Öffne das Bulk Menü unter Inhalte -> Biloba Translation Pro Bulk
  2. Wähle die Zielsprache
  3. Wähle den Bereich den du übersetzen möchtest, einige Bereiche sind nur mit der Mehr Bereiche Bulk Erweiterung verfügbar
  4. Jeder Bereich hat eigene Einstellungen, die meisten bieten folgende Punkte:
    • Übersetze nur aktive „…“: Wähle die Option um nur aktive Entitäten zu übersetzen.
    • Übersetze bereits übersetzte „…“: Wähle die Option wenn du die Übersetzung ein weiteres mal starten und alle „alten“ Entitäten und neue Entitäten nochmal übersetzen möchtest.
    • Nur leere Felder übersetzen: übersetzt nur leere Felder ähnlich wie in der „Einzelübersetzung“.

Automatische Übersetzung beim Speichern

Im Tab „Automatische Übersetzung“ der Bulk-Erweiterung kannst du die Übersetzung direkt beim Speichern eines Artikels auslösen, ganz ohne manuellen Übersetzungslauf über das Bulk-Menü. Die Funktion ist nach Installation bzw. Update standardmäßig deaktiviert und muss bewusst aktiviert werden.

  • Automatische Übersetzung beim Speichern: schaltet die Funktion ein oder aus (Standard: aus).
  • Zielsprachen: nur aus deinen konfigurierten Sprachen wählbar.
  • Bereiche: Artikel und Cross-Selling.
  • Nur leere Felder übersetzen: bestehende Übersetzungen werden beim automatischen Lauf nicht überschrieben.

Übersetzung per Konsole (Cronjob)

Neben der Bedienung im Admin lassen sich Übersetzungen auch über die Konsole starten, zum Beispiel per Cronjob. Alle Befehle rufst du im Shop-Verzeichnis mit bin/console auf (auf den meisten Servern als Webserver-Benutzer, z. B. sudo -u www-data php bin/console ...). bin/console <befehl> --help zeigt dir jeweils alle Optionen mit Beispielen.

Welche Bereiche kann ich übersetzen?

bin/console biloba:intl_translation:entities

Listet jede übersetzbare Entität mit ihren Feldern auf. Mit der Erweiterung „Mehr Bereiche“ kommen Kategorien, Hersteller, E-Mail-Vorlagen, Erlebniswelten und weitere automatisch dazu.

Welche Sprachen sind eingerichtet?

bin/console biloba:intl_translation:languages

Zeigt alle Shop-Sprachen mit ID, Locale, der unter Einstellungen -> Sprachen hinterlegten Übersetzungs-API und der Quellsprache. Nur Sprachen mit Konfiguration können Ziel einer Übersetzung sein. Mit der Option --providers siehst du zusätzlich, welche Sprache von welcher API unterstützt wird.

Einzelne Entität übersetzen

bin/console biloba:intl_translation:translate product 0189f1c0a3b57c5a9b2e6f3d4c8a1b2c --target en-GB
bin/console biloba:intl_translation:translate category 0189f1c0a3b57c5a9b2e6f3d4c8a1b2c --target de --target fr --all-fields
bin/console biloba:intl_translation:translate product 0189f1c0a3b57c5a9b2e6f3d4c8a1b2c --target all --dry-run
  • --target akzeptiert die Sprach-ID, den Locale-Code (de-DE), das ISO-Kürzel (de, nur wenn eindeutig) oder den Sprachnamen. all übersetzt in alle konfigurierten Sprachen. Mehrfachangabe ist erlaubt.
  • Standardmäßig werden nur leere Felder übersetzt, wie bei „Übersetzen (leere Felder)“ im Admin. Mit --all-fields überschreibst du auch vorhandene Übersetzungen.
  • --dry-run zeigt dir die Felder und Quelltexte, die gesendet würden, ohne die API aufzurufen. Praktisch zum Prüfen, bevor Kontingent verbraucht wird.
  • Textbausteine lassen sich nur über die Massenübersetzung übersetzen (siehe unten, benötigt die Bulk-Erweiterung).

Läufe aus der Konsole erscheinen im Übersetzungsprotokoll mit dem Initiator „BilobaIntlTranslation-CLI“.

Massenübersetzung per Konsole (mit der Bulk Erweiterung)

bin/console biloba:intl_translation:bulk product --target de-DE
bin/console biloba:intl_translation:bulk product category --target all --only-active
bin/console biloba:intl_translation:bulk product --target en-GB --category "Sommer" --all-fields
bin/console biloba:intl_translation:bulk all --target all --dry-run

Startet dieselbe Massenübersetzung wie das Bulk-Modul im Admin. Jeder Filter des Admin-Formulars hat eine passende Option:

Admin-FormularKonsole
BereichArgument(e), z. B. product category cms oder all
Zielsprache--target (ID, Locale, Kürzel, Name, all)
Nur aktive Elemente (Produkte, Kategorien)--only-active
Bereits übersetzte Elemente erneut übersetzen--already-translated
Nur leere Felder übersetzenStandard, --all-fields überschreibt vorhandene Übersetzungen
Varianten einbeziehen (nur Produkte)--include-variants
Kategorie (nur Produkte, inkl. Unterkategorien)--category <ID oder eindeutiger Name>

Welche Bereiche zur Verfügung stehen, hängt von den installierten Erweiterungen ab („Mehr Bereiche Bulk“, Blog und Lexikon bringen ihre Bereiche automatisch mit). Ein unbekannter Bereich listet dir die gültigen Namen auf. --dry-run zeigt pro Bereich und Sprache, wie viele Elemente in die Warteschlange kämen.

Wichtig, Message Worker: Der Befehl legt die Arbeit nur in die Shopware-Warteschlange, genau wie im Admin. Übersetzt wird vom Message Worker. Entweder läuft messenger:consume async low_priority dauerhaft als Dienst, oder der Cronjob ruft ihn direkt nach dem Bulk-Befehl auf:

*/30 * * * *  cd /pfad/zum/shop && flock -n /tmp/biloba-bulk.lock sh -c 'bin/console biloba:intl_translation:bulk product category --target all && bin/console messenger:consume async low_priority --time-limit=1500'

Läuft für einen Bereich und eine Sprache noch eine Massenübersetzung, überspringt der Befehl diese Kombination mit einem Hinweis (der Exit-Code bleibt 0). Überlappende Cronjob-Läufe stellen also nichts doppelt ein.

Varianten: Standardmäßig übersetzt die Massenübersetzung nur Hauptartikel. Varianten (Größen, Farben usw.) kommen erst mit der Option „Varianten einbeziehen“ dazu, im Admin als Checkbox, in der Konsole als --include-variants. Der Zähler über dem Start-Button zeigt vorab, wie viele Varianten einbezogen bzw. ausgeschlossen sind. Hintergrund: Ein Katalog mit 2500 Hauptartikeln hat schnell 12.000 Produktzeilen, und jede davon ist ein Aufruf bei der Übersetzungs-API. Varianten ohne eigene Texte erben in der Storefront ohnehin die Übersetzung des Hauptartikels.

Massenübersetzung abbrechen: Jeder laufende Auftrag in der Job-Übersicht hat den Button „Abbrechen“ (mit Rückfrage). Alle noch ausstehenden Übersetzungen des Auftrags werden verworfen, bereits übersetzte Einträge bleiben erhalten. Per Konsole geht es so:

bin/console biloba:intl_translation:bulk:cancel product --target de-DE
bin/console biloba:intl_translation:bulk:cancel all --target all

Eine Kombination ohne laufenden Auftrag wird als „not running“ gemeldet (kein Fehler). Nach dem Abbruch kannst du denselben Bereich sofort neu starten.

Nutzt du zusätzlich die Erweiterungen „Mehr Bereiche“ beziehungsweise „Mehr Bereiche Bulk“, stehen deren Bereiche automatisch auch in den Konsolenbefehlen des Haupt- und des Bulk-Plugins zur Verfügung, ohne zusätzliche Einrichtung.

Biloba Translation Pro Log

Unter Inhalte -> Translation Pro findest du ein Log für alle übersetzten Entitäten

Biloba Auto Translation Pro Lexikon

Unter Inhalte -> Biloba Translation Pro Dictionary können feste Wörter eingestellt werden, welche immer gleich übersetzt werden.

  1. Öffne das Dictionary Menü
  2. Öffne einen neuen „Wörterbucheintrag“
  3. Erstelle das Wort in der Systemhauptsprache
  4. Speichere den Eintrag
  5. Wechsle die Sprache und trage dort das feste Wort in dieser Sprache ein, in das übersetzt werden soll.

Native DeepL Glossar-Integration

Wörterbucheinträge werden ab sofort als native DeepL-Glossare synchronisiert und bei der Übersetzung direkt von DeepL verwendet. Das verbessert die Übersetzungsqualität, da DeepL die Begriffe im Sprachkontext korrekt einsetzen kann, anstatt sie nur unverändert zu übernehmen.

Neuer Button „DeepL Glossar synchronisieren“ in der Wörterbuchliste im Admin-Bereich. Damit werden alle Wörterbucheinträge als Glossare zu DeepL hochgeladen.

Wichtig: Nach jeder Änderung an Wörterbucheinträgen muss das Glossar manuell über den Button neu synchronisiert werden, damit die Änderungen bei DeepL wirksam werden.

Für Sprachpaare, die von DeepL-Glossaren nicht unterstützt werden, sowie für andere Übersetzungs-APIs (Google, OpenAI) greift weiterhin die bestehende Logik.

Voraussetzung: Auto Translation Pro (biloba/intl-translation) ab Version 4.9.0.

CSV Import/Export

Es ist möglich die Einträge auch per CSV Export / Import zu erstellen.

Um zu sehen, wie die CSV aussehen muss, erstelle die CSV als Export für einen Eintrag.

Die CSV-Datei muss mit Semikolons separiert sein. In der 1. Spalte muss der Wörterbucheintrag der Default-Sprache angelegt werden. In der 2. Spalte muss der Eintrag der Zielsprache stehen. Bestehende Einträge werden überschrieben.

Beispiel für Einträge in Englisch mit deutscher Hauptsprache

FAQs

App hochladen
Lade die App in der Administration unter Erweiterungen → Meine Erweiterungen hoch.

App installieren & aktivieren
Installiere die App und aktiviere sie anschließend.

Übersetzungsservice-ID hinterlegen
Öffne die App-Konfiguration und trage die benötigte Übersetzungsservice-ID ein.

Private Key anlegen
Erstelle einen Private Key für deinen bevorzugten Übersetzungsservice (empfohlen: DeepL).

Du benötigst das Entwickler-Paket, um einen DeepL-Key zu erhalten.
Verwendest du stattdessen einen Google-Translate-API-Key, füge ihn ebenfalls hier ein.

Key überprüfen
Prüfe in der App-Konfiguration, ob dein Private Key gültig ist.

Sprachen einrichten
Gehe zu Einstellungen → Shop → Sprachen.
Lege für jede zu übersetzende Sprache die Quellsprache und die gewünschte Übersetzungs-API fest.

Übersetzen
Sobald eine Sprache konfiguriert ist, kannst du sie direkt zum Übersetzen verwenden.

Wenn du das Plugin vor dem Kauf eines API-Keys ausprobieren möchtest, teste deinen Text hier:

DeepL Übersetzung
Google Übersetzer

Der Übersetzungs-Button befindet sich unter „Katalog/Produkte/ProduktX“ neben dem Abbrechen-Button.

Dieser Fehler kann auftreten, wenn die Datenbanktabelle während der Installation nicht korrekt erstellt wurde. Diese kann mit den folgenden SQL-Befehlen hinzugefügt werden.

1. Tabelle
CREATE TABLE IF NOT EXISTS biloba_intl_translation_log (
id BINARY(16) NOT NULL,
initiator VARCHAR(255) NOT NULL,
entity_id BINARY(16) NOT NULL,
target_language_id BINARY(16) NOT NULL,
entity_type VARCHAR(255) NOT NULL,
type VARCHAR(255) NOT NULL,
status VARCHAR(255) NOT NULL,
context JSON NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. Tabelle
CREATE TABLE IF NOT EXISTS biloba_intl_translation_config (
id BINARY(16) NOT NULL,
source_language_id BINARY(16),
target_language_id BINARY(16) NOT NULL,
translation_api VARCHAR(255) NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id),
CONSTRAINT fk.biloba_intl_translation_config.target_language_id FOREIGN KEY (target_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk.biloba_intl_translation_config.source_language_id FOREIGN KEY (source_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. Tabelle (MariaDB)

CREATE TABLE IF NOT EXISTS biloba_intl_translation_config (
id BINARY(16) NOT NULL,
source_language_id BINARY(16),
target_language_id BINARY(16) NOT NULL,
translation_api VARCHAR(255) NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id),
CONSTRAINT `fk.biloba_intl_translation_config.target_language_id` FOREIGN KEY (target_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk.biloba_intl_translation_config.source_language_id` FOREIGN KEY (source_language_id)
REFERENCES language (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

ODER:

CREATE TABLE IF NOT EXISTS biloba_intl_translation_config (
id BINARY(16) NOT NULL,
source_language_id BINARY(16),
target_language_id BINARY(16) NOT NULL,
translation_api VARCHAR(255) NOT NULL,
created_at DATETIME(3) NOT NULL,
updated_at DATETIME(3) NULL,
PRIMARY KEY (id),
CONSTRAINT fk_biloba_intl_translation_config_target_language_id
FOREIGN KEY (target_language_id)
REFERENCES language (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_biloba_intl_translation_config_source_language_id
FOREIGN KEY (source_language_id)
REFERENCES language (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Derzeit gibt es einen Fehler in Shopware, dass in der Datenbanktabelle für die Textbausteine der falsche ISO Code hinterlegt ist. Diese Einstellung kann nicht über den Adminbereich geändert werden, sondern muss direkt in der Datenbanktabelle snippet_set eingetragen werden. Bitte stellen Sie sicher, dass auch der ISO Code eingetragen ist, der für die Sprache in den Einstellungen unter Sprache hinterlegt ist.

Seit Shopware 6.6.10.5 können die ISO-Codes auch im Admin Bereich unter Einstellungen->Textbausteine angepasst werden.

Um den Übersetzungsbutton klickbar zu machen, müssen Sie die Sprache ganz normal im Backend anlegen und aktivieren. Dies entspricht der Standardprozedur in Shopware. Beachten Sie aber, dass die Sprache im Frontend erst sichtbar wird, wenn Sie diese einem Sales Channel zuweisen. So können Sie die Übersetzungsfunktion nutzen, ohne gleich die ganze Sprache öffentlich zugänglich zu machen.

Für die Erlebniswelten nutzt Shopware die folgende Vererbungs-Reihenfolge:

  1. Die Hauptsprache erbt von der Erlebniswelt.
  2. Die Neue Sprache erbt von der Hauptsprache.

Wenn nun Änderungen am Layoutbereich in der Hauptsprache vorgenommen werden, werden die Änderungen in der neuen Sprache übernommen, da die neue Sprache von der Hauptsprache erbt.

Wenn nun die Übersetzung gestartet wird, werden die übersetzbaren Elemente aus der Hauptshop-Sprache in die neue Sprache übernommen, welches die Textelemente sind. Die Bilder werden nun vom Original, der Erlebniswelt, übernommen, da die neue Sprache nun nicht mehr von der Hauptshop-Sprache erbt, sondern nun von der Erlebniswelt und die Bilder nicht „übersetzbar“ sind.

Shopware 6 hat aktuell einen Fehler, dass die Beispielbilder der Erlebniswelt nicht angezeigt werden, daher werden zur Zeit keine Bilder nach der Übersetzung angezeigt.

Die SEO URLs werden von Shopware aus dem Titel der Kategorie generiert. Dieser Teil wird von der Erweiterung nicht übersetzt.

Diese Links werden von unserer Erweiterung nicht als Links erkannt, da die Meta-Beschreibung nicht mit einem HTML-Editor bearbeitet werden kann.

Wenn diese Links nicht übersetzt werden sollen, besteht die Möglichkeit, einen neuen Eintrag in der Lexikon-Erweiterung zu erstellen und diesen Link in allen benötigten Sprachen einzutragen.

Die Übersetzungen der Erweiterung werden über den Shopware Scheduler im Hintergrund verarbeitet.

Dieser legt die einzelnen Übersetzungen mit Hilfe der Message Queue in der Datenbanktabelle „messenger_messages“ (Version 6.5 & 6.6) bzw. „enqueue“ (Version 6.4) ab. Dort kann auch kontrolliert werden, ob Einträge erzeugt werden. Sobald eine Übersetzung angestoßen wurde, kann also weitergearbeitet werden. In der Übersetzungsübersicht der Haupterweiterung wird angezeigt, ob Artikel bereits übersetzt wurden.

Damit der CLI-Worker auch läuft, wenn man nicht im Adminbereich eingeloggt ist, empfiehlt es sich, folgende von Shopware empfohlene Anpassungen vorzunehmen (CLI-Worker einrichten).

Die Übersetzungen werden über die Shopware Message Queue abgearbeitet. Um zu verhindern, dass ein Fehler seitens Shopware unnötige Kosten bei DeepL generiert, empfehlen wir, die Kostenkontrolle bei DeepL zu aktivieren.

Diese finden sich im DeepL Konto unter „Verbrauch“.

Wenn der Shopware-Log zu unübersichtlich ist, oder die Logs gerne getrennt sein sollten, kann in der monolog.yaml die Erweiterung um einen eigenen Log erweitert werden.

monolog:
    channels:
        - biloba_intl_translation
    handlers:
        biloba:
            type: rotating_file
            path: "%kernel.logs_dir%/biloba_%kernel.environment%.log"
            level: debug
            channels: ["biloba_intl_translation"]

In Translation Pro wählst du selbst, welchen KI-Dienst und welches Modell du für die Übersetzung nutzt. Die Kosten laufen dabei über deinen eigenen Zugang beim jeweiligen KI-Dienst, du zahlst also je nach gewähltem Modell direkt beim Anbieter.

Grundregel: Je neuer und größer das Modell, desto besser die Übersetzungsqualität, aber auch desto höher die Kosten pro Übersetzung. Bei Produkt- und Kategorietexten fällt der Qualitätsabstrich kleinerer Modelle in der Praxis meist gering aus. Als Orientierung dienen drei Stufen:

  • Beste Qualität: das aktuellste bzw. größte verfügbare Modell. Höchste Übersetzungsqualität, aber auch die höchsten Kosten.
  • Unsere Empfehlung (Preis-Leistung): eine Stufe unter dem Top-Modell. Für Produkt- und Kategorietexte in aller Regel völlig ausreichend und nur ein Bruchteil der Kosten der großen Modelle.
  • Maximal günstig: das kleinste Modell. In Ordnung für einfache, kurze Texte. Bei Fachbegriffen oder feineren Formulierungen kann die Qualität etwas nachlassen.

Am einfachsten testest du das an ein paar Produkten: Starte mit unserer Empfehlung (mittlere Stufe) und schau dir das Ergebnis an. Reicht dir die Qualität, bleibst du dabei. Brauchst du mehr Feinschliff, gehst du eine Stufe höher. Sehr alte Modellgenerationen solltest du meiden, da die Anbieter ältere Modelle mit der Zeit abschalten und ihre Qualität in der Regel unter den aktuellen Modellen derselben Preisklasse liegt.

Support

Bei Fragen oder Problemen stehen wir zur Verfügung: