Traductions Ruby on Rails avec une IA de qualité humaine

Traduisez votre application Ruby on Rails (RoR) avec une IA qui fournit des résultats de qualité humaine. Commencez gratuitement pendant 30 jours sans avoir besoin de carte de crédit. PTC traduira pour vous les textes dans les fichiers de ressources du projet, ainsi que les textes générés par les utilisateurs. Avec PTC, vous pouvez créer des applications entièrement multilingues, avec un budget réduit, à la qualité d’une traduction humaine.

Traduisez votre projet RoR avec PTC pour la première fois

PTC vous permet d’automatiser le processus de traduction en s’intégrant directement dans votre dépôt Git ou votre flux CI. Cependant, pour cette traduction initiale, nous utiliserons le téléchargement manuel de fichiers. De cette façon, vous pouvez essayer PTC sans lui donner aucun accès ou passer du temps sur l’intégration.

Étape 1

Inscrivez-vous pour un essai gratuit de 30 jours

Créez votre compte gratuit pour commencer à traduire immédiatement. Vous bénéficierez d’un accès complet à PTC pendant 30 jours sans qu’aucune carte de crédit ne soit requise.

Étape 2

Créer un nouveau projet

Dans l’assistant, sélectionnez l’option Chargement manuel de fichier. Cela fonctionne parfaitement pour les fichiers YAML, couramment utilisés pour gérer les traductions Rails, ainsi que pour de nombreux autres formats de fichiers pris en charge.

Étape 3

Décrivez votre projet

Ajoutez une brève description de votre application Rails et de son objectif. Private Translation Cloud utilise ce contexte pour choisir le style de traduction, le ton et la terminologie appropriés pour votre public.

Étape 4

Chargez votre fichier YAML

Chargez le fichier Rails i18n que vous souhaitez traduire (généralement config/locales/en.yml).

Étape 5

Sélectionnez vos langues cibles

Choisissez les langues dans lesquelles vous souhaitez traduire. Private Translation Cloud prend en charge plus de 33 langues et fournit des traductions de qualité humaine pour toutes les langues parlées sur les principaux marchés.

Étape 6

Consultez et téléchargez vos traductions

En quelques minutes, vous verrez vos traductions Rails dans l’onglet Traductions. Elles apparaissent dans un tableau clair organisé par langue.

Les chaînes longues sont signalées en jaune afin que vous puissiez décider de les conserver ou de demander à PTC de générer une version plus courte.

Lorsque vous êtes prêt, rendez-vous dans l’onglet Fichiers de ressources pour télécharger vos traductions sous forme d’archive ZIP. Si vous avez traduit dans plusieurs langues, chacune sera fournie sous forme de fichier YAML distinct (par exemple fr.yml, de.yml).

Étape 7

Ajoutez les fichiers traduits à votre application Rails

Placez les fichiers téléchargés dans le répertoire config/locales/ de votre projet Rails. Rails les chargera automatiquement au moment de l’exécution, vous pouvez donc changer les paramètres régionaux à l’aide du I18n.locale sans modifier le code.

Voilà, vous avez traduit une application Rails avec PTC !

Traduisez les e-mails, les notifications et autres textes pour votre application Rails

