Anleitung · WAWITranslator

WAWITranslator V2 – Anleitung für Fortgeschrittene

Steuerung über Parameter, JTL-Workflows und die Kommandozeile. Für die normale Bedienung siehe die Anleitung zur Konfiguration.

Stand:

⚠️ Nur für fortgeschrittene Anwender. Für die normale Bedienung siehe die Anleitung zur Konfiguration. Bei Fragen wende dich an unseren Support: support.falkcons.de.

Parameter

Der WAWITranslator wird über bis zu zehn Parameter gesteuert (Reihenfolge ist fest, jeder Wert durch ein Leerzeichen getrennt):

# Parameter Bedeutung
1 Typ Was übersetzt wird (siehe Tabelle „Übersetzungstypen“).
2 Key Interner Schlüssel des Datensatzes – 0 = Stapelverarbeitung (alle), > 0 = genau dieser Datensatz. Sonderwerte siehe unten.
3 Von Ausgangssprache (ISO2, z. B. DE). Auch Varianten wie EN-GB möglich (mit Bindestrich). Muss in der Wawi aktiv und von DeepL unterstützt sein.
4 Nach Zielsprache (ISO2). * = in alle in der Wawi aktiven Zielsprachen – bzw. in die dafür ausgewählten (siehe „Zielsprachen bei * einschränken“).
5 Modus 0 = nicht überschreiben · 1 = überschreiben · 2 = Versionierung (nur Typ 1, 2, 3, 5, 6, 50) · 3 = nur wenn Ziel kürzer.
6 Anzahl (opt.) Datensätze pro Batch (je Zielsprache). Standard 30 (CLI) bzw. 1 (GUI). Ab Version 2.7.0: 0 = alle passenden Datensätze.
7 Quell-Plattform (opt.) Standard 1.
8 Ziel-Plattform (opt.) Standard 1.
9 Quell-Shop (opt.) Standard 0.
10 Ziel-Shop (opt.) Standard 0.

📝 Hinweis zu Modus 2 (Versionierung): Übersetzt nur dann erneut, wenn sich der Quelltext seit der letzten Übersetzung geändert hat. Wirkt nur, wenn der WAWITranslator den Text mindestens einmal selbst übersetzt hat. Bei anderen Typen als 1, 2, 3, 5, 6, 50 wird der Wert 2 wie 0 behandelt.

Sonderwerte für Parameter 2 (Key)

Key Wirkung
0 Alle Datensätze (Stapelverarbeitung), begrenzt durch die Anzahl/Batchgröße.
> 0 Genau dieser Datensatz (z. B. interne Artikelnummer).
-1000 Hash-Initialisierung für den Typ + das Sprachpaar (markiert bestehende Zielübersetzungen als „aktuell“, damit Modus 2 sie nicht erneut übersetzt). Nur Typ 1, 2, 3, 4, 5, 6, 50.

📝 Probelauf (ab Version 2.8.0): Mit --dry-run bzw. translator.dryRun: true schreibt --key -1000 keine Hashes mehr – bis 2.7.0 tat es das trotz Probelauf. Das Log meldet je Zielsprache „Probelauf – Hash-Initialisierung übersprungen“.

⚠️ Wichtig (Änderung gegenüber älteren Versionen): Der frühere Wert key = -1 („alle noch nicht übersetzten“) wird nicht mehr verwendet. Um nur noch nicht übersetzte Datensätze zu übersetzen, nutze jetzt Key = 0 zusammen mit Modus 0 (nicht überschreiben).

Tabelle Übersetzungstypen

