Ruby on Rails

使用 Lingo.dev CLI 为 Ruby on Rails 提供 AI 翻译

什么是 Ruby on Rails?

Ruby on Rails 是一个用 Ruby 编写的服务端 Web 应用框架。它为数据库、Web 服务和网页提供默认结构,并遵循模型-视图-控制器(MVC)模式。

什么是 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.10",
  "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: