Dokumentation / Für Entwickler
SwiftLing Pro ergänzt WP-CLI um wp swiftling. Die Befehle bieten dieselben Funktionen wie die REST-API (siehe REST-API und KI-Agenten). Führen Sie sie dort aus, wo WordPress läuft: in einem Skript, bei einem Deployment oder über SSH (wp --ssh=user@host/path swiftling …). wp help swiftling <command> beschreibt alle Befehle und Optionen Ihrer Installation.
Befehle, die Übersetzungen lesen oder ändern, werden als Benutzer ausgeführt: Fügen Sie --user=admin hinzu. Sie können alles tun, was dieser Benutzer im Übersetzungseditor tun darf.
Die Befehle
| Command | What it does |
|---|---|
wp swiftling status | The original, the translation service and its characters this month, and how far each language has come across the pages and posts visitors open. --format=table|json|csv|yaml. |
wp swiftling languages | The languages, the original first. --format as above. |
wp swiftling check | Checks pages on the server, so their texts are known. |
wp swiftling translate | Translates with the translation service. See below. |
wp swiftling to-translate | What still needs translating in a language. |
wp swiftling export | Texts with their originals, translations and states, as JSON, for a translator or another tool. |
wp swiftling import | The translations of such a file, filled in, back into the site. |
wp swiftling flush-cache | Empties SwiftLing’s cache of maps and translations, and the pages of the cache plugins SwiftLing knows. |
wp swiftling clean | Removes what SwiftLing kept of posts no longer on the site. |
Was Sie übersetzen: Übersetzungsobjekte
Ein Übersetzungsobjekt ist das, was der Übersetzungseditor öffnet:
| Subject | Example |
|---|---|
| A post, page or product | post:12 (or just 12) |
| A template of a block theme | template:twentytwentyfive//archive |
| A kind of page of a classic theme | view:search |
| The terms of a list | terms:category |
| A classic menu | menu:3 |
| A builder’s subject, such as an options page of Advanced Custom Fields | as wp swiftling to-translate lists it |
Bei mehreren Befehlen können Sie Übersetzungsobjekte auf zwei Arten angeben: einzeln benennen (post:12 post:13) oder mit --all alle Objekte einer Art auswählen.
| Option | Meaning |
|---|---|
--all | Every subject of a kind instead of the ones you name. |
--kind=<kind> | With --all: post (the default), template, terms, menu or all. |
--type=<type> | With --all and posts: only one post type, as page. |
wp swiftling check akzeptiert <subject>…, --all, --kind und --type.
Status
Jeder Text einer Seite hat einen der folgenden Status:
| State | Meaning |
|---|---|
missing | Not translated yet: visitors read the original. |
machine | A service translated it, nobody has read it yet. |
reviewed | Someone checked it (or wrote it). |
outdated | The original changed since it was translated. The old translation stays, marked outdated, until someone reviews it. |
official | The translation of WordPress, the theme or a plugin. SwiftLing never sends these to a service. |
partial | Of a page: some texts are translated, some not. |
duplicate | Of a page: the language keeps the original on purpose („Keep the original“ in the editor). |
Übersetzen
wp swiftling translate [<subject>…] --lang=<slug> [--all] [--kind=<kind>] [--type=<type>] [--again=<states>] [--recheck] [--yes] --user=admin
- Für
--langgeben Sie den Sprach-Slug an, mehrere durch Kommas getrennte Slugs (de,fr,hr) oderallfür alle Sprachen. - Verwendet wird der unter Einstellungen › Übersetzungsdienst ausgewählte Dienst mit dem dort hinterlegten Schlüssel. Die Nutzung wird Ihrem Konto bei diesem Dienst angerechnet. Es übersetzt immer nur ein Dienst gleichzeitig.
- Jede Seite wird zuerst auf dem Server geprüft. Was der Dienst übersetzt hat, bevor er abbricht (etwa wegen eines abgelehnten Schlüssels oder eines aufgebrauchten Kontingents), bleibt erhalten.
- Bei
--allwerden Sie vor dem Start um Bestätigung gebeten, da die Übersetzung Zeichen kostet. Mit--yesüberspringen Sie die Nachfrage, etwa in einem Skript.
Fehlende Übersetzungen ergänzen (Standard)
wp swiftling translate post:12 --lang=de --user=admin
wp swiftling translate --all --type=page --lang=de,fr --yes --user=admin
wp swiftling translate --all --lang=all --yes --user=admin
Es werden nur Texte ohne Übersetzung gesendet. Texte, die jemand geschrieben oder geprüft hat, werden nie angetastet. Maschinelle Übersetzungen bleiben ebenfalls unverändert.
Mit --all werden die Seiten ausgewählt, für die laut letzter Prüfung noch Texte zu ergänzen sind: nicht übersetzte, teilweise übersetzte oder veraltete Seiten. Wenn sich eine Seite seit der letzten Prüfung geändert hat, kann sie neue Texte enthalten, die bei dieser Prüfung noch nicht erfasst wurden. Mit --recheck prüfen Sie jede Seite erneut:
wp swiftling translate --all --lang=all --recheck --yes --user=admin
Wenn sich der Originaltext geändert hat, bleibt seine bisherige Übersetzung erhalten und wird mit outdated markiert, damit sie jemand im Editor prüfen kann. Beim Standarddurchlauf wird sie nicht ersetzt.
Erneut übersetzen: --again
--again=<states> übersetzt Texte mit den angegebenen Status erneut, statt fehlende Übersetzungen zu ergänzen. Für <states> geben Sie machine, reviewed oder beides durch ein Komma getrennt an.
| You write | What it translates again |
|---|---|
--again=machine | Texts a service translated before and nobody has reviewed. The new translation replaces the old one and is saved as machine. Reviewed texts stay. |
--again=reviewed | Texts someone checked or wrote by hand. They are replaced with a machine translation, so this overwrites manual work. Use it only when you mean it. |
--again=machine,reviewed | Both: every text that has a translation of its own, except the official ones. This is „translate everything from scratch“ for what is already translated. |
Wichtig zu --again:
- Fehlende Übersetzungen werden nicht ergänzt. Um auch bisher unübersetzte Texte zu übersetzen, führen Sie den Befehl zusätzlich einmal ohne
--againaus – davor oder danach. - Von den bisherigen Übersetzungen wird keine Kopie aufbewahrt. Wenn Sie sie möglicherweise wiederherstellen möchten, führen Sie vorher
wp swiftling exportaus. - Texte mit dem Status
official(Übersetzungen von WordPress, Themes und Plugins) undoutdatedwerden nie gesendet. Veraltete Texte sind zur Prüfung vorgesehen. - Mit
--allerfasst--againjedes Übersetzungsobjekt, außer solchen, die den Originaltext beibehalten.--recheckist nicht erforderlich. - Texte, die nur aus Adressen oder Code bestehen oder keine Wörter enthalten, werden nie gesendet – unabhängig von den gewählten Optionen.
- Alles wird weiterhin an den ausgewählten Dienst gesendet und Ihrem Konto dort angerechnet. Mit
wp swiftling statuskönnen Sie prüfen, wie viele Zeichen in diesem Monat verbraucht wurden.
# translate the machine translations of one page into German again
wp swiftling translate post:12 --lang=de --again=machine --user=admin
# a whole site, every language: fill what is empty, then redo the machine translations
wp swiftling translate --all --lang=all --yes --user=admin
wp swiftling translate --all --lang=all --again=machine --yes --user=admin
# the templates (header, footer) again, including what someone reviewed. Back up first.
wp swiftling export --all --kind=template --lang=de --file=templates-de.json --user=admin
wp swiftling translate --all --kind=template --lang=de --again=machine,reviewed --yes --user=admin
Was noch zu übersetzen ist
wp swiftling to-translate --lang=de [--kind=<kind>] [--type=<type>] [--state=<states>] [--format=<format>] --user=admin
Standardmäßig werden nicht übersetzte, teilweise übersetzte, veraltete oder nur maschinell übersetzte Inhalte aufgelistet. Für --kind sind post (Standard), template, terms oder menu möglich. --state ist eine kommagetrennte Liste aus missing, partial, outdated, machine, reviewed und duplicate. Für --format sind table, json, csv, yaml oder count möglich.
wp swiftling to-translate --lang=de --format=count --user=admin
wp swiftling to-translate --lang=de --kind=post --type=page --state=machine --user=admin
Eine noch nie überprüfte Seite enthält noch keine bekannten Texte und wird daher als missing aufgeführt.
Export und Import
wp swiftling export [<subject>…] --lang=<slug> [--all] [--kind=<kind>] [--type=<type>] [--state=<states>] [--file=<file>] --user=admin
wp swiftling import <file> [--state=<state>] [--dry-run] --user=admin
export schreibt eine JSON-Datei mit dem Originaltext, der Übersetzung und dem Status jedes Textes. Zuvor wird jede Seite auf dem Server überprüft. Mit --state werden nur Texte mit einem der angegebenen Status übernommen: missing, outdated, machine, reviewed, official. Ohne --file wird die Ausgabe direkt angezeigt.
import liest eine solche Datei mit ausgefüllten Übersetzungen ein:
<file>ist ein Dateipfad oder-für die Standardeingabe.--state=reviewed(die Standardeinstellung) oder--state=machinelegt fest, mit welchem Status die Übersetzungen gespeichert werden.--dry-runprüft nur und speichert nichts.- Die Seite jedes Objekts wird zuerst überprüft, und alle zugehörigen Texte werden geprüft, bevor etwas gespeichert wird. Die Übersetzung eines Originaltexts, der sich seit dem Export geändert hat, wird für das betreffende Objekt abgelehnt. Das gilt auch für die Übersetzung eines Textes aus dem Code, der einen Wert verlangt, den sein Original nicht liefert. Eine leere Übersetzung in der Datei lässt den Text unverändert.
wp swiftling export --all --lang=de --state=missing --file=de.json --user=admin
wp swiftling import de.json --dry-run --user=admin
wp swiftling import de.json --user=admin
Seiten überprüfen
wp swiftling check post:12 --user=admin
wp swiftling check --all --kind=template --user=admin
Überprüft die Seite jedes Objekts auf dem Server, wie es auch der Übersetzungseditor tut, damit ihre Texte bekannt sind. Bei der Überprüfung werden keine Skripte ausgeführt: Ein Text, den ein Skript nach dem Laden der Seite erzeugt, oder ein Text in einem data-*-Attribut, den ein Skript ausgibt, wird nicht gefunden.
Die Website schnell halten
Nach einem umfangreichen Durchlauf leert wp swiftling flush-cache den Cache von SwiftLing sowie die Seitencaches der Cache-Plugins, die SwiftLing kennt. wp swiftling clean entfernt die von SwiftLing gespeicherten Daten zu Beiträgen, die nicht mehr auf der Website vorhanden sind.