Google AI

Traducción con IA mediante Google Gemini y Lingo.dev Compiler

¿Qué es Google AI?

Google AI Studio es un entorno de desarrollo basado en web para construir, probar e implementar aplicaciones impulsadas por los modelos de IA generativa de Google, como Gemini. Permite a los desarrolladores experimentar con prompts, ajustar respuestas e integrar modelos en aplicaciones mediante APIs, todo dentro de una interfaz fácil de usar conectada a Google Cloud.

Configuración de la clave API

Google AI requiere una clave API para autenticar solicitudes desde Lingo.dev Compiler. Elige el método de configuración que mejor se adapte a tu flujo de trabajo:

Opción 1: Variable de entorno (Terminal)

Ideal para experimentos rápidos y pruebas sin modificar archivos.

Establece la clave directamente en tu sesión de terminal:

export GOOGLE_API_KEY="tu-clave-api-aquí"

Esta clave solo estará disponible hasta que cierres la ventana de terminal.

Opción 2: Configuración del proyecto (.env)

Ideal para configuración específica de proyectos y entornos de equipo donde cada proyecto puede usar diferentes credenciales.

Crea un archivo .env en la raíz de tu proyecto:

touch .env

Añade la siguiente línea al archivo:

GOOGLE_API_KEY="tu-clave-api-aquí"

Lingo.dev Compiler verifica los archivos de entorno en este orden de prioridad:

  1. .env.development (prioridad más alta)
  2. .env.local
  3. .env (prioridad más baja)

Los valores en archivos de mayor prioridad sobrescriben los de archivos de menor prioridad.

Opción 3: Configuración global (Ajustes de usuario)

Ideal para desarrolladores individuales que quieren usar la misma clave API en todos sus proyectos.

Crea un archivo de configuración en tu directorio principal:

touch ~/.lingodotdevrc

Añade el siguiente contenido al archivo:

[llm]
googleApiKey="tu-clave-api-aquí"

Esta configuración persiste a través de todas las sesiones de terminal y proyectos en tu máquina.

Prioridad de configuración

Cuando se utilizan múltiples métodos de configuración, Lingo.dev Compiler verifica las claves API en este orden:

  1. Variables de entorno (prioridad más alta)
  2. Archivos .env del proyecto (en su propio orden de prioridad)
  3. Archivo de configuración del usuario ~/.lingodotdevrc (prioridad más baja)

Se utiliza la primera clave API válida que se encuentre.

Uso de Google AI

Para habilitar Google AI, establece la propiedad models en las opciones del compilador:

import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
import { type UserConfig } from "vite";

// https://vite.dev/config/
const viteConfig: UserConfig = {
  plugins: [react()],
};

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja"],
  rsc: false,
  useDirective: false,
  debug: false,
  models: {
    "*:*": "google:gemini-1.5-flash",
  },
});

export default withLingo(viteConfig);

La propiedad acepta un objeto donde:

  • las claves son pares de locales de origen y destino, con * representando cualquier locale
  • los valores son identificadores de modelo (por ejemplo, google:gemini-1.5-flash)

Puedes usar Google AI para traducir:

  • entre todos los locales
  • desde un locale de origen específico
  • a un locale de destino específico
  • entre un locale de origen y destino específicos

Traducción de todos los locales

Utiliza el patrón comodín *:* para aplicar el mismo modelo de Google a todos los pares de traducción:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Usar Gemini 1.5 Flash para todos los pares de traducción
    "*:*": "google:gemini-1.5-flash",
  },
});

Traducción desde un locale de origen específico

Utiliza un locale de origen específico con un comodín de destino para aplicar un modelo a todas las traducciones desde ese origen:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Usar Gemini 1.5 Pro para todas las traducciones desde inglés
    "en:*": "google:gemini-1.5-pro",
    // Usar Gemini 1.5 Flash para traducciones desde español a cualquier idioma
    "es:*": "google:gemini-1.5-flash",
    // Fallback para otros idiomas de origen
    "*:*": "google:gemini-1.5-flash-latest",
  },
});

Traducción a un idioma de destino específico

Utiliza un comodín de origen con un idioma de destino específico para aplicar un modelo a todas las traducciones a ese destino:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Usar modelo especializado para traducciones al japonés
    "*:ja": "google:gemini-1.5-pro",
    // Usar Gemini 1.5 Flash para traducciones al chino
    "*:zh": "google:gemini-1.5-flash",
    // Usar Gemini 1.5 Pro para traducciones al alemán
    "*:de": "google:gemini-1.5-pro-latest",
    // Predeterminado para otros idiomas de destino
    "*:*": "google:gemini-1.5-flash",
  },
});

Traducción entre idiomas específicos

Define pares exactos de origen-destino para un control preciso sobre qué modelo maneja combinaciones específicas de idiomas:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Pares específicos con modelos óptimos
    "en:es": "google:gemini-1.5-flash", // Inglés a español
    "en:ja": "google:gemini-1.5-pro", // Inglés a japonés
    "en:zh": "google:gemini-1.5-pro", // Inglés a chino
    "es:en": "google:gemini-1.5-flash", // Español a inglés
    "fr:en": "google:gemini-1.5-flash-latest", // Francés a inglés
    "de:en": "google:gemini-1.0-pro", // Alemán a inglés

    // Respaldo para pares no especificados
    "*:*": "google:gemini-1.5-flash",
  },
});