Retour

gt-cli@2.9.0

Ernest McCarter avatarErnest McCarter
gt-cliv2.9.0twiliocontent-templatesi18nwhatsappsms

Vue d’ensemble

L’outil en ligne de commande gt prend désormais en charge le format de fichier Twilio Content JSON. Si vous utilisez le Content Template Builder de Twilio pour envoyer des messages structurés via WhatsApp, SMS ou RCS, vous pouvez désormais traduire ces modèles avec le même workflow gt translate que celui que vous utilisez déjà pour votre application.

Pourquoi c’est important

Les modèles de contenu Twilio sont des fichiers JSON qui définissent des messages structurés -- du texte avec des variables, des boutons de réponse rapide, des cartes avec médias et actions. Ces modèles contiennent des chaînes destinées à l’utilisateur : libellés de boutons, texte du corps du message, titres de cartes. Si vous envoyez des messages dans plusieurs langues, ces chaînes doivent être traduites.

Aujourd’hui, l’approche consiste à créer manuellement un modèle de contenu distinct pour chaque langue via la console Twilio ou l’API. Chaque modèle a son propre SID, son propre cycle d’approbation et sa propre charge de maintenance. Il n’existe pas de source de référence unique pour le contenu d’un message dans l’ensemble des langues.

Avec cette mise à jour de la CLI, vous écrivez le modèle une seule fois dans votre langue par défaut et laissez gt translate s’occuper du reste.

Guide pas à pas

Imaginons que vous mettiez en place un flux de support client sur WhatsApp avec Twilio. Vous disposez d’un modèle de réponse rapide qui salue l’utilisateur et propose trois options :

{
  "friendly_name": "support_greeting",
  "language": "en",
  "variables": { "1": "Customer" },
  "types": {
    "twilio/quick-reply": {
      "body": "Bonjour, {{1}}. Merci de contacter le support. Comment pouvons-nous vous aider ?",
      "actions": [
        { "title": "Vérifier le statut de la commande", "id": "order_status" },
        { "title": "Retourner un article", "id": "return_item" },
        { "title": "Parler à un agent", "id": "speak_agent" }
      ]
    },
    "twilio/text": {
      "body": "Bonjour, {{1}}. Merci de contacter le support. Comment pouvons-nous vous aider ?"
    }
  }
}

Les champs body et les valeurs title de actions sont tous des chaînes traduisibles. L’espace réservé de variable {{1}}, les champs id et les clés structurelles ne le sont pas.

Étape 1 : Configuration

Ajoutez twilioContentJson à votre fichier de configuration gt.config.json :

{
  "defaultLocale": "en",
  "locales": ["en", "es", "fr", "ja"],
  "files": {
    "twilioContentJson": {
      "include": ["twilio/[locale]/**/*.json"]
    }
  }
}

L’espace réservé [locale] dans le chemin include indique à la CLI où trouver les fichiers source et où enregistrer les traductions. Les fichiers source sont lus depuis twilio/en/ et les fichiers traduits sont enregistrés dans twilio/es/, twilio/fr/, etc.

Étape 2 : translate

npx gt@latest translate

Les traductions sont générées pour chaque paramètre régional configuré. La sortie conserve la structure JSON de Twilio -- seules les valeurs des chaînes changent.

La sortie en espagnol peut ressembler à :

{
  "friendly_name": "support_greeting",
  "language": "es",
  "variables": { "1": "Customer" },
  "types": {
    "twilio/quick-reply": {
      "body": "Hola, {{1}}. Gracias por contactar con soporte. ¿En qué podemos ayudarte?",
      "actions": [
        { "title": "Ver estado del pedido", "id": "order_status" },
        { "title": "Devolver un artículo", "id": "return_item" },
        { "title": "Hablar con un agente", "id": "speak_agent" }
      ]
    },
    "twilio/text": {
      "body": "Hola, {{1}}. Gracias por contactar con soporte. ¿En qué podemos ayudarte?"
    }
  }
}

Chaque fichier traduit est un modèle JSON Twilio Content valide qui peut être envoyé directement à l’API Twilio Content en tant que nouveau modèle propre à un paramètre régional.

Liens