Blog

⭐️ Sortie v2.6 avec la nouvelle extension MultilingualPress (pour les sites multilingues)

Leonardo Losoviz
Par Leonardo Losoviz ·

Gato GraphQL v2.6 a été publié, contenant plusieurs nouvelles fonctionnalités. Consultez les notes de release sur GitHub pour la liste complète des changements.

Voici les ajouts les plus importants.

[PRO] Ajout de l'intégration avec MultilingualPress

Gato GraphQL PRO dispose désormais d'une intégration avec le plugin MultilingualPress.

Avec la nouvelle extension MultilingualPress, le schéma GraphQL se voit doté des champs pour récupérer des données multilingues.

Par exemple, vous pouvez maintenant exécuter cette requête :

query {
  posts {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
 
    categories {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
    
    tags {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
  }
 
  pages {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
  }
  
  customPosts(filter: { customPostTypes: "some-cpt" }) {
    __typename
    ...on GenericCustomPost {
      multilingualpressIsTranslatable
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
      
      categories(taxonomy: "some-category") {
        __typename
        ...on GenericCategory {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
      
      tags(taxonomy: "some-tag") {
        __typename
        ...on GenericTag {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
    }
  }
}
 
fragment MultilingualPressConnectionData {
  siteID
  entityID
}

Avec cet ajout, nous pouvons utiliser Gato GraphQL pour traduire automatiquement des posts pour le plugin MultilingualPress, et stocker ces traductions dans les sites correspondants dans le réseau WordPress multisite.

Regardez la vidéo de démonstration Automatically translating posts for MultilingualPress (on a WordPress multisite network) pour voir comment cela fonctionne :

[PRO] Ajout du champ _strRegexFindMatches

Le champ _strRegexFindMatches a été ajouté au schéma GraphQL (sous l'extension PHP Functions via Schema).

Ce champ exécute une expression régulière pour extraire toutes les correspondances d'une chaîne. Par exemple, l'exécution de cette requête :

query {
  _strRegexFindMatches(
    regex: "/https?:\\/\\/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})/",
    string: "In website https://gatographql.com there is more information"
  )
}

...produira :

{
  "data": {
    "_strRegexFindMatches": [
      [
        "https:\/\/gatographql.com"
      ],
      [
        "gatographql.com"
      ]
    ]
  }
}

Avec cet ajout, nous pouvons utiliser Gato GraphQL pour extraire les chaînes vides d'un fichier Poedit, les traduire dans n'importe quelle langue, et créer le fichier Poedit correspondant pour cette langue.

Regardez la vidéo de démonstration Translating all strings in a Poedit file for any language pour voir comment cela fonctionne :

Ajout du champ siteURL

Le champ suivant a été ajouté au schéma GraphQL, via le module « Site » :

  • Root.siteURL

Par exemple, l'exécution de la requête suivante :

query {
  siteURL
}

...produira :

{
  "data": {
    "siteURL": "https://mysite.com"
  }
}

Ajout de champs pour récupérer les données du multisite

Le schéma GraphQL prend désormais en charge la récupération de données depuis un réseau WordPress multisite, fournie via le nouveau module « Multisite ».

Ce module ajoute les champs suivants au schéma GraphQL :

  • Root.networkSites
  • Root.networkSiteCount

Le champ networkSites retourne un tableau avec tous les sites du réseau, chacun du nouveau type NetworkSite, qui contient les champs suivants :

  • id
  • name
  • url
  • locale
  • language

Ces champs ne sont activés que lorsque le multisite est activé (c'est-à-dire lorsque la méthode is_multisite() retourne true).

Par exemple, l'exécution de la requête suivante :

query {
  networkSiteCount
  networkSites {
    id
    name
    url
    locale
    language
  }
}

pourrait retourner :

{
  "data": {
    "networkSiteCount": 3,
    "networkSites": [
     {
        "id": 1,
        "name": "Site in English",
        "url": "https://mymultisite.com",
        "locale": "en_US",
        "language": "en"
      },
     {
        "id": 2,
        "name": "Site in Spanish",
        "url": "https://es.mymultisite.com",
        "locale": "es_AR",
        "language": "es"
      },
     {
        "id": 3,
        "name": "Site in French",
        "url": "https://fr.mymultisite.com",
        "locale": "fr_FR",
        "language": "fr"
      }
    ]
  }
}

Ajout de persisted queries prédéfinies

Les persisted queries suivantes ont été ajoutées à Gato GraphQL :

[PRO] Ajout de règles d'automatisation

Les règles d'automatisation suivantes ont été ajoutées à Gato GraphQL PRO :

  • MultilingualPress : Lors de la publication d'un post, le traduire dans toutes les langues (Gutenberg)
  • MultilingualPress : Lors de la publication d'un post, le traduire dans toutes les langues (Éditeur classique)

Abonnez-vous à notre newsletter

Restez au courant de toutes les nouveautés de Gato GraphQL.