Guía de traducción
Esta guía explica cómo contribuir traducciones a la documentación de FastAPI-fastkit.
Fuente de verdad y política de traducción
El inglés (
en) es la referencia canónica de la documentación de FastAPI-fastkit. Los demás idiomas son destinos de traducción y pueden quedarse atrás respecto a una release o a páginas concretas.Si una página traducida no coincide con la página inglesa, confía en la página inglesa hasta que la traducción se ponga al día. Las traducciones se publican con el nivel de avance al que han llegado los colaboradores — la cobertura parcial es normal y esperada.
La página complementaria de cara al usuario es Estado de las traducciones, que muestra el grado real de traducción de cada idioma y cómo presenta MkDocs las páginas que aún no se han traducido (en resumen: se muestra la versión en inglés).
El CHANGELOG.md de la raíz del repositorio también se mantiene en inglés como historial de releases canónico. Si un idioma expone una página changelog.md, esa página debería enlazar o incluir el changelog canónico en inglés en lugar de mantener un changelog traducido aparte, a menos que la política del proyecto cambie más adelante.
Cuando contribuyas una traducción, actualiza también la tabla de la página de estado para que los usuarios puedan saber qué hay disponible sin adivinarlo a partir del selector de idiomas.
Visión general
FastAPI-fastkit usa un sistema de traducción automatizado impulsado por IA para traducir la documentación a varios idiomas. El sistema:
- Lee la documentación fuente en inglés
- Traduce el contenido con APIs de IA (OpenAI o Anthropic)
- Guarda las traducciones en directorios por idioma
- Crea Pull Requests de GitHub para revisión
La automatización ofrece un punto de partida; sigue siendo necesaria una revisión humana antes de fusionar los cambios. Las traducciones generadas por IA deberían marcarse como "draft" en sus PRs y revisarse por una persona con dominio del idioma antes de integrarse.
Idiomas soportados
Estos son los idiomas que el sitio de documentación compila actualmente. La configuración del destino de compilación por sí sola no significa que las páginas de ese idioma estén traducidas. Consulta Estado de las traducciones para ver el grado real de traducción por idioma.
- 🇰🇷 Coreano (ko)
- 🇯🇵 Japonés (ja)
- 🇨🇳 Chino (zh)
- 🇪🇸 Español (es)
- 🇫🇷 Francés (fr)
- 🇩🇪 Alemán (de)
Requisitos previos
1. Instalar las dependencias de traducción
2. Configurar las claves de API
Necesitas una clave de API de OpenAI o de Anthropic:
# Para OpenAI
export TRANSLATION_API_KEY="sk-..."
# O para Anthropic
export TRANSLATION_API_KEY="sk-ant-..."
3. Instalar GitHub CLI (opcional)
Para crear PRs automáticamente:
# macOS
brew install gh
# Linux
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
# Autenticarse
gh auth login
Uso
Con comandos Make (recomendado)
La forma más fácil de ejecutar las traducciones:
# Traducir toda la documentación a todos los idiomas
make translate
# Traducir a un idioma concreto
make translate LANG=ko
# Indicar el proveedor de API y el modelo
make translate LANG=ko PROVIDER=openai MODEL=gpt-4
make translate LANG=ko PROVIDER=github MODEL=gpt-4o-mini
Usando el script directamente
Traducir toda la documentación
Traducir toda la documentación a todos los idiomas soportados:
Traducir a un idioma concreto
Traducir solo al coreano:
Traducir archivos específicos
Traducir solo ciertos archivos de documentación:
python scripts/translate.py \
--target-lang ko \
--files user-guide/installation.md user-guide/quick-start.md \
--api-provider openai
Saltarse la creación del PR
Traducir sin crear un PR de GitHub:
Usar Anthropic Claude
Usa Claude de Anthropic en lugar de OpenAI:
Estructura de directorios
Después de traducir, la estructura de la documentación queda así:
docs/
├── en/ # Inglés (original)
│ ├── index.md
│ ├── user-guide/
│ │ ├── installation.md
│ │ ├── quick-start.md
│ │ └── ...
│ ├── tutorial/
│ └── ...
├── ko/ # Coreano
│ ├── index.md
│ ├── user-guide/
│ └── ...
├── ja/ # Japonés
├── zh/ # Chino
├── es/ # Español
├── fr/ # Francés
├── de/ # Alemán
├── css/ # Recursos compartidos
├── js/ # Recursos compartidos
└── img/ # Recursos compartidos
Flujo de trabajo de traducción
1. Escribir la documentación en inglés
Toda la documentación se escribe primero en inglés, en el directorio docs/:
2. Ejecutar la traducción
Cuando la documentación en inglés esté lista, ejecuta el script de traducción:
3. Revisar el Pull Request
El script crea un Pull Request con las traducciones. Al revisarlo:
- Comprueba que se mantiene el formato Markdown
- Verifica que los términos técnicos se han tratado correctamente
- Asegúrate de que los ejemplos de código no han cambiado
- Busca problemas específicos del idioma
Política de changelog
- Mantén el
CHANGELOG.mdde la raíz del repositorio en inglés. - No abras PRs de traducción cuyo objetivo sea reescribir el historial de releases en otro idioma dentro del changelog de la raíz.
- Si un idioma necesita una página de changelog, trata
docs/<locale>/changelog.mdcomo una página puente o de acceso al changelog canónico en inglés.
4. Aprobar y mergear (para mantenedores)
Cuando la traducción esté verificada:
5. Desplegar la documentación
El sitio de documentación se reconstruye automáticamente con las nuevas traducciones.
Configuración de la traducción
Edita scripts/translation_config.json para personalizar:
{
"source_language": "en",
"target_languages": [
{
"code": "ko",
"name": "Korean",
"native_name": "한국어",
"enabled": true
}
],
"translation_settings": {
"default_api_provider": "openai",
"batch_size": 5,
"preserve_formatting": true
},
"github_settings": {
"create_pr_by_default": true,
"branch_prefix": "translation"
}
}
Buenas prácticas
Para la documentación fuente
- Lenguaje claro: escribe inglés claro y sencillo que se traduzca bien
- Terminología consistente: usa términos técnicos consistentes
- Bloques de código correctos: especifica siempre el lenguaje en los bloques de código
- Verificación de enlaces: asegúrate de que todos los enlaces internos usan rutas relativas
Para revisar traducciones
- Términos técnicos: verifica que los términos técnicos son adecuados al idioma destino
- Contexto cultural: comprueba si los ejemplos necesitan localización
- Formato: asegúrate de que se conserva todo el formato Markdown
- Integridad del código: verifica que los bloques de código no se han modificado
Solución de problemas
Límites de la API
Si llegas a los límites de la API, traduce en lotes más pequeños:
# Traducir solo la user guide
python scripts/translate.py \
--target-lang ko \
--files user-guide/*.md
Problemas de calidad de la traducción
Si las traducciones son de baja calidad:
- Verifica que tu clave de API es válida
- Prueba con otro proveedor de IA
- Divide documentos complejos en secciones más pequeñas
- Revisa y edita la traducción manualmente
Falla la creación del PR en GitHub
Si la creación del PR falla:
# Traducir sin PR
python scripts/translate.py --target-lang ko --no-pr
# Crear el PR manualmente
git checkout -b translation/ko
git add docs/ko/
git commit -m "Add Korean translations"
git push -u origin translation/ko
gh pr create --title "Add Korean translations"
Traducción manual
También puedes traducir manualmente:
-
Copia el archivo inglés al directorio del idioma destino:
-
Edita el archivo en tu editor preferido
- Haz commit y crea un PR
Cambio de idioma
El sitio de documentación incluye un selector de idioma en la navegación superior. Los usuarios pueden:
- Pulsar el selector de idioma
- Elegir su idioma preferido
- Navegar por la documentación traducida
Contribuir nuevos idiomas
Para añadir un idioma nuevo:
-
Edita
scripts/translation_config.json: -
Actualiza
mkdocs.yml: -
Ejecuta la traducción:
¿Necesitas ayuda?
- Issues: reporta problemas de traducción en GitHub Issues
- Discussions: pregunta en GitHub Discussions
- Cómo contribuir: consulta CONTRIBUTING.md
Estándares de calidad de la traducción
Todas las traducciones deben cumplir estos estándares:
- ✅ Conservar todo el formato Markdown
- ✅ No modificar los bloques de código
- ✅ Mantener la terminología técnica adecuada
- ✅ Usar gramática y ortografía correctas
- ✅ Seguir las convenciones específicas del idioma
- ✅ Comprobar que todos los enlaces funcionan
¡Gracias por contribuir a las traducciones de FastAPI-fastkit! 🌍