Centro de Ayuda

Automatiza la Localización con IA

La automatización de la localización transforma cómo traduces aplicaciones. El paquete npm ai-l10n trae traducción impulsada por IA directamente a tu flujo de trabajo de desarrollo, soportando archivos JSON y Flutter ARB con características de automatización inteligente.

AI-powered localization automation demonstration

Automatización de localización impulsada por IA en acción

¿Por qué Automatizar la Localización?

La gestión manual de traducciones consume tiempo y es propensa a errores. La automatización proporciona:

  • Ahorra horas de trabajo manual de traducción con automatización impulsada por IA.
  • Asegura consistencia en todas las traducciones con IA consciente del contexto.
  • Integra traducciones directamente en tu pipeline CI/CD.
  • Detecta y traduce automáticamente nuevas cadenas mientras preservas las traducciones existentes.
  • Soporta más de 165 idiomas con calidad de traducción consciente del contexto.

Características Impulsadas por IA

El paquete ai-l10n utiliza IA avanzada para ofrecer traducciones de calidad de producción:

Traducción Consciente del Contexto

La IA entiende el contexto de tus cadenas, preservando marcadores de posición, etiquetas HTML y formato mientras adapta fechas y números a los locales de destino. Evita inteligentemente traducir nombres propios, URLs y términos técnicos.

Detección Inteligente de Proyectos

Detecta automáticamente los idiomas de destino a partir de la estructura de tu proyecto (basada en carpetas o archivos). No es necesario especificar manualmente los idiomas si ya existen en tu proyecto.

Seguridad de Tipos y Preservación de Formato

Preserva los tipos de datos JSON: los números permanecen como números, los booleanos como booleanos, y los valores nulos se mantienen. Soporta formas plurales de i18next con generación automática de sufijos para reglas de pluralización complejas.

Detección Inteligente de Errores y Fragmentación

Detecta automáticamente y vuelve a intentar si se pierden marcadores de posición o formato. Para archivos grandes, divide el contenido en fragmentos manejables mientras mantiene el contexto. Previene problemas comunes con cargas directas de IA donde exceder ~16,000 caracteres causa pérdida de contenido.

Comenzando

Instalación

Instala el paquete ai-l10n usando npm, yarn o pnpm:

npm install ai-l10n

Configura la Clave API

Obtén tu gratuita clave API y configúralo:

npx ai-l10n config --api-key YOUR_API_KEY

Tu Primera Traducción

Traduce tus archivos de localización con un simple comando:

# Auto-detect target languages from project structure
npx ai-l10n translate path/to/en.json

# Specify target languages
npx ai-l10n translate path/to/en.json --languages es,fr,de

Escenarios de Uso

Interfaz de Línea de Comando

Usa la CLI para traducciones rápidas con control total sobre las opciones:

npx ai-l10n translate ./locales/en.json \
  --languages es,fr,de,ja,zh-CN \
  --plural \
  --verbose

Uso Programático

Integra la traducción directamente en tus aplicaciones Node.js:

import { AiTranslator } from 'ai-l10n';

const translator = new AiTranslator();

// Basic translation
const result = await translator.translate({
  sourceFile: './locales/en.json',
  targetLanguages: ['es', 'fr', 'de'],
});

console.log(`Translated to ${result.results.length} languages`);
console.log(`Used ${result.totalCharsUsed} characters`);

Integración CI/CD

Integra sin problemas la traducción impulsada por IA en tus pipelines de CI/CD con nuestra acción de GitHub ai-l10n:

Crea un archivo de configuración:

// example ai-l10n.config.json
[
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["es", "fr", "de"],
    "translateOnlyNewStrings": true
  },
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["pl", "ar"],
    "generatePluralForms": true,
    "translateOnlyNewStrings": true
  }
]

Agrega a tu flujo de trabajo de GitHub Actions:

name: Auto-translate i18n files

on:
  push:
    branches:
      - main
    paths:
      - 'locales/en/**'
      - 'ai-l10n.config.json'

permissions:
  contents: write

jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: l10n-dev/ai-l10n@v1
        with:
          api-key: ${{ secrets.L10N_API_KEY }}
          config-file: 'ai-l10n.config.json'
          pull-request: false