Typ Key (interner Schlüssel) Übersetzte Texte
1 Artikel tArtikel.kArtikel Name, Kurzbeschreibung, Beschreibung, Titel-Tag, Meta-Keywords, Meta-Description
2 Kategorien tKategorie.kKategorie Name, Beschreibung, Titel-Tag, Meta-Keywords, Meta-Description
3 Artikel (Vater-Kind) tArtikel.kArtikel Name; Kurz-/Langbeschreibung vom Vaterartikel kopiert; Titel-Tag, Meta-Keywords, Meta-Description
4 Alle Artikel im Kategoriebaum tKategorie.kKategorie Name, Kurzbeschreibung, Beschreibung, Titel-Tag, Meta-Keywords, Meta-Description
5 Artikel-URL tArtikel.kArtikel URL-Pfad
6 Kategorie-URL tKategorie.kKategorie URL-Pfad
10 Attribute tAttributSprache.kAttribut Attributname, Werteliste
11 Attributwerte (Artikel) tArtikel.kArtikel nur Textwerte
12 Attributwerte (Kategorie) tKategorie.kKategorie nur Textwerte
15 Attribute (anhand Artikel) tArtikel.kArtikel Attributname, Werteliste
20 Variationen tEigenschaftSprache.kEigenschaft Name
21 Variationswerte tEigenschaftWertSprache.kEigenschaftWert Name
25 Variationen (anhand Artikel) tArtikel.kArtikel Name
26 Variationswerte (anhand Artikel) tArtikel.kArtikel Name
30 Merkmale tMerkmal.kMerkmal Merkmalname
31 Merkmalwerte tArtikel.kArtikel Name, Beschreibung, Titel-Tag, Meta-Keywords, Meta-Description
35 Mediendateien tMediendateiSprache.kMedienDatei Name, Beschreibung
40 Konfigurationsgruppen tkonfiggruppe.kKonfiggruppe Name, Beschreibung
45 Cross-Selling-Gruppen tXSellGruppe.kXSellGruppe Name, Beschreibung
50 Hersteller tHersteller.kHersteller Beschreibung, Titel-Tag, Meta-Keywords, Meta-Description

📝 Hinweis: Attribut- und Merkmalwerte sind nicht artikelspezifisch, können aber ausgehend vom Artikel übersetzt werden. Es werden dann nur die am Artikel zugewiesenen Werte übersetzt; andere Artikel mit denselben Werten erhalten die Übersetzung automatisch mit.

Workflow anlegen (Übersetzung spezifischer Artikel)

In der WF-Verwaltung unter „Artikel → Artikel – Manuell“ einen neuen Workflow „Übersetzen“ anlegen:

  1. Ein Ereignis anlegen (Name frei wählbar, z. B. mit Sprachkürzel).
  2. Den Workflow auf die Wawi begrenzen.
  3. Ausführungsplan: „Sofort“ verlangt, dass der ausführende Benutzer an der Wawi auf dem Server angemeldet ist, auf dem der WAWITranslator läuft. Alternativ „Zeitversetzt“, damit der Worker den WF auf dem Server ausführt.
  4. Im Abschnitt Aktionen → „Ausführen“ wählen und bei Programm/Skript eintragen: start wawitranslator
    • „Kommandozeile benutzen“ ankreuzen.
    • Ausführungsverzeichnis: „Nicht ändern“.

Als Parameter z. B.:

1 {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }} DE EN-GB 0 30

⚠️ Wichtig: Zwischen jedem Parameter muss ein Leerzeichen stehen. In dieser Konfiguration läuft der WAWITranslator nur auf dem Server. Soll die Übersetzung auch im Netzwerk verfügbar sein, muss der Workflow zeitversetzt vom Worker ausgeführt werden.

Batchverarbeitung / Kommandozeile

Im Batch-Modus übersetzt der WAWITranslator im Hintergrund, ohne Workflow. Das eigentliche Programm ist WTS.exe im Ordner C:\ProgramData\WAWITranslator. Über den installierten Wrapper wawitranslator ist es aus jeder Shell aufrufbar.

Komplette Optionsliste:

cd C:\ProgramData\WAWITranslator
.\WTS.exe --help

Beispiele

Alle Artikel von Deutsch nach Englisch übersetzen (max. 60 pro Lauf):

.\WTS.exe 1 0 DE EN 0 60

Den Artikel mit ID 123 von Deutsch in alle aktiven Sprachen übersetzen (mit Versionierung):

.\WTS.exe 1 123 DE * 2

Alle noch nicht ins Englische übersetzten Artikel (bestehende bleiben unangetastet):

.\WTS.exe 1 0 DE EN 0

Dasselbe in einem Lauf ohne Obergrenze – Anzahl 0 = alle (ab Version 2.7.0; Achtung: entsprechend hoher DeepL-Verbrauch):

.\WTS.exe 1 0 DE EN 0 0

