Documentation / Développeurs
Pour un site ou une application qui affiche ailleurs le contenu d’un site WordPress, sous forme d’interface découplée ou d’application mobile.
Contenu dans une langue
Les routes natives de WordPress répondent dans une langue lorsqu’elles sont interrogées dans cette langue :
- à l’adresse de la langue :
https://example.com/de/wp-json/wp/v2/postsavec des répertoires par langue, ou sur l’hôte propre à la langue si chaque langue dispose de son propre hôte ou domaine ; - ou avec
?lang=de, quel que soit le format des adresses :https://example.com/wp-json/wp/v2/posts?lang=de.
Les titres, contenus, extraits, champs, termes et liens sont traduits, comme sur une page dans cette langue. Seules les requêtes de lecture reçoivent une réponse dans une langue : GET ou HEAD, mais pas context=edit. Une requête qui écrit, ou qui demande les données modifiables par un éditeur, reçoit une réponse dans la langue d’origine, afin qu’aucun client n’enregistre une traduction par-dessus l’original. Les routes propres à SwiftLing et à ses modules complémentaires (swiftling/v1/…, swiftling-pro/v1/…) ne reçoivent jamais de réponse dans une autre langue.
L’API REST de WooCommerce (wc/v3) répond dans une langue comme les routes de WordPress ; le nom, la description et la description courte d’un produit sont traduits. Son API Store, interrogée depuis une page par les blocs de panier et de validation de commande, répond dans la langue de cette page, quelle que soit son adresse : le panier affiche les noms des produits dans la langue du visiteur. Une commande conserve les noms tels qu’ils ont été enregistrés.
Les langues
GET /wp-json/swiftling/v1/languages liste les langues visibles par les visiteurs, dans l’ordre défini sur l’écran Langues ; une langue masquée aux visiteurs n’y figure pas. Cette liste est accessible à tous.
[
{ "code": "hr", "locale": "hr", "slug": "hr", "name": "Hrvatski", "original": true,
"current": true, "direction": "ltr", "flag": "https://…/hr.svg", "url": "https://example.com/" },
{ "code": "de-DE", "locale": "de_DE", "slug": "de", "name": "Deutsch", "original": false,
"current": false, "direction": "ltr", "flag": "https://…/de.svg", "url": "https://example.com/de/" }
]
code est le code de la langue, comme dans hreflang ; current est la langue dans laquelle la requête reçoit une réponse ; url est l’adresse de la page d’accueil dans cette langue.
Un article ou un terme dans chaque langue
Les contenus des types que SwiftLing traduit, ainsi que les termes des taxonomies qu’il traduit, comportent un champ swiftling : il indique la langue de la réponse et, pour chaque langue visible par les visiteurs, l’adresse correspondante ainsi que, pour un contenu, l’état de sa traduction (original, reviewed, machine, partial, outdated, missing ou duplicate lorsque la langue conserve l’original et affiche la page telle quelle). Toute langue dans laquelle le contenu est masqué est omise.
"swiftling": {
"language": "hr",
"translations": [
{ "code": "hr", "locale": "hr", "url": "https://example.com/kontakt/", "state": "original" },
{ "code": "de-DE", "locale": "de_DE", "url": "https://example.com/de/kontakt/", "state": "reviewed" }
]
}