Ruby on Rails

Lingo.dev CLIを使用したRuby on RailsのAI翻訳

Ruby on Railsとは?

Ruby on RailsはRubyで書かれたサーバーサイドWebアプリケーションフレームワークです。モデル-ビュー-コントローラー(MVC)パターンに従い、データベース、Webサービス、Webページのデフォルト構造を提供します。

Lingo.dev CLIとは?

Lingo.devはAI駆動の翻訳プラットフォームです。Lingo.dev CLIはソースファイルを読み込み、翻訳可能なコンテンツを大規模言語モデルに送信し、翻訳されたファイルをプロジェクトに書き戻します。

このガイドについて

このガイドではRuby on RailsアプリケーションでLingo.dev CLIをセットアップする方法を説明します。Railsでプロジェクトをスキャフォールドし、翻訳パイプラインを設定し、結果を表示する方法を学びます。

ステップ1. Railsプロジェクトのセットアップ

  1. Railsアプリケーションを作成します:

    rails new rails-demo
    
  2. プロジェクトディレクトリに移動します:

    cd rails-demo
    
  3. コントローラーとビューを生成します:

    bin/rails generate controller Home index
    

ステップ2. ソースコンテンツの作成

  1. config/locales/en.ymlにある英語のロケールファイルを開きます。

  2. 翻訳可能なコンテンツを追加します:

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

ステップ3. CLIの設定

プロジェクトのルートに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"]
    }
  }
}

このファイルは以下を定義します:

  • Lingo.dev CLIが翻訳すべきファイル
  • 翻訳する言語間

この場合、設定は英語からスペイン語へのYAMLファイルの翻訳を行います。

[locale]は実行時に置き換えられるプレースホルダーです。これにより、コンテンツが一つの場所(例:config/locales/en.yml)から読み込まれ、別の場所(例:config/locales/es.yml)に書き込まれることを保証します。

詳細については、i18n.json設定を参照してください。

ステップ 4. コンテンツを翻訳する

  1. Lingo.devアカウントにサインアップする

  2. CLIを通じてLingo.devにログインします:

    npx lingo.dev@latest login
    
  3. 翻訳パイプラインを実行します:

    npx lingo.dev@latest run
    

    CLIは翻訳されたコンテンツを保存するためのconfig/locales/es.ymlファイルと、翻訳済みの内容を追跡するためのi18n.lockファイル(不要な再翻訳を防ぐため)を作成します。

ステップ 5. 翻訳を使用する

  1. config/routes.rbでロケールベースのルートを設定します:

    Rails.application.routes.draw do
      scope "(:locale)", locale: /en|es/ do
        root "home#index"
      end
    end
    
  2. 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. ビュー内でローカライズされた文字列を読み込むためにtヘルパーメソッドを使用します:

    <h1><%= t("home.title") %></h1>
    <p><%= t("home.greeting") %></p>
    
  4. Railsサーバーを起動します:

    bin/rails server
    
  5. 以下のURLにアクセスします: