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. El CLI de Lingo.dev lee archivos fuente, envía contenido traducible a modelos de lenguaje de gran escala 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 proceso de traducción y ver los resultados.

Paso 1. Configurar un proyecto Rails

  1. Crear una aplicación Rails:

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

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

    bin/rails generate controller Home index
    

Paso 2. Crear contenido fuente

  1. Abrir el archivo de localización en inglés en config/locales/en.yml.

  2. Añadir contenido traducible:

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

Paso 3. Configurar el CLI

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

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": 1.8,
  "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. Asegura 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 i18n.json.

Paso 4. Traducir 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 proceso 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. Utilizar las traducciones

  1. Configura las rutas basadas en el idioma 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 idiomas 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. Utiliza 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 URLs: