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.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {
"yaml-root-key": {
"include": ["config/locales/[locale].yml"]
}
}
}
Этот файл определяет:
- файлы, которые CLI Lingo.dev должен переводить
- языки, между которыми выполняется перевод
В данном случае конфигурация переводит 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 runCLI создаст файл
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 для контента на испанском