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

  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.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. Переведите контент

  1. Зарегистрируйтесь в Lingo.dev.

  2. Войдите в Lingo.dev через CLI:

    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-адресам: