Ruby on Rails

Lingo.dev CLI를 사용한 Ruby on Rails의 AI 번역

Ruby on Rails란 무엇인가요?

Ruby on Rails는 Ruby로 작성된 서버 측 웹 애플리케이션 프레임워크입니다. 모델-뷰-컨트롤러(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.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. 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로 이동하세요: