Centro Assistenza

Automatizza la localizzazione con l'AI

L'automazione della localizzazione trasforma il modo in cui traduci le applicazioni. Il pacchetto npm ai-l10n porta la traduzione potenziata dall'AI direttamente nel tuo flusso di lavoro di sviluppo, supportando i file JSON e Flutter ARB con funzionalità di automazione intelligenti.

AI-powered localization automation demonstration

Automazione della localizzazione potenziata dall'AI in azione

Perché automatizzare la localizzazione?

La gestione della traduzione manuale richiede tempo ed è soggetta a errori. L'automazione offre:

  • Risparmia ore di lavoro di traduzione manuale con automazione potenziata dall'AI.
  • Garantisci coerenza in tutte le traduzioni con un'AI consapevole del contesto.
  • Integra le traduzioni direttamente nella tua pipeline CI/CD.
  • Rileva e traduci automaticamente nuove stringhe preservando le traduzioni esistenti.
  • Supporta oltre 165 lingue con qualità di traduzione consapevole del contesto.

Funzionalità potenziate dall'AI

Il pacchetto ai-l10n utilizza un'AI avanzata per fornire traduzioni di qualità per la produzione:

Traduzione consapevole del contesto

L'AI comprende il contesto delle tue stringhe, preservando i segnaposto, i tag HTML e il formato mentre adatta date e numeri ai locali di destinazione. Evita intelligentemente di tradurre nomi propri, URL e termini tecnici.

Rilevamento intelligente del progetto

Rileva automaticamente le lingue di destinazione dalla struttura del tuo progetto (basata su cartelle o file). Non è necessario specificare manualmente le lingue se sono già presenti nel tuo progetto.

Sicurezza dei tipi e preservazione del formato

Preserva i tipi di dati JSON: i numeri rimangono numeri, i booleani rimangono booleani, i valori nulli sono mantenuti. Supporta le forme plurali di i18next con generazione automatica dei suffissi per regole di pluralizzazione complesse.

Rilevamento intelligente degli errori e suddivisione

Rileva automaticamente e riprova se i segnaposto o il formato vengono persi. Per file di grandi dimensioni, suddivide il contenuto in parti gestibili mantenendo il contesto. Previene problemi comuni con caricamenti diretti dell'AI dove superare ~16.000 caratteri causa perdita di contenuto.

Iniziare

Installazione

Installa il pacchetto ai-l10n utilizzando npm, yarn o pnpm:

npm install ai-l10n

Configura la chiave API

Ottieni la tua gratuita chiave API e configurala:

npx ai-l10n config --api-key YOUR_API_KEY

La tua prima traduzione

Traduci i tuoi file di localizzazione con un semplice 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

Scenari d'uso

Interfaccia a riga di comando

Usa la CLI per traduzioni rapide con pieno controllo sulle opzioni:

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

Utilizzo programmatico

Integra la traduzione direttamente nelle tue applicazioni 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`);

Integrazione CI/CD

Integra senza soluzione di continuità la traduzione potenziata dall'IA nelle tue pipeline CI/CD con la nostra azione GitHub ai-l10n:

Crea un file di configurazione:

// 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
  }
]

Aggiungi al tuo workflow di 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

Configurazione di GitLab CI utilizzando il comando batch ai-l10n:

# .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

Configurazione della pipeline di Jenkins utilizzando il comando batch ai-l10n:

// 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'
          }
        }
      }
    }
  }
}

Funzionalità avanzate

Aggiornamenti incrementali

Traduci solo nuove chiavi preservando le traduzioni esistenti:

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

Traduzione batch

Traduci più file contemporaneamente con un file di configurazione:

// 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

Forme plurali di i18next

Genera automaticamente tutte le stringhe di forma plurale richieste con suffissi corretti per lingue con regole di pluralizzazione complesse (come russo, arabo o polacco):

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

Supporto per Flutter ARB

Supporto completo per i file Flutter Application Resource Bundle con aggiornamenti automatici dei metadati:

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

Supporto linguistico

l10n.dev supporta oltre 165 lingue con diversi livelli di competenza:

  • Forte (12 lingue): Inglese, Spagnolo, Francese, Tedesco, Cinese, Russo, Portoghese, Italiano, Giapponese, Coreano, Arabo, Hindi
  • Alto (53 lingue): La maggior parte delle lingue europee e asiatiche, inclusi olandese, svedese, polacco, turco, vietnamita, tailandese e altro
  • Moderato (oltre 100 lingue): Ampia gamma di lingue del mondo

Rilevamento della struttura del progetto

ai-l10n rileva automaticamente la struttura del tuo progetto e genera traduzioni di conseguenza:

Struttura basata su cartelle

Organizza le traduzioni per cartelle di lingua:

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

Struttura basata su file

Usa file separati per ogni lingua:

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

Migliori pratiche

  • Usa aggiornamenti incrementali: Usa il flag --update per tradurre solo nuove stringhe, preservando le traduzioni esistenti e risparmiando caratteri.
  • Integra con CI/CD: Automatizza le traduzioni ad ogni commit dei tuoi file di lingua sorgente per traduzioni sempre aggiornate.
  • Conserva le chiavi API in modo sicuro: Usa variabili d'ambiente o gestione dei segreti per le chiavi API negli ambienti CI/CD.
  • Controlla il contenuto filtrato: Controlla i file .filtered per le stringhe escluse a causa di violazioni della politica dei contenuti.
  • Usa la configurazione batch: Per più file, usa la configurazione di traduzione batch per gestire tutte le traduzioni da un unico comando.

Pronto a snellire il tuo flusso di lavoro di localizzazione con l'AI?