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, suivant le modèle modèle-vue-contrôleur (MVC).

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 source, envoie le contenu traduisible aux grands modèles de langage et é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 comment structurer un projet avec Rails, configurer un pipeline de traduction et visualiser les résultats.

Étape 1. Configurer un projet Rails

  1. Créer une application Rails :

    rails new rails-demo
    
  2. Naviguer dans le répertoire du projet :

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

    bin/rails generate controller Home index
    

Étape 2. Créer du contenu source

  1. Ouvrir le fichier de localisation anglais à config/locales/en.yml.

  2. Ajouter du contenu traduisible :

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

Étape 3. Configurer le CLI

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

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 placeholder qui est remplacé à l'exécution. Il garantit que le contenu est lu à partir d'un emplacement (par exemple, config/locales/en.yml) et écrit à 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 l'interface CLI :

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

    npx lingo.dev@latest run
    

    L'interface 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 traductions inutiles).

Étape 5. Utiliser les traductions

  1. Configurez les routes basées sur la locale 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'assistance 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. Naviguez vers les URL suivantes :