Les projets Rails incluent du texte important en dehors des fichiers config/locales/*.yml — par exemple, les e-mails d’authentification Devise ou les notifications système. Une fois que vous avez traduit vos fichiers YAML, utilisez la fonctionnalité Coller pour traduire de PTC pour obtenir les mêmes traductions tenant compte du contexte pour ces textes.

  1. Allez dans Traductions → Coller pour traduire
  2. Collez le texte que vous souhaitez traduire (par exemple, votre e-mail de réinitialisation de mot de passe)
  3. Cliquez sur Traduire

Vous obtiendrez instantanément des traductions de haute qualité, tenant compte du contexte, que vous pourrez copier dans vos vues de messagerie, vos notifications Active Job ou votre documentation.

Automatisez vos traductions Rails avec l’intégration Git ou CI

Une fois que vous avez confirmé la qualité de PTC avec un chargement manuel, l’étape suivante consiste à automatiser le flux de travail en l’intégrant à Git ou à CI. De cette façon, chaque mise à jour que vous effectuez est envoyée et traduite automatiquement.

PTC vous offre deux options flexibles pour automatiser les traductions dans une application Rails :

  1. Intégration Git – Connectez votre référentiel GitHub, GitLab ou Bitbucket. Chaque fois que vos fichiers Rails i18n changent, PTC détecte la mise à jour et ouvre une demande d’extraction avec les nouvelles traductions.
  2. Intégration APIUtilisez l’API pour intégrer PTC dans votre pipeline de déploiement. Votre projet Rails peut envoyer automatiquement des chaînes sources mises à jour et récupérer les fichiers YAML traduits, ce qui permet de maintenir votre application multilingue sans effort manuel.

Exemple Rails i18n : démonstration d’une application Rails traduisible

Pour montrer comment l’internationalisation (i18n) et la traduction de Ruby on Rails fonctionnent en pratique, nous avons créé une petite application de démonstration Rails. L’application affiche l’heure actuelle du serveur avec un bouton d’actualisation et comprend un simple sélecteur de langue. Chaque étape ci-dessous a une référence de commit afin que vous puissiez suivre les modifications du code.

1

Ajouter la prise en charge de rails i18n

Tout d’abord, dans config/application.rb, indiquez à Rails les langues que l’application doit prendre en charge et définissez des paramètres régionaux par défaut.

config.i18n.default_locale = :en
I18n.available_locales = [:en, :es, :de]

Ensuite, ajoutez les paramètres régionaux à l’URL afin que chaque langue ait son propre chemin, comme /en/time ou /es/time.

scope "/:locale" do
  get '/time', to: 'home#index', as: :time_display
end

Enfin, dans app/controllers/application_controller.rb, assurez-vous que Rails charge les bons paramètres régionaux à partir de l’URL et les inclut dans tous les liens.

class ApplicationController < ActionController::Base
  around_action :switch_locale

  def switch_locale(&action)
    locale = params[:locale] || I18n.default_locale
    I18n.with_locale(locale, &action)
  end

  def default_url_options
    { locale: I18n.locale }
  end
end

Référence de commit : configurer i18n

2

Ajoutez un sélecteur de langue

Maintenant que l’application prend en charge plusieurs paramètres régionaux, donnez aux utilisateurs un moyen de basculer entre eux.

Rails inclut déjà les paramètres régionaux actuels dans toutes les URL générées (en raison de la méthode default_url_options dans ApplicationController). Cela signifie que vous pouvez créer une interface utilisateur simple qui ne met à jour que le paramètre de paramètres régionaux tout en gardant l’utilisateur sur la même page.

Dans notre application de démonstration, le sélecteur de langue est ajouté dans app/views/layouts/application.html.erb et stylisé dans app/assets/stylesheets/application.css.

<nav>
  <%= link_to "English",  url_for(locale: :en) %> |
  <%= link_to "Español",  url_for(locale: :es) %> |
  <%= link_to "Deutsch",  url_for(locale: :de) %>
</nav>

Référence de commit : Ajouter un sélecteur de langue

3

Rendez tout le texte traduisible (Ruby et JavaScript)

Avant de pouvoir traduire votre application, tout le texte visible par l’utilisateur doit se trouver dans les fichiers Rails i18n au lieu d’être codé en dur. Cela signifie :

  • Faites de même pour tout texte JavaScript visible (comme les alertes ou les info-bulles)
  • Remplacez le texte dans les vues et les contrôleurs par des clés de traduction
  • Ajoutez ces clés et leurs valeurs de langue par défaut à config/locales/en.yml

Partie a. Remplacez le texte dans les vues et les contrôleurs

Rails utilise l’assistant intégré I18n.t (ou simplement t) pour rechercher des chaînes dans vos fichiers de traduction.

Correct (en utilisant les clés de traduction) :

<h1><%= t(:hello) %></h1>
<p><%= t(:current_time, time: @time) %></p>
<button id="click-me"><%= t(:refresh) %></button>

Incorrect (texte codé en dur) :

<h1>Hello</h1>
<p>Current time: <%= @time %></p>
<button>Refresh</button>

Le texte codé en dur n’apparaîtra pas dans votre fichier YAML, ce qui signifie qu’il ne pourra pas être traduit ultérieurement.

Ajoutez ces clés dans config/locales/en.yml :

en:
  hello: "Hello"
  current_time: "Current time: %{time}"
  refresh: "Refresh"

Référence de commit : internationaliser le code Ruby

Partie b. Ajoutez des chaînes JavaScript à YAML

Rails n’extrait pas automatiquement le texte des fichiers JavaScript. Si vous avez des chaînes affichées aux utilisateurs dans le navigateur, comme des alertes, des info-bulles ou des messages de confirmation, vous devrez également les placer dans votre fichier YAML de langue source.

Par exemple, pour traduire une fenêtre contextuelle de confirmation en JavaScript, ajoutez la chaîne à config/locales/en.yml :

en:
  confirm: "Are you sure?"

Plus tard, cela sera exporté avec vos traductions Ruby afin que les vues et JavaScript utilisent les mêmes clés.

À ce stade, votre fichier en.yml contient tout le texte qui apparaît dans votre application. Ce fichier est la version de base que Private Translation Cloud utilisera pour créer des traductions dans d’autres langues.

4

Traduisez les fichiers YAML avec PTC

Maintenant que tout le texte de votre application est stocké dans config/locales/en.yml, vous pouvez vous connecter à votre compte PTC et générer des traductions.

  • PTC s’est connecté à notre référentiel et a automatiquement détecté le fichier anglais
  • Il a créé des versions traduites comme fr.yml et de.yml
  • Il a ouvert une demande d’extraction avec les nouveaux fichiers dans le même dossier

Chaque fichier traduit conserve les mêmes clés et la même structure que la version anglaise, vous pouvez donc les fusionner en toute sécurité dans votre projet.

Référence de commit : Traductions IA créées par PTC

5

Chargez les traductions en JavaScript

Vos fichiers .yml traduits fonctionnent automatiquement dans les vues Rails. Mais JavaScript ne peut pas lire YAML — il a besoin de JSON.

Pour rendre vos traductions disponibles en JavaScript, utilisez la gem i18n-js pour convertir YAML en un fichier JSON que le navigateur peut lire :

  1. Ajoutez la gem i18n-js à votre Gemfile et exécutez bundle install.
  2. Après l’installation, exécutez i18n init pour générer la configuration par défaut.
  3. Mettez à jour votre configuration pour définir le fichier sur public/locales.json. Cela prépare votre application à stocker les traductions dans un fichier JSON auquel JavaScript peut accéder.

Référence de commit : ajouter i18n-js

Maintenant, exécutez la commande i18n export. Cette commande lit vos fichiers .yml et écrit les clés traduites dans public/locales.json.

Référence de commit : exporter les traductions

6

Utilisez les traductions en JavaScript

Avec locales.json en place, vous pouvez charger les traductions dans votre code JavaScript et afficher le texte correct en fonction de la langue active.

Rails 7 inclut Importmap , ce qui facilite la gestion des dépendances JavaScript sans bundlers.

  1. Épinglez les bibliothèques dans config/importmap.rb :
pin "i18n-js", to: "https://esm.sh/i18n-js@latest/dist/import/index.js"
pin "load_locale", to: "load_locale.js"
  1. Créez un fichier dans app/javascript/load_locale.js et ajoutez un script de chargement pour récupérer le fichier JSON :
export async function loadLocale() {
  const response = await fetch('/locales.json');
  const data = await response.json();
  return data;
}

Maintenant, votre JavaScript peut récupérer les traductions et les afficher comme les vues Rails.

7

Affichez la bonne langue en JavaScript

À ce stade, Rails exporte les traductions vers locales.json et votre JavaScript peut les charger. La dernière étape consiste à s’assurer que JavaScript utilise les mêmes paramètres régionaux que les vues Rails.

  1. Transmettez les paramètres régionaux actuels au frontend en les ajoutant à la balise <body> :
<!-- app/views/layouts/application.html.erb -->
<body data-locale="<%= I18n.locale %>">
  1. Importez i18n-js et la fonction de chargement dans votre JavaScript :
import { I18n } from "i18n-js"
import { loadLocale } from "./load_locale"
  1. Lorsque la page se charge, récupérez les traductions et définissez les paramètres régionaux :
document.addEventListener('turbo:load', async () => {
  const translations = await loadLocale()
  const i18n = new I18n(translations)

  // use the current locale from the body tag
  i18n.locale = document.body.dataset['locale']

  // Example: confirmation dialog
  if (confirm(i18n.t('confirm'))) {
    // user clicked OK
  }
})

Maintenant, votre JavaScript affichera les messages dans la langue sélectionnée, tout comme vos vues Rails.

Référence de commit : internationaliser JavaScript

Avec cela, l’application de démonstration est entièrement multilingue : les vues Rails et JavaScript affichent la bonne langue, et Private Translation Cloud maintient les traductions à jour.

Commencez à traduire votre application Rails dès aujourd’hui

Vous avez vu comment PTC rend une application Rails multilingue, en commençant par une évaluation manuelle rapide et en passant à une automatisation complète Git ou CI. Démarrez votre essai gratuit de 30 jours dès aujourd’hui et apportez des traductions IA de qualité humaine à votre projet Rails en quelques minutes.

Faire défiler vers le haut