Die Kategorie 210 von Deutsch nach Französisch übersetzen und Bestehendes überschreiben:

.\WTS.exe 2 210 DE FR 1

Alle noch nicht übersetzten Variationsnamen / Variationswerte ins Englische:

.\WTS.exe 20 0 DE EN 0
.\WTS.exe 21 0 DE EN 0

Alle Merkmalwerte des Artikels 125 nach Französisch (auch bestehende), max. 100:

.\WTS.exe 31 125 DE FR 1 100

Alle noch nicht übersetzten Hersteller ins Englische (mit Versionierung):

.\WTS.exe 50 0 DE EN 2

💡 Hinweis zu Lang-Flags: Statt der Positionsform akzeptiert das CLI auch benannte Flags, z. B.: .\WTS.exe --type 1 --key 0 --from DE --to EN --overwrite 0 --top 60

📝 Prozess beenden: Im Task-Manager den Prozess WTS.exe suchen und „Task beenden“. Mehrere Instanzen gleichzeitig sind möglich – aber nur mit unterschiedlichen Sprachen/Typen, sonst entstehen doppelte Übersetzungen.

Artikel-Filter (Lang-Flags)

Zusätzlich lassen sich Läufe auf bestimmte Artikel einschränken – das spart Zeit und Übersetzungskosten. Diese Filter gibt es nur als Lang-Flags. Sobald mindestens eines davon gesetzt ist, gelten für diesen Lauf ausschließlich die angegebenen Filter – die globalen Filter aus der config.json (Abschnitt filters) werden dann komplett ignoriert. Ohne Filter-Flag gelten die globalen Filter, und zwar für jeden Aufruf, auch für einzelne Datensätze (Key > 0) aus einem JTL-Workflow.

Flag Wirkung
--shops "1,2" Nur Artikel, die in mindestens einem dieser Shops (kShop-CSV) aktiv sind.
--only-stock Nur Artikel mit Lagerbestand > 0.
--category "210,305" Nur Artikel in diesen Kategoriebäumen (kKategorie-CSV, rekursiv inkl. Unterkategorien). Eine einzelne Kategorie (--category 210) funktioniert weiterhin.
--category-exclude Kehrt --category um: Die angegebenen Kategoriebäume werden ausgeschlossen, übersetzt wird alles andere. Nur zusammen mit --category.

Beispiel – nur lagernde Artikel aus Shop 1 in den Kategoriebäumen 210 und 305 nach Englisch übersetzen:

.\WTS.exe --type 1 --key 0 --from DE --to EN --overwrite 0 --shops "1" --only-stock --category "210,305"

Beispiel – alle Artikel außer denen im Kategoriebaum 99 nach Französisch übersetzen:

.\WTS.exe --type 1 --key 0 --from DE --to FR --overwrite 0 --category 99 --category-exclude

Mehrere Kategoriebäume werden vereinigt: Ein Artikel, der in mehreren angegebenen Bäumen liegt, wird nur einmal übersetzt. Beim Ausschließen fällt ein Artikel heraus, sobald er (auch) einer ausgeschlossenen Kategorie zugeordnet ist.

⚠️ Ungültige Filterwerte brechen ab: Seit Version 2.6.0 prüft WAWITranslator die Angaben bei --shops und --category streng. Erlaubt sind nur IDs größer 0, getrennt durch Komma. Ein Tippfehler wie 210;305, der Wert 0 oder ein doppeltes Komma beendet den Aufruf mit einer Fehlermeldung (Exitcode 2), statt still ohne Filter zu laufen. Dasselbe gilt für --category-exclude ohne --category. Lange Kategorie-Listen sind kein Problem.

⚠️ Filter nur in der Flag-Form: --shops, --only-stock, --category und --category-exclude lassen sich nicht hinten an die Positionsparameter anhängen. 1 0 DE EN 2 --shops 1 schlägt fehl („Positionswert 6 … ist keine Zahl“), weil der Parser beim ersten Positionswert aufhört, Flags zu lesen. Nutze entweder durchgängig die Flag-Form (--type … --shops …) oder stelle die Filter-Flags vor die Positionswerte (--shops 1 --only-stock 1 0 DE EN 2).

Die Filter greifen bei Artikeln (Typ 1, 3), „Alle Artikel im Kategoriebaum“ (Typ 4, seit 2.6.0 auch mit Kategoriefilter), Artikel- und Kategorie-URLs (5, 6), Attributwerten (11, 12), Attributen und Variationen/Variationswerten anhand Artikel (15, 25, 26), Merkmalwerten (31) und Mediendateien (35) – je nach Typ Shop/Lager/Kategorie. Bei reinen Stammdaten-Typen (2, 10, 20, 21, 30, 40, 45, 50) haben sie keine Wirkung; die CLI weist im Log darauf hin. Auch „Vorhandene Übersetzungen wiederverwenden“ (--propagate-existing) beachtet die Filter. Kennt eine veraltete Datenbank-Prozedur die Filter noch nicht, bricht ein gefilterter Lauf mit klarer Meldung ab (statt still ungefiltert zu laufen) – das Datenbank-Update im Setup bringt sie auf den aktuellen Stand.

Globale Filter in der config.json

Am einfachsten pflegst du die globalen Filter in der GUI (Einstellungen → Filter & Sprachen). In der config.json stehen sie im Abschnitt filters:

"filters": {
  "activeInShops": [1, 2],
  "onlyWithStock": true,
  "categoryRoots": [210, 305],
  "categoryExclude": false
}
Feld Bedeutung
activeInShops Liste von kShop. Leer = kein Shop-Filter.
onlyWithStock true = nur Artikel mit Lagerbestand > 0.
categoryRoots Liste von Wurzel-kKategorie (rekursiv). Leer = kein Kategoriefilter.
categoryExclude false = die Bäume einschließen, true = ausschließen (alle außer diese).

Das frühere Einzelfeld categoryRoot (eine Zahl) wird weiterhin gelesen und automatisch als categoryRoots übernommen. IDs kleiner oder gleich 0 lehnt WAWITranslator beim Start als Konfigurationsfehler ab.

💡 Lizenz prüfen: .\WTS.exe --check-license --license-key WAWI-… (bzw. LIC-… bei Kauf im JTL-Extension-Store) prüft einen Schlüssel live gegen den Lizenzserver und gibt das Ergebnis als JSON aus (kein Übersetzungslauf). Genau das nutzt die GUI in Einstellungen → Lizenz.

Zielsprachen bei * einschränken (targetLanguages)

Bei Zielsprache * übersetzt WAWITranslator in alle aktiven Sprachen (aus dbo.tSpracheUsed, außer der Quellsprache). Über den Schlüssel targetLanguages auf oberster Ebene der config.json lässt sich das global auf eine Teilmenge beschränken:

"targetLanguages": ["EN", "FR", "IT"]

Übersetzungs-Provider wählen (DeepL / OpenAI)

Standard ist DeepL. Ab Version 2.3 kann optional OpenAI genutzt werden.

⚠️ OpenAI ist standardmäßig deaktiviert und muss freigeschaltet werden – in der GUI unter Einstellungen → Übersetzung → „OpenAI aktivieren…“, über config.json ("openaiEnabled": true) oder die Umgebungsvariable WTS_ENABLE_OPENAI=1. Support für die OpenAI-Anbindung wird stundenweise abgerechnet.

Pro Lauf lässt sich der Provider per Flag erzwingen:

.\WTS.exe --type 1 --key 0 --from DE --to EN --overwrite 0 --provider openai

Ohne --provider gilt der Wert aus der config.json (Standard deepl).

DeepL-Glossar – Prüfung beim Start (ab Version 2.7.0)

Ist in der config.json eine Glossar-ID eingetragen (deepl.glossaryId, pflegbar unter Einstellungen → Übersetzung), prüft WTS.exe sie vor jedem Lauf bei DeepL. Die Abfrage ist kostenlos und verbraucht keine Zeichen. Glossare funktionieren mit DeepL API Free und Pro.

