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プロジェクトのセットアップ
-
Railsアプリケーションを作成します:
rails new rails-demo
-
プロジェクトディレクトリに移動します:
cd rails-demo
-
コントローラーとビューを生成します:
bin/rails generate controller Home index
ステップ2. ソースコンテンツの作成
-
config/locales/en.yml
にある英語のロケールファイルを開きます。 -
翻訳可能なコンテンツを追加します:
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. コンテンツを翻訳する
-
CLIを通じてLingo.devにログインします:
npx lingo.dev@latest login
-
翻訳パイプラインを実行します:
npx lingo.dev@latest run
CLIは翻訳されたコンテンツを保存するための
config/locales/es.yml
ファイルと、翻訳済みの内容を追跡するためのi18n.lock
ファイル(不要な再翻訳を防ぐため)を作成します。
ステップ 5. 翻訳を使用する
-
config/routes.rb
でロケールベースのルートを設定します:Rails.application.routes.draw do scope "(:locale)", locale: /en|es/ do root "home#index" end end
-
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
-
ビュー内でローカライズされた文字列を読み込むために
t
ヘルパーメソッドを使用します:<h1><%= t("home.title") %></h1> <p><%= t("home.greeting") %></p>
-
Railsサーバーを起動します:
bin/rails server
-
以下のURLにアクセスします:
- 英語コンテンツの場合は http://localhost:3000/en
- スペイン語コンテンツの場合は http://localhost:3000/es