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 项目
-
创建一个 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 应该翻译的文件
- 翻译的语言对
在此配置中,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 用于西班牙文内容