Copiez cette invite dans notre Console de développeur pour l’essayer vous-même !

Contenu
UtilisateurÉcrivez-moi un script Google Apps qui traduira tout le texte d’une présentation Google Slides en coréen.

Exemple de sortie

Voici un script Google Apps qui traduit tout le texte d’une présentation Google Slides en coréen :

function translateSlidesToKorean() {
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();

  for (var i = 0; i < slides.length; i++) {
    var slide = slides[i];
    var pageElements = slide.getPageElements();

    for (var j = 0; j < pageElements.length; j++) {
      var pageElement = pageElements[j];

      if (pageElement.getPageElementType() === SlidesApp.PageElementType.SHAPE) {
        var shape = pageElement.asShape();
        if (shape.getText() !== null) {
          var text = shape.getText().asString();
          var translatedText = LanguageApp.translate(text, '', 'ko');
          shape.getText().setText(translatedText);
        }
      } else if (pageElement.getPageElementType() === SlidesApp.PageElementType.TABLE) {
        var table = pageElement.asTable();
        var numRows = table.getNumRows();
        var numColumns = table.getNumColumns();

        for (var row = 0; row < numRows; row++) {
          for (var col = 0; col < numColumns; col++) {
            var tableCell = table.getCell(row, col);
            var text = tableCell.getText().asString();
            var translatedText = LanguageApp.translate(text, '', 'ko');
            tableCell.getText().setText(translatedText);
          }
        }
      }
    }
  }
}

Voici comment fonctionne le script :

  1. La fonction translateSlidesToKorean() récupère la présentation Google Slides active en utilisant SlidesApp.getActivePresentation().

  2. Elle obtient toutes les diapositives de la présentation à l’aide de la méthode getSlides().

  3. Nous itérons sur chaque diapositive de la présentation.

  4. Pour chaque diapositive, nous récupérons tous les éléments de page (formes, zones de texte, tableaux, etc.) à l’aide de la méthode getPageElements().

  5. Nous itérons sur chaque élément de page de la diapositive.

  6. Nous vérifions le type de l’élément de page à l’aide de getPageElementType() :

    • Si l’élément de page est une forme (SlidesApp.PageElementType.SHAPE), nous obtenons le contenu textuel de la forme à l’aide de getText().asString(). Nous traduisons ensuite le texte en coréen à l’aide de LanguageApp.translate(text, '', 'ko'), où '' représente la langue source (détection automatique) et 'ko' représente la langue cible (coréen). Enfin, nous définissons le texte traduit dans la forme à l’aide de setText().
    • Si l’élément de page est un tableau (SlidesApp.PageElementType.TABLE), nous itérons sur chaque cellule du tableau et traduisons le texte de chaque cellule de manière similaire à la façon dont nous gérons les formes.
  7. Le script continue à traiter tous les éléments de page de chaque diapositive jusqu’à ce que tout le texte de la présentation ait été traduit en coréen.

Remarque : Ce script suppose que vous disposez des autorisations nécessaires pour accéder et modifier la présentation Google Slides. Assurez-vous d’avoir les droits d’accès requis avant d’exécuter le script.

Gardez également à l’esprit que la traduction est effectuée à l’aide de l’API Google Translate, donc la qualité de la traduction peut varier en fonction de la complexité du texte et des capacités du service de traduction.


Requête API

Remarque : Claude 3 Opus sera bientôt disponible dans l’API Bedrock.

import anthropic

client = anthropic.Anthropic(
  # defaults to os.environ.get("ANTHROPIC_API_KEY")
  api_key="my_api_key",
)
message = client.messages.create(
  model="claude-3-opus-20240229",
  max_tokens=2000,
  temperature=0,
  messages=[
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Écrivez-moi un script Google Apps qui traduira tout le texte d'une présentation Google Slides en coréen."
        }
      ]
    }
  ]
)
print(message.content)