Traducir

Verificar traducciones en GitLab CI

El trabajo instala el paquete kaeris y ejecuta kaeris check en las solicitudes de fusión que tocan tus archivos de localización. Un marcador perdido o una clave faltante hacen fallar la canalización. Es offline y gratuito: sin clave API, sin cuenta.

KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés

La receta

El trabajo

Añádelo a .gitlab-ci.yml. Cambia --source a tu archivo de idioma base y --langs a las localizaciones que envías. El bloque rules ejecuta el trabajo solo en solicitudes de fusión que cambian algo bajo locales/; elimina las líneas changes para ejecutarlo en cada solicitud de fusión.

Configuración.gitlab-ci.yml
i18n-check:
  stage: test
  image: python:3.12-slim
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - locales/**/*
  script:
    - pip install kaeris
    - kaeris check --source locales/en.json --langs de,fr --ci

Lo que imprime, en ejecuciones reales

Salida de kaeris 0.2.35, capturada el 27 de octubre de 2026. La última línea de cada cuadro es el código de salida que ve el trabajo de CI.

Lo que imprime el trabajo

Las dos líneas de script, ejecutadas en orden. Izquierda: archivos que están bien. Derecha: de.json con {nam} en lugar de {name} y la clave checkout faltante; el trabajo se detiene con el código de salida 1.

Archivos que están bienjob log
$ pip install kaeris
Collecting kaeris
  Using cached kaeris-0.2.35-py3-none-any.whl.metadata (26 kB)
Using cached kaeris-0.2.35-py3-none-any.whl (131 kB)
Installing collected packages: kaeris
Successfully installed kaeris-0.2.35

$ kaeris check --source locales/en.json --langs de,fr --ci
✓ de: complete & placeholder-safe
✓ fr: complete & placeholder-safe
✓ all locales complete & placeholder-safe
Job succeeded
exit code: 0
Una traducción rotajob log
$ pip install kaeris
Requirement already satisfied: kaeris in C:\Users\Inzagi\AppData\Local\Temp\claude\C--Users-Inzagi-projects-kaeris\bfeebe69-3cfd-4f28-bbe7-e5600be082b9\scratchpad\venv-gl2\Lib\site-packages (0.2.35)

$ kaeris check --source locales/en.json --langs de,fr --ci
✗ de: 1 missing key(s): checkout
✗ de: 1 placeholder mismatch(es):
    greeting: missing ['{name}'], added ['{nam}']
✗ de: 2 translation fault(s):
    greeting: lost placeholder {name}
    greeting: invented placeholder {nam} (not in source)
✓ fr: complete & placeholder-safe
✗ 1 missing key, 1 placeholder mismatch, 2 translation faults
ERROR: Job failed: exit code 1
exit code: 1

Configúralo en tres pasos

  1. Añadir el trabajo

    Pega el trabajo en .gitlab-ci.yml y configura tu propio --source y --langs.

  2. Abrir una solicitud de fusión

    Cambia un archivo de localización en una rama y abre una solicitud de fusión. El trabajo se ejecuta y muestra todos los hallazgos en su registro.

  3. Requerir el pipeline

    En la configuración del proyecto, bajo solicitudes de fusión, activa que los pipelines deben tener éxito. Un trabajo rojo entonces bloquea la fusión.

Cómo lo comprobamos

Cada comando de esta página se ejecutó antes de ser escrito aquí. Lo que no se ejecutó también se lista.

Opciones que vale la pena conocer

Preguntas

¿Necesita una clave API o una cuenta?

No. kaeris check se describe en su propia ayuda como estático, local y sin API, por lo que el trabajo no necesita ningún secreto. Traducir es un comando separado que sí necesita una clave.

¿Qué detecta la comprobación?

Un marcador perdido o inventado ({name}, %s, {{x}}, plurales ICU), una clave faltante y un archivo de localización que no está allí. La comparación es local y estática. Lo que comprueba, con cada flag

¿Puedo guardar el resultado como un archivo?

Sí: --json imprime el resultado como JSON y --sarif PATH escribe un informe SARIF. Añade el archivo bajo artifacts si quieres conservarlo. Ambos flags están en la ayuda de kaeris check; no ejecutamos una carga de artefactos en GitLab.

Seguir adelante

Otras recetas: GitHub Actions · pre-commit · Make y scripts npm

Referencia de CLI · Referencia de Check · Referencia de GitHub Action · Verificación gratuita en el navegador · Traducir en el navegador