Ruby on Rails

Traducción con IA para Ruby on Rails con Lingo.dev CLI

¿Qué es Ruby on Rails?

Ruby on Rails es un framework de aplicaciones web del lado del servidor escrito en Ruby. Proporciona estructuras predeterminadas para bases de datos, servicios web y páginas web, siguiendo el patrón modelo-vista-controlador (MVC).

¿Qué es Lingo.dev CLI?

Lingo.dev es una plataforma de traducción impulsada por IA. La CLI de Lingo.dev lee archivos fuente, envía contenido traducible a modelos de lenguaje de gran tamaño y escribe los archivos traducidos de vuelta a tu proyecto.

Acerca de esta guía

Esta guía explica cómo configurar Lingo.dev CLI en una aplicación Ruby on Rails. Aprenderás cómo estructurar un proyecto con Rails, configurar un pipeline de traducción y ver los resultados.

Paso 1. Configurar un proyecto Rails

  1. Crea una aplicación Rails:

    rails new rails-demo
    
  2. Navega al directorio del proyecto:

    cd rails-demo
    
  3. Genera un controlador con una vista:

    bin/rails generate controller Home index
    

Paso 2. Crear contenido fuente

  1. Abre el archivo de configuración regional en inglés en config/locales/en.yml.

  2. Añade contenido traducible:

    en:
      home:
        title: "Welcome"
        greeting: "Hello from Rails + Lingo.dev"
    

Paso 3. Configurar la CLI

En la raíz del proyecto, crea un archivo i18n.json:

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es"]
  },
  "buckets": {
    "yaml-root-key": {
      "include": ["config/locales/[locale].yml"]
    }
  }
}

Este archivo define:

  • los archivos que Lingo.dev CLI debe traducir
  • los idiomas entre los que traducir

En este caso, la configuración traduce archivos YAML del inglés al español.

[locale] es un marcador de posición que se reemplaza en tiempo de ejecución. Garantiza que el contenido se lea desde una ubicación (por ejemplo, config/locales/en.yml) y se escriba en una ubicación diferente (por ejemplo, config/locales/es.yml).

Para obtener más información, consulta configuración de i18n.json.

Paso 4. Traduce el contenido

  1. Regístrate para obtener una cuenta de Lingo.dev.

  2. Inicia sesión en Lingo.dev a través de la CLI:

    npx lingo.dev@latest login
    
  3. Ejecuta el pipeline de traducción:

    npx lingo.dev@latest run
    

    La CLI creará un archivo config/locales/es.yml para almacenar el contenido traducido y un archivo i18n.lock para realizar un seguimiento de lo que se ha traducido (para evitar retraducciones innecesarias).

Paso 5. Usa las traducciones

  1. Configura las rutas basadas en locale en config/routes.rb:

    Rails.application.routes.draw do
      scope "(:locale)", locale: /en|es/ do
        root "home#index"
      end
    end
    
  2. Configura el manejo de locale en app/controllers/application_controller.rb:

    class ApplicationController < ActionController::Base
      before_action :set_locale
    
      private
    
      def set_locale
        I18n.locale =
          params[:locale].presence_in(I18n.available_locales.map(&:to_s)) ||
          I18n.default_locale
      end
    
      def default_url_options
        { locale: I18n.locale }
      end
    end
    
  3. Usa el método auxiliar t para cargar cadenas localizadas dentro de una vista:

    <h1><%= t("home.title") %></h1>
    <p><%= t("home.greeting") %></p>
    
  4. Inicia el servidor de Rails:

    bin/rails server
    
  5. Navega a las siguientes URL: