Aller au contenu

L’action personnalisée utilise les modèles GitHub pour traduire les fichiers Markdown dans votre dépôt. Elle est conçue pour être utilisée dans un workflow GitHub Actions afin de traduire automatiquement les fichiers de documentation lorsqu’ils sont mis à jour.

.github/workflows/ct.yml
- uses: pelikhan/action-continuous-translation@v0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
lang: fr,es

Vous pouvez enregistrer ce fichier dans votre répertoire .github/workflows/ sous le nom ct.yml :

.github/workflows/ct.yml
name: Continuous Translation
on:
workflow_dispatch:
# translate when doc files are changed in main
push:
branches:
- main
paths: # update the file paths
- "README.md"
- "docs/src/content/docs/**"
permissions:
contents: write
# allow the action to use the GitHub Models API
models: read
concurrency:
# cancel in-progress jobs for the same workflow and ref
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
continuous_translation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# cache the LLM inference results
- uses: actions/cache@v4
with:
path: .genaiscript/cache/**
key: continuous-translation-${{ github.run_id }}
restore-keys: |
continuous-translation-
# this is the translation action
- uses: pelikhan/action-continuous-translation@v0
continue-on-error: true # don't stop if translation fails, we still need to store the cache
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
lang: fr,es
# commit the generated files
- uses: stefanzweifel/git-auto-commit-action@v5
with:
file_pattern: "**.md* translations/**/*.json"
commit_message: "[cai] translated docs"
commit_user_name: "genaiscript"

L’action GitHub pelikhan/action-continuous-translation prend en charge les paramètres suivants. Tous les paramètres sont facultatifs. Les valeurs par défaut sont indiquées dans la référence ci-dessous.

with:
lang: fr
source: en
files: README.md
instructions:
instructions_file:
starlight_dir:
starlight_base:
force: false
model_alias: |
translate: github:gpt-4o-mini
debug: false

Voir Modèles pour plus de détails sur d’autres fournisseurs comme OpenAI, Azure OpenAI, etc.

Type : string
Par défaut : fr

Une liste de codes ISO des langues cibles, séparée par des virgules (,), vers lesquelles la documentation doit être traduite à partir de la langue source. Voir une liste de toutes les langues prises en charge dans le fichier models.mts du dépôt.

Type : string
Par défaut : en

Le code ISO de la langue source dans laquelle le contenu principal est rédigé.

Type : string
Par défaut : README.md

Une liste de fichiers à traiter, séparée par des virgules.

Type : string

Instructions supplémentaires pour l’LLM à utiliser lors de la traduction.

Type : string

Chemin vers un fichier contenant des instructions supplémentaires pour l’LLM à utiliser lors de la traduction.

Type: string Par défaut: translations

Dossier où les traductions seront stockées.

Type : string

Dossier racine de la documentation Astro Starlight. Doit être défini si l’option starlight_base est définie.

Type : string

Alias de base pour la documentation Astro Starlight. Si vous ne définissez pas l’option Astro base, ne définissez pas cette option.

Type : boolean
Par défaut : false

Forcer la traduction même si le fichier a déjà été traduit.

Type : boolean
Par défaut : false

Activer la journalisation de débogage. Lire plus de détails dans la documentation GenAIScript Logging.

Type : string
Exemple : translate: github:gpt-4o-mini

Un mappage des noms de modèles à leurs alias sous forme d’objet YAML. Cela peut être utilisé pour spécifier le modèle à utiliser pour une traduction particulière.

Type : string (recommandé : secret)
Exemple : ${{ secrets.GITHUB_TOKEN }}

Votre jeton GitHub avec au moins la permission models: read.

Lire plus de détails dans la documentation GenAIScript GitHub Models Permissions.

Vous pouvez également utiliser d’autres fournisseurs de LLM comme OpenAI, Azure OpenAI, etc. Voir Modèles pour plus de détails sur d’autres fournisseurs.