Ergebnis der Prüfung Verhalten
Glossar existiert nicht Abbruch: „DeepL-Glossar existiert nicht in diesem DeepL-Konto – Glossar-ID in den Einstellungen prüfen oder leeren“
Genau eine Zielsprache, das Glossar hat kein Wörterbuch für dieses Sprachpaar Abbruch mit Meldung (sie nennt die vorhandenen Sprachpaare)
Zielsprache * („Alle Zielsprachen“), einzelnen Sprachen fehlt das Wörterbuch Diese Sprachen werden ohne Glossar übersetzt, das Log warnt; der Lauf gilt als erfolgreich
DeepL gerade nicht erreichbar Nur eine Warnung, der Lauf geht weiter

Ein Glossar kann mehrere Sprachpaare (Wörterbücher) enthalten; ein Wörterbuch für Englisch gilt für EN-GB und EN-US gleichermaßen. Keine Prüfung gibt es im Mock-Modus (--mock-deepl), bei Übersetzung mit OpenAI und bei der Hash-Initialisierung (Key -1000). In der Lauf-Historie geplanter Aufgaben erscheinen die Abbrüche als „Glossar nicht gefunden“ bzw. „Sprachpaar fehlt im Glossar“.

Zusatz aus der Testphase entfernen (--trial-cleanup, ab Version 2.7.0)

Die in der Testphase übersetzten Texte sind vollständige DeepL-Übersetzungen, nur mit dem Zusatz „[WAWITranslator Trial]“ (ältere Versionen: „[WAWITranslator Demo]“). Nach dem Wechsel auf die Vollversion bietet die GUI selbst an, diesen Zusatz zu entfernen (siehe Konfiguration und Bedienung). Für Skripte gibt es denselben Ablauf per Kommandozeile – ohne Übersetzungslauf, das Ergebnis erscheint als eine JSON-Zeile:

.\WTS.exe --trial-cleanup --dry-run
.\WTS.exe --trial-cleanup

Die Werte für area lauten artikel, kategorien, hersteller, attribute, attributwerte, variationen, variationswerte, merkmale, merkmalwerte, medien, konfiguration und crossselling.

📝 Manuelle Variante: Es gibt ein SQL-Skript upgrade_trial.sql, das dasselbe direkt im SQL Server Management Studio macht – nur Zusatz entfernen, Versionierungs-Einträge bleiben –, allerdings nur für Artikel, Kategorien und Hersteller. Das Setup liefert es nicht mit (frühere Fassungen dieser Anleitung behaupteten das); wenn du es brauchst, frag kurz beim Support. Für alle übrigen Texttabellen nimm --trial-cleanup oder die Schaltfläche in der GUI.

Vorschau einer Stichprobe (--preview, ab Version 2.8.0)

--preview N übersetzt eine Stichprobe von N zufällig ausgewählten Datensätzen (1–50) je Zielsprache und gibt Quelle und Übersetzung je Feld aus, ohne etwas zu speichern. In der GUI steckt dasselbe hinter der Schaltfläche „Vorschau“.

.\WTS.exe --type 1 --key 0 --from DE --to EN --overwrite 2 --preview 5 --progress-json

Während eines normalen Laufs meldet --progress-json ab Version 2.8.0 außerdem je fertigem Datensatz ein Ereignis {"phase":"record","kKey":…,"to":…,"name":…,"ok":…} – die Grundlage der Live-Anzeige im Log.

Mehrere Datensätze pro DeepL-Anfrage (ab Version 2.8.0)

WAWITranslator bündelt die Felder mehrerer Datensätze in eine DeepL-Anfrage (bis 50 Datensätze bzw. 20.000 Quellzeichen je Bündel und nur so viele, wie in eine Anfrage passen). Geschrieben wird weiter Datensatz für Datensatz, die Zahl der abgerechneten Zeichen ändert sich nicht – nur die Wartezeit auf DeepL schrumpft deutlich. Scheitert ein Bündel, werden seine Datensätze einzeln nachübersetzt.

Zur Fehlersuche abschaltbar – in der GUI unter Einstellungen → Übersetzung, auf der Kommandozeile über die Umgebungsvariable:

$env:WTS_DEEPL_BATCH = "0"; .\WTS.exe --type 1 --key 0 --from DE --to EN --overwrite 2

Mit OpenAI als Engine wird weiterhin je Datensatz übersetzt.

Wann ein Lauf als fehlgeschlagen gilt (ab Version 2.8.0)

