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
-
Crear una aplicación Rails:
rails new rails-demo
-
Navegar al directorio del proyecto:
cd rails-demo
-
Generar un controlador con una vista:
bin/rails generate controller Home index
Paso 2. Crear contenido fuente
-
Abrir el archivo de localización en inglés en
config/locales/en.yml
. -
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
-
Inicia sesión en Lingo.dev a través de la CLI:
npx lingo.dev@latest login
-
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 archivoi18n.lock
para realizar un seguimiento de lo que se ha traducido (para evitar retraducciones innecesarias).
Paso 5. Utilizar las traducciones
-
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
-
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
-
Utiliza el método auxiliar
t
para cargar cadenas localizadas dentro de una vista:<h1><%= t("home.title") %></h1> <p><%= t("home.greeting") %></p>
-
Inicia el servidor de Rails:
bin/rails server
-
Navega a las siguientes URLs:
- http://localhost:3000/en para contenido en inglés
- http://localhost:3000/es para contenido en español