GitHub Actions
Traducción con IA mediante GitHub Actions y Lingo.dev CI/CD
¿Qué es GitHub Actions?
GitHub Actions es una plataforma de CI/CD y automatización integrada en GitHub. Permite a los usuarios definir flujos de trabajo en archivos YAML para compilar, probar y desplegar código o automatizar tareas activadas por eventos del repositorio.
¿Qué es Lingo.dev CI/CD?
Lingo.dev CI/CD es una herramienta impulsada por IA para localizar aplicaciones y contenido en CI/CD, garantizando que las traducciones nunca queden desactualizadas. Para GitHub, Lingo.dev proporciona una GitHub Action personalizada que simplifica la integración.
Acerca de esta guía
Esta guía explica cómo configurar Lingo.dev CI/CD con la GitHub Action de Lingo.dev y Lingo.dev Engine.
Paso 1. Configurar Lingo.dev CLI
Para comenzar, sigue el inicio rápido de Lingo.dev CLI.
Deberías terminar con:
- una clave API para Lingo.dev
- un archivo
i18n.jsonque configura el comportamiento de un pipeline de traducción - la capacidad de traducir contenido con
npx lingo.dev@latest run
Paso 2. Configurar un secreto del repositorio
- Navega a Settings > Secrets and variables > Actions.
- Haz clic en New repository secret.
- En el campo Name, introduce
LINGODOTDEV_API_KEY. - En el campo Secret, introduce una clave API de Lingo.dev.
- Haz clic en Add secret.
Paso 3. Elegir un flujo de trabajo
Puedes configurar Lingo.dev CI/CD de diferentes maneras para soportar distintos flujos de trabajo. Estos son algunos de los flujos de trabajo que recomendamos (y para los que proporcionamos ejemplos):
- Cuando el contenido se fusiona en
main, realiza commits de traducciones amain - Cuando el contenido se fusiona en
main, crea un pull request desdemain - Cuando el contenido se fusiona en una rama de funcionalidad, realiza commits de traducciones a la rama
- Cuando el contenido se fusiona en una rama de funcionalidad, crea un pull request desde la rama
Pero no existe un flujo de trabajo "mejor". Todos tienen ventajas y desventajas. Si no estás seguro de por dónde empezar, recomendamos comenzar con la primera opción. Es el flujo de trabajo más simple e invisible.
Paso 4. Configurar el flujo de trabajo
-
En el repositorio, crea un directorio
.github/workflows:mkdir -p .github/workflowsAsegúrate de incluir el
.al inicio de.github. -
En el directorio
.github/workflows, crea un archivo YAML:touch .github/workflows/translate.ymlEl nombre del archivo no es importante.
-
Copia uno de los flujos de trabajo de ejemplo en el archivo.
-
Si el flujo de trabajo crea pull requests:
- Navega a Configuración > Acciones > General.
- Habilita Permitir que GitHub Actions cree y apruebe pull requests.
- Haz clic en Guardar.
-
Confirma y envía los cambios a la rama
main:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(Opcional) Paso 5. Personalizar el flujo de trabajo
Lingo.dev CI/CD tiene valores predeterminados que, en la mayoría de los casos, no necesitan personalizarse. Puedes sobrescribirlos pasando entradas a la GitHub Action:
Entradas disponibles:
version: versión de Lingo.dev CLI (predeterminado:"latest")api-key: clave de API de Lingo.dev Platform (requerido)pull-request: crear un pull request con los cambios (predeterminado:false)commit-message: mensaje de commit personalizado (predeterminado:"feat: update translations via @LingoDotDev")pull-request-title: título de pull request personalizado (predeterminado:"feat: update translations via @LingoDotDev")commit-author-name: nombre del autor del commit de Git (predeterminado:"Lingo.dev")commit-author-email: correo electrónico del autor del commit de Git (predeterminado:"[email protected]")working-directory: directorio de trabajo (predeterminado:".")process-own-commits: procesar commits realizados por esta acción (predeterminado:false)parallel: ejecutar en modo paralelo (predeterminado:false)
Ejemplo con entradas personalizadas:
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
Flujos de trabajo de ejemplo
Confirmar en main
Cuando el contenido se fusiona en main, hacer commit de las traducciones a main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Solicitud de extracción desde main
Cuando el contenido se fusiona en main, crear una solicitud de extracción desde main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Commit a rama de características
Cuando el contenido se fusiona en una rama de características, hacer commit de las traducciones a la rama.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Solicitud de extracción desde rama de características
Cuando el contenido se fusiona en una rama de características, crear una solicitud de extracción desde la rama.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}