Traducción con reconocimiento de formato
yaku detecta el formato de entrada y ajusta su estrategia de traducción para preservar la estructura. Las claves, bloques de código, URLs y otros elementos no traducibles permanecen intactos.
Detección de formato
Sección titulada «Detección de formato»yaku determina el formato en este orden:
- Opción
--format— sobrescritura explícita:--format json - Extensión de archivo de
-f—.md,.json,.yaml,.yml - Predeterminado — texto plano
| Extensión | Formato detectado |
|---|---|
.md, .markdown, .mdx | Markdown |
.json | JSON |
.yaml, .yml | YAML |
| Todo lo demás | Texto |
Markdown
Sección titulada «Markdown»yaku envía el documento Markdown completo al LLM con reglas adicionales para preservar la estructura:
yaku --to es -f README.en.md -o README.mdLo que se traduce:
- Texto de párrafos
- Texto de encabezados
- Texto de elementos de lista
- Texto visible de enlaces (ej.,
[esta parte](url)) - Texto de citas
Lo que permanece intacto:
- Marcadores de encabezado (
#,##,###) - Bloques de código (delimitados e indentados)
- Código en línea (comillas invertidas)
- URLs de enlaces y rutas de imágenes
- Front matter (
--- ... ---) - Etiquetas HTML
- Marcadores de lista y cita
- Rutas de archivos, URLs y direcciones de correo
Ejemplo
Sección titulada «Ejemplo»Entrada (README.fr.md):
# Démarrage rapide
Installez le paquet :
```bashnpm install my-package```
Consultez la [documentation](https://example.com) pour plus de détails.yaku --to es -f README.fr.mdSalida:
# Inicio rápido
Instale el paquete:
```bashnpm install my-package```
Consulte la [documentación](https://example.com) para más detalles.Note: los marcadores de encabezado, el bloque de código y la URL se preservan. Solo la prosa se traduce.
yaku extrae todos los valores de cadena, los traduce en lote y reensambla el JSON con la estructura original:
yaku --to es -f en.json -o es.jsonLo que se traduce:
- Valores de cadena
Lo que permanece intacto:
- Todas las claves
- Números, booleanos, nulos
- Estructura de anidamiento
- Orden de arreglos
Ejemplo
Sección titulada «Ejemplo»Entrada (en.json):
{ "nav": { "home": "Home", "about": "About Us", "contact": "Contact" }, "hero": { "title": "Build something great", "subtitle": "The fastest way to ship your product", "cta": "Get Started" }, "footer": { "copyright": "All rights reserved", "version": 2 }}yaku --to es -f en.json -o es.jsonSalida (es.json):
{ "nav": { "home": "Inicio", "about": "Sobre nosotros", "contact": "Contacto" }, "hero": { "title": "Construya algo grandioso", "subtitle": "La forma más rápida de lanzar su producto", "cta": "Comenzar" }, "footer": { "copyright": "Todos los derechos reservados", "version": 2 }}Las claves, la estructura y el campo numérico version se preservan exactamente.
Funciona igual que JSON — los valores de cadena se extraen, traducen y reensamblan:
yaku --to es -f en.yaml -o es.yamlEjemplo
Sección titulada «Ejemplo»Entrada (en.yaml):
app: name: My Application description: A task management tool
messages: welcome: Welcome back! error: Something went wrong confirm: Are you sure?
settings: max_retries: 3 debug: falseyaku --to es -f en.yaml -o es.yamlSalida (es.yaml):
app: name: Mi Aplicación description: Una herramienta de gestión de tareas
messages: welcome: "¡Bienvenido de nuevo!" error: Algo salió mal confirm: "¿Está seguro?"
settings: max_retries: 3 debug: falseLas claves, enteros y booleanos se preservan. Solo los valores de cadena se traducen — incluyendo valores cortos de una sola palabra como "dark" o "urgent". Los identificadores de código (camelCase, snake_case, ALL_CAPS) y códigos de idioma (ej., "en", "zh-TW") se mantienen tal cual.
Texto plano
Sección titulada «Texto plano»El formato predeterminado. La entrada completa se envía al LLM tal cual:
echo "Hello, world" | yaku --to esyaku --to es "Good morning"No se realiza análisis estructural. Úselo para texto corto, párrafos o cualquier contenido sin estructura.
Forzar un formato
Sección titulada «Forzar un formato»Sobrescriba la detección automática con --format:
# Tratar stdin como Markdown aunque no haya extensión de archivocat doc.txt | yaku --to es --format md
# Tratar un archivo .txt como YAMLyaku --to es -f data.txt --format yaml