Retour

gt-cli@2.9.0

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

Vue d’ensemble

Le CLI 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 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 visibles par l'utilisateur : libellés de boutons, texte du message, titres de cartes. Si vous envoyez des messages dans plusieurs langues, ces chaînes doivent être traduites.

Aujourd'hui, il faut 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 référence unique sur le contenu exact d'un message dans toutes les langues.

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

Procédure pas à pas

Supposons que vous conceviez un flux d’assistance 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 l'état de la commande", "id": "order_status" },
        { "title": "Retourner un article", "id": "return_item" },
        { "title": "Parler avec 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 dans actions sont tous des chaînes à traduire. L’espace réservé de variable {{1}}, les champs id et les clés de structure ne le sont pas.

Étape 1 : Configurer

Ajoutez twilioContentJson à la configuration de votre fichier 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 : Traduire

npx gt@latest translate

Des traductions sont générées pour chaque locale configurée. Le résultat conserve la structure JSON de Twilio -- seules les valeurs des chaînes de caractères changent.

Le résultat 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 téléversé directement dans l’API Twilio Content comme nouveau modèle spécifique à une locale.

Liens