Configuración de GitLab CI usando el comando ai-l10n batch:

# .gitlab-ci.yml
translate:
  stage: deploy
  image: node:20-alpine
  only:
    - main
  changes:
    - locales/en/**/*
    - ai-l10n.config.json
  script:
    - npm install -g ai-l10n
    - npx ai-l10n batch ai-l10n.config.json
  variables:
    L10N_API_KEY: $L10N_API_KEY

Configuración de pipeline de Jenkins usando el comando ai-l10n batch:

// Jenkinsfile
pipeline {
  agent any

  stages {
    stage('Translate') {
      when {
        changeset "locales/en/**"
      }
      steps {
        script {
          sh 'npm install -g ai-l10n'
          withCredentials([string(
            credentialsId: 'l10n-api-key',
            variable: 'L10N_API_KEY'
          )]) {
            sh 'npx ai-l10n batch ai-l10n.config.json'
          }
        }
      }
    }
  }
}

Características Avanzadas

Actualizaciones Incrementales

Traduce solo nuevas claves mientras preservas las traducciones existentes:

# Only translate new keys, preserve existing translations
npx ai-l10n translate path/to/en.json --update

Traducción por Lotes

Traduce múltiples archivos a la vez con un archivo de configuración:

// example translate-config.json
[
  {
    "sourceFile": "./locales/en/common.json",
    "targetLanguages": ["pl", "ru", "ar"],
    "generatePluralForms": true,
    "translateOnlyNewStrings": true
  },
  {
    "sourceFile": "./locales/en/admin.json",
    "targetLanguages": ["pl", "ru", "ar", "de"]
  }
]
npx ai-l10n batch translate-config.json

Formas Plurales de i18next

Genera automáticamente todas las cadenas de formas plurales requeridas con los sufijos correctos para idiomas con reglas de pluralización complejas (como ruso, árabe o polaco):

npx ai-l10n translate ./locales/en.json \
  --languages ru,ar,pl \
  --plural

Soporte para Flutter ARB

Soporte completo para archivos de Flutter Application Resource Bundle con actualizaciones automáticas de metadatos:

npx ai-l10n translate ./lib/l10n/app_en_US.arb \
  --languages es_ES,fr_FR,de

Soporte de Idiomas

l10n.dev soporta más de 165 idiomas con diferentes niveles de competencia:

  • Fuerte (12 idiomas): Inglés, Español, Francés, Alemán, Chino, Ruso, Portugués, Italiano, Japonés, Coreano, Árabe, Hindi
  • Alto (53 idiomas): La mayoría de los idiomas europeos y asiáticos, incluyendo holandés, sueco, polaco, turco, vietnamita, tailandés y más
  • Moderado (más de 100 idiomas): Amplia gama de idiomas del mundo

Detección de Estructura del Proyecto

ai-l10n detecta automáticamente la estructura de tu proyecto y genera traducciones en consecuencia:

Estructura Basada en Carpetas

Organiza traducciones por carpetas de idioma:

locales/
  en/
    common.json
    errors.json
  es/              # Auto-detected
    common.json
    errors.json
  fr-FR/           # Auto-detected
    common.json

Estructura Basada en Archivos

Usa archivos separados para cada idioma:

locales/
  en.json          # Source
  es.json          # Auto-detected
  fr-FR.json       # Auto-detected
  zh-Hans-CN.json  # Auto-detected

Mejores Prácticas

  • Usa Actualizaciones Incrementales: Usa la bandera --update para traducir solo nuevas cadenas, preservando las traducciones existentes y ahorrando caracteres.
  • Integra con CI/CD: Automatiza traducciones en cada commit a tus archivos de idioma fuente para traducciones siempre actualizadas.
  • Almacena Claves API de Forma Segura: Usa variables de entorno o gestión de secretos para claves API en entornos CI/CD.
  • Revisa Contenido Filtrado: Revisa archivos .filtered por cadenas excluidas debido a violaciones de políticas de contenido.
  • Usa Configuración por Lotes: Para múltiples archivos, usa configuración de traducción por lotes para gestionar todas las traducciones desde un solo comando.

¿Listo para optimizar tu flujo de trabajo de localización con IA?