Documentación / Desarrolladores
SwiftLing Pro añade wp swiftling a WP-CLI, con las mismas funciones que su API REST (consulta API REST y agentes de IA). Ejecútalo donde se ejecute WordPress: en un script, durante un despliegue o por SSH (wp --ssh=user@host/path swiftling …). wp help swiftling <command> describe todos los comandos y opciones disponibles en tu instalación.
Los comandos que leen o modifican traducciones se ejecutan como un usuario: añade --user=admin. Pueden hacer lo que ese usuario tenga permitido hacer en el editor de traducciones.
Los comandos
| 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. |
Qué se traduce: elementos
Un elemento es lo que abre el editor de traducciones:
| 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 |
Varios comandos aceptan elementos de dos formas: indicándolos uno a uno (post:12 post:13) o usando --all para todos los elementos de un tipo.
| 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 acepta <subject>…, --all, --kind y --type.
Estados
Cada texto de una página tiene un estado:
| 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). |
Traducción
wp swiftling translate [<subject>…] --lang=<slug> [--all] [--kind=<kind>] [--type=<type>] [--again=<states>] [--recheck] [--yes] --user=admin
--langes el identificador del idioma, varios separados por comas (de,fr,hr) oallpara todos los idiomas.- Se utiliza el servicio elegido en Ajustes › Servicio de traducción, con su clave, y el uso se carga a tu cuenta en ese servicio. Solo se utiliza un servicio de traducción a la vez.
- Primero se comprueba cada página en el servidor. Se conserva lo que el servicio haya traducido antes de detenerse (por una clave rechazada o por haber agotado la cuota).
--allpide confirmación antes de empezar, porque consume caracteres. Añade--yespara omitir la pregunta, por ejemplo, en un script.
Rellenar los textos vacíos (opción predeterminada)
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
Solo se envían los textos sin traducción. Nunca se modifica un texto que alguien haya escrito o revisado, y las traducciones automáticas se dejan como están.
--all selecciona las páginas que aún tienen textos por rellenar según su última comprobación: sin traducir, traducidas parcialmente o desactualizadas. Una página modificada desde su última comprobación puede tener textos nuevos que aún no se hayan detectado. Añade --recheck para volver a comprobar todas las páginas:
wp swiftling translate --all --lang=all --recheck --yes --user=admin
Si el original de un texto cambia, se conserva su traducción anterior, marcada como outdated, para que alguien la revise en el editor. La ejecución predeterminada no la sustituye.
Volver a traducir: --again
--again=<states> traduce de nuevo los textos que tienen esos estados, en lugar de rellenar los vacíos. <states> puede ser machine, reviewed o ambos separados por una coma.
| 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. |
Ten en cuenta lo siguiente sobre --again:
- No rellena los textos vacíos. Para rellenar también los que nunca se han traducido, ejecuta además el comando una vez sin
--again(antes o después). - No se conserva ninguna copia de las traducciones anteriores. Si crees que podrías querer recuperarlas, ejecuta primero
wp swiftling export. - Los textos
official(traducciones de WordPress, temas y plugins) youtdatednunca se envían. Los textos desactualizados deben revisarse. - Con
--all,--againselecciona todos los elementos excepto los que conservan el original. No hace falta usar--recheck. - Los textos que solo contienen direcciones o código, o que no contienen palabras, nunca se envían, independientemente de las opciones que uses.
- Todo se sigue enviando al servicio que hayas elegido, así que se carga a tu cuenta. Consulta
wp swiftling statuspara ver los caracteres consumidos este mes.
# 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
Qué queda por traducir
wp swiftling to-translate --lang=de [--kind=<kind>] [--type=<type>] [--state=<states>] [--format=<format>] --user=admin
De forma predeterminada, muestra lo que no está traducido, está traducido parcialmente, está desactualizado o solo tiene traducción automática. --kind puede ser post (el valor predeterminado), template, terms o menu. --state es una lista separada por comas de missing, partial, outdated, machine, reviewed y duplicate. --format puede ser table, json, csv, yaml o count.
wp swiftling to-translate --lang=de --format=count --user=admin
wp swiftling to-translate --lang=de --kind=post --type=page --state=machine --user=admin
Una página que nunca se ha comprobado aún no tiene textos conocidos, por lo que figura como missing.
Exportar e importar
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 genera un archivo JSON con el original, la traducción y el estado de cada texto. Primero se comprueba cada página en el servidor. --state incluye solo los textos que estén en los estados indicados: missing, outdated, machine, reviewed y official. Si no se indica --file, el resultado se muestra en pantalla.
import lee uno de esos archivos con las traducciones rellenadas:
<file>es una ruta de archivo, o-para la entrada estándar.--state=reviewed(el valor predeterminado) o--state=machinedetermina el estado con el que se guardan las traducciones.--dry-runcomprueba, pero no guarda nada.- Primero se comprueba la página de cada elemento y todo su contenido antes de guardar nada. Si un texto original ha cambiado desde la exportación, se rechaza su traducción junto con las demás traducciones de ese elemento. Lo mismo ocurre si la traducción de un texto procedente del código solicita un valor que el original no proporciona. Una traducción vacía en el archivo deja el texto tal como está.
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
Comprobar páginas
wp swiftling check post:12 --user=admin
wp swiftling check --all --kind=template --user=admin
Comprueba en el servidor la página de cada elemento, igual que hace el editor de traducciones, para identificar sus textos. La comprobación no ejecuta scripts: no detecta los textos que un script genera después de cargar la página ni los almacenados en un atributo data-* que un script muestra.
Mantener la rapidez del sitio
Después de una operación de gran volumen, wp swiftling flush-cache vacía la caché de SwiftLing y las páginas almacenadas por los plugins de caché que SwiftLing conoce. wp swiftling clean elimina los datos que SwiftLing conservaba de las entradas que ya no están en el sitio.