Ruby on Rails
AI-перевод для Ruby on Rails с использованием Lingo.dev CLI
Что такое Ruby on Rails?
Ruby on Rails — это серверный фреймворк для веб-приложений, написанный на языке Ruby. Он предоставляет стандартные структуры для баз данных, веб-сервисов и веб-страниц, следуя паттерну модель-представление-контроллер (MVC).
Что такое Lingo.dev CLI?
Lingo.dev — это платформа перевода на основе искусственного интеллекта. Lingo.dev CLI считывает исходные файлы, отправляет переводимый контент в крупные языковые модели и записывает переведенные файлы обратно в ваш проект.
О данном руководстве
Это руководство объясняет, как настроить Lingo.dev CLI в приложении Ruby on Rails. Вы узнаете, как создать проект с помощью 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. Переведите контент
-
Войдите в Lingo.dev через CLI:
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 для контента на испанском языке