Ruby on Rails

Traduction IA pour Ruby on Rails avec Lingo.dev CLI

Qu'est-ce que Ruby on Rails ?

Ruby on Rails est un framework d'application web côté serveur écrit en Ruby. Il fournit des structures par défaut pour les bases de données, les services web et les pages web, en suivant le modèle MVC (modèle-vue-contrôleur).

Qu'est-ce que Lingo.dev CLI ?

Lingo.dev est une plateforme de traduction alimentée par l'IA. Le CLI Lingo.dev lit les fichiers sources, envoie le contenu traduisible aux grands modèles de langage et réécrit les fichiers traduits dans votre projet.

À propos de ce guide

Ce guide explique comment configurer Lingo.dev CLI dans une application Ruby on Rails. Vous apprendrez à créer un projet avec Rails, configurer un pipeline de traduction et visualiser les résultats.

Étape 1. Configurer un projet Rails

  1. Créez une application Rails :

    rails new rails-demo
    
  2. Accédez au répertoire du projet :

    cd rails-demo
    
  3. Générez un contrôleur avec une vue :

    bin/rails generate controller Home index
    

Étape 2. Créer le contenu source

  1. Ouvrez le fichier de locale anglaise situé à config/locales/en.yml.

  2. Ajoutez du contenu traduisible :

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

Étape 3. Configurer le CLI

À la racine du projet, créez un fichier 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"]
    }
  }
}

Ce fichier définit :

  • les fichiers que Lingo.dev CLI doit traduire
  • les langues entre lesquelles traduire

Dans ce cas, la configuration traduit les fichiers YAML de l'anglais vers l'espagnol.

[locale] est un espace réservé qui est remplacé à l'exécution. Il garantit que le contenu est lu depuis un emplacement (par exemple, config/locales/en.yml) et écrit vers un emplacement différent (par exemple, config/locales/es.yml).

Pour en savoir plus, consultez Configuration i18n.json.

Étape 4. Traduire le contenu

  1. Créez un compte Lingo.dev.

  2. Connectez-vous à Lingo.dev via la CLI :

    npx lingo.dev@latest login
    
  3. Exécutez le pipeline de traduction :

    npx lingo.dev@latest run
    

    La CLI créera un fichier config/locales/es.yml pour stocker le contenu traduit et un fichier i18n.lock pour suivre ce qui a été traduit (afin d'éviter les retraductions inutiles).

Étape 5. Utiliser les traductions

  1. Configurez les routes basées sur les locales dans config/routes.rb :

    Rails.application.routes.draw do
      scope "(:locale)", locale: /en|es/ do
        root "home#index"
      end
    end
    
  2. Configurez la gestion des locales dans 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. Utilisez la méthode d'aide t pour charger les chaînes localisées dans une vue :

    <h1><%= t("home.title") %></h1>
    <p><%= t("home.greeting") %></p>
    
  4. Démarrez le serveur Rails :

    bin/rails server
    
  5. Accédez aux URL suivantes :