Gezählt werden nur gespeicherte Datensätze. Ein Lauf, der Datensätze verarbeitet, aber keinen einzigen speichern konnte – etwa weil das DeepL-Kontingent aufgebraucht ist –, gilt jetzt als fehlgeschlagen (Fehlerphase nothingSaved) und löst die Fehler-Mail aus. Bis 2.7.0 stand so ein Lauf mit voller Datensatzzahl als Erfolg in der Historie.

Geprüft wird über alle Zielsprachen zusammen: Eine einzelne Sprache ohne gespeicherten Datensatz macht den Lauf nicht zum Fehlschlag. Anhalten vor dem ersten Datensatz ist kein Fehler. Ein Probelauf speichert naturgemäß nichts und zählt 0 – er gilt als fehlgeschlagen, wenn kein Datensatz fehlerfrei übersetzt wurde.

Laufzeiten messen (--profile)

Mit --profile (in der GUI: „Diagnose“ in der Log-Ansicht bzw. Strg+D) schreibt WTS.exe am Ende eines Laufs eine Auswertung der Laufzeiten ins Log – z. B. wie lange das Laden der Texte (select_source) und die Aufrufe bei DeepL (deepl) gedauert haben. Ab Version 2.7.0 kommen der Verbindungsaufbau zur Datenbank (sql_connect), die Vorab-Abfragen (sql_prepare) und die Glossar-Prüfung (glossary_check) hinzu. Wird ein Lauf mit --schedule-id und --profile gestartet, zeigt auch die Lauf-Historie („Verlauf…“) diese Werte. Die Auswertung hilft dem Support bei Fragen zur Geschwindigkeit.

Zu lange Übersetzungen (Kürzen / onTruncate)

Ist eine Übersetzung länger als die JTL-Spaltenlänge, greift standardmäßig translator.onTruncate (Default skipField): das betroffene Feld wird ausgelassen, die übrigen Felder desselben Datensatzes werden trotzdem geschrieben. Das Log nennt Feld, Ist-Länge und Spaltenlimit.

onTruncate Wirkung
skipField (Standard) Nur das zu lange Feld auslassen, die übrigen Felder schreiben.
truncate Das Feld hart auf die Spaltenlänge kürzen.
skipRecord Den ganzen Datensatz auslassen (früheres Verhalten).

Optional lässt sich in der config.json das automatische Kürzen aktivieren – dann kürzt WAWITranslator zu lange Texte per OpenAI sinn- und markenerhaltend, damit sie passen (benötigt einen OpenAI-Key/-Modell):

"translator": { "fitTranslationLength": true }

📝 Ab Version 2.7.0 für alle Übersetzungstypen: onTruncate und fitTranslationLength gelten jetzt nicht mehr nur für Artikel und Kategorien (Typ 1–6), sondern auch für Attribute, Variationen, Merkmale/Merkmalwerte, Mediendateien, Cross-Selling-Gruppen und Hersteller (Typ 10–50). Bisher wurde dort der ganze Datensatz übersprungen. Die Spaltenlängen liest WAWITranslator live aus deiner JTL-Datenbank, und das Log nennt die echte Spalte der Zieltabelle – z. B. cWert(300>255) bei einem Merkmalwert.

Geplante (automatische) Übersetzungen

Über die GUI (Kalender-Symbol) lassen sich wiederkehrende Übersetzungen als Windows-Aufgaben einrichten – z. B. jede Nacht. Diese Funktion ist Teil der Pro-Lizenz. Eine neue Aufgabe legst du im Fenster „Geplante Aufgaben“ über „+ Neue Aufgabe“ an oder direkt im Hauptfenster über „Als Aufgabe anlegen“ (Strg+T) – dann ist die aktuelle Auswahl bereits eingetragen.

Aufgabe bearbeiten

Bereich Inhalt
Übersetzung Bezeichnung, Typ, Quell- und Zielsprache (* = alle Zielsprachen; ab Version 2.7.0 als Eintrag „Alle Zielsprachen“), Modus, Anzahl pro Lauf (ab Version 2.7.0: 0 = alle Datensätze), optional „Vorhandene Übersetzungen wiederverwenden“ und die Übersetzungs-Engine: „Standard (laut Einstellungen)“, DeepL oder OpenAI – unabhängig von der globalen Einstellung. Ab Version 2.7.0 füllt „Aus Vorlage übernehmen …“ (oben rechts im Bereich) diese Felder aus einer im Hauptfenster gespeicherten Vorlage (siehe unten).
Quelle / Ziel: Plattform / Shop Seit Version 2.6.0 als Auswahlliste – dieselbe Plattform-/Shop-Liste wie im Hauptfenster (für den dort zuletzt geladenen Übersetzungstyp). Ist die Liste nicht verfügbar, trägst du Plattform- und Shop-Nummer direkt ein.
Artikel-Filter „Globale Filter übernehmen“ oder „Eigene Filter für diese Aufgabe“ (siehe unten). Bei Typen ohne Filterwirkung ist der Bereich ausgeblendet.
Wann ausführen Wochentage und Uhrzeit.
Windows-Konto Benutzer, unter dem die Aufgabe läuft. Mit „Auch ausführen wenn ich nicht eingeloggt bin“ startet sie auch ohne Anmeldung; dafür ist das Windows-Passwort nötig. Ändert sich das Passwort, die Aufgabe erneut öffnen und das neue Passwort eintragen.
Benachrichtigung E-Mail nach N aufeinanderfolgenden Fehlläufen (0 = keine, 2 empfohlen) – siehe „E-Mail-Benachrichtigung“.
Fenster „Aufgabe bearbeiten“ mit Quell- und Zielsprache, Modus, Anzahl, Engine, Plattform / Shop und der Option „Globale Filter übernehmen“
Aufgabe bearbeiten: Plattform / Shop und Artikel-Filter

Globale oder eigene Filter:

Die Zielsprachen-Auswahl für * (siehe oben) gilt für Aufgaben mit Ziel „Alle Zielsprachen“ ebenfalls zur Laufzeit.

Aus Vorlage übernehmen (ab Version 2.7.0): Hast du im Hauptfenster Vorlagen gespeichert (siehe Konfiguration und Bedienung), wählst du sie im Aufgaben-Editor über „Aus Vorlage übernehmen …“ aus. Übernommen werden Typ, Key, Quelle und Ziel (Plattform / Shop, Sprache), Modus, Anzahl und „Vorhandene Übersetzungen wiederverwenden“. Engine, Artikel-Filter, Zeitplan und Windows-Konto der Aufgabe bleiben unverändert. Was es in der aktuellen Datenbank nicht gibt, bleibt ebenfalls unverändert; ein Hinweis unter der Überschrift nennt es. Vorlagen gehören zum jeweiligen Windows-Benutzer – im Aufgaben-Editor siehst du die Vorlagen des gerade angemeldeten Benutzers.

Fenster „Aufgabe bearbeiten“ mit aufgeklapptem Menü „Aus Vorlage übernehmen …“ und den übernommenen Werten, darunter Zielsprache „Alle Zielsprachen“ und Anzahl pro Lauf 0
Aufgabe aus einer Vorlage übernehmen

📝 Aufgaben aus früheren Versionen: Bis Version 2.5.x wurde beim Speichern ein fester Stand der globalen Filter in die Windows-Aufgabe geschrieben. Solche Aufgaben zeigt die Liste mit dem Hinweis „Filter-Stand eingefroren“. Einmal öffnen und speichern genügt – danach folgt die Aufgabe den globalen Filtern.

Die Aufgabenliste

Spalte Bedeutung
Aktiv Grüner Punkt = aktiv (der Tooltip zeigt den nächsten Lauf), grauer Kreis = deaktiviert. Ein Klick schaltet um.
Name / Übersetzung Bezeichnung, Übersetzungstyp, Sprachen, Anzahl (0 erscheint als „alle Datensätze“), Modus und ggf. die fest gewählte Engine. (Bis Version 2.6 hieß die Spalte „Job“.)
Filter „global (live)“ = folgt den globalen Filtern; sonst die eigenen Filter der Aufgabe in Kurzform (z. B. „Shop(s) 1 · Kategorie(n) ohne 42“); „–“ = Typ ohne Filterwirkung. Details im Tooltip.
Wann Wochentage und Uhrzeit.
Letzter Lauf Status (erfolgreich, fehlgeschlagen, läuft gerade, noch nie gelaufen), Zeitpunkt und Laufdauer.

Die Aktionen „Jetzt ausführen“, „Bearbeiten“, „Verlauf…“ (Lauf-Historie mit Status, Dauer, Anzahl übersetzter Datensätze und ggf. Fehlermeldung je Lauf) und „Löschen“ liegen im ⋯-Menü am Zeilenende. Ein Doppelklick auf eine Zeile öffnet die Aufgabe direkt zum Bearbeiten.

⚠️ „Windows-Aufgabe weicht ab“: Diesen Hinweis zeigt die Spalte „Filter“, wenn die in Windows registrierte Aufgabe (Parameter oder Programm) nicht mehr zur gespeicherten Konfiguration passt – Details stehen im Tooltip. Öffne die Aufgabe über „Bearbeiten“ und speichere sie; dann wird sie neu registriert.

Fenster „Geplante Aufgaben“ mit Spalten Übersetzung, Filter, Wann und Letzter Lauf sowie dem Hinweis „Windows-Aufgabe weicht ab“
Geplante Aufgaben mit Filter-Spalte und letztem Lauf

E-Mail-Benachrichtigung (SMTP oder Brevo)

Geplante Aufgaben können dich per E-Mail informieren, wenn sie mehrmals hintereinander fehlschlagen. Die Schwelle legst du je Aufgabe im Bereich „Benachrichtigung“ fest. Seit Version 2.6.0 zählen dabei auch Abbrüche als Fehllauf – z. B. wenn der SQL Server nicht erreichbar oder die Lizenz abgelaufen ist. Solche Läufe erscheinen außerdem in der Lauf-Historie („Verlauf…“); bisher blieben genau diese Fälle ohne Mail.

Pro Fehlerserie bekommst du eine Mail; die nächste erst, nachdem die Aufgabe wieder erfolgreich gelaufen ist und erneut die Schwelle erreicht. Klappt der Versand nicht (Mailserver oder Brevo gerade nicht erreichbar), versucht WAWITranslator es ab Version 2.7.0 beim nächsten Fehllauf erneut, bis die Mail durchgeht.

Den Versand richtest du einmal zentral ein: Einstellungen → E-Mail → „Versand über“.

Versand über Angaben
SMTP-Server SMTP-Host, Port (Standard 587), „STARTTLS verwenden“, Benutzername und Passwort.
Brevo API Dein eigener Brevo-API-Key (v3) und optional ein Absendername. Die Absender-Adresse muss in deinem Brevo-Konto als verifizierter Absender hinterlegt sein.

Für beide Wege gelten Absender-Adresse und Empfänger (mehrere Adressen durch Komma oder Semikolon getrennt). Mit „Test-Mail senden“ prüfst du die Angaben. Passwort und API-Key werden verschlüsselt gespeichert. Bleiben SMTP-Host bzw. Brevo-API-Key leer, werden keine Mails verschickt.

📝 Hinweis zu STARTTLS: Bietet der SMTP-Server kein STARTTLS an, warnt WAWITranslator deutlich, weil die Mail dann unverschlüsselt übertragen wird. Zugangsdaten werden nie ohne TLS gesendet.

In der config.json steht der Versandweg unter smtp.provider (smtp oder brevo); der Brevo-Key liegt verschlüsselt unter smtp.brevoApiKey. Pflege die Zugangsdaten deshalb über die GUI.

Einstellungen, Tab „E-Mail“: Versand über Brevo API, maskierter API-Key, Absendername, Absender-Adresse, Empfänger und „Test-Mail senden“
Einstellungen, Tab „E-Mail“ mit Versand über Brevo

Logs

Im Ordner C:\ProgramData\WAWITranslator\translations wird jeder verarbeitete Text als JSON-Datei protokolliert und nach einigen Tagen automatisch gelöscht. Laufzeit-Meldungen stehen in logs\translator.log. Geplante Läufe protokolliert WAWITranslator zusätzlich in scheduled_runs.log (eine Zeile pro Lauf) – daraus speisen sich die Lauf-Historie, die Laufdauer in der Aufgabenliste und die E-Mail-Benachrichtigung.

← Zurück zu WAWITranslator