Kyurasi

kyurasi.com/@junmannn_yoon

rails i18n 하는 방법, rails 언어처리 (5분 내외)

rails 언어처리 방법에 대해서 한번 포스팅을 해보려 합니다. 학생때야 하나의 언어로 처리를 하였겠지만, 본격적으로 실무를 하게 될 때면, 여러 가지의 언어를 동시에 사용해야 하는 경우가 생깁니다. 과연 rails 에서는 이 부분을 어떻게 처리하는지 코드와 함께 알아보도록 하겠습니다. 1. i18n(다중언어처리)를 위한 gem 을 설치합니다 루트 폴더 부분의 Gemlfile을 열어 한 줄을 추가해줍니다 # locale gem 'rails-i18n' gem을 설치했으므로 터미널에서 bundle i 를 실행해줍니다 2. app/controllers/application_controller.rb 파일에 언어 세팅을 합니다 def set_locale I18n.locale = params[:locale] || ..

rails i18n 하는 방법, rails 언어처리 (5분 내외)

rails i18n 하는 방법, rails 언어처리 (5분 내외)

📅
junmannnyoonjunmannnyoon
1
#rails i18n#rails i18n 방법#rails i18n 적용#rails i18n 하는 방법#rails locale#rails localize#rails localize 방법#rails 다중언어#rails 언어#레일즈 언어
💡이 글의 요약

rails 언어처리 방법에 대해서 한번 포스팅을 해보려 합니다. 학생때야 하나의 언어로 처리를 하였겠지만, 본격적으로 실무를 하게 될 때면, 여러 가지의 언어를 동시에 사용해야 하는 경우가 생깁니다. 과연 rails 에서는 이 부분을 어떻게 처리하는지 코드와 함께 알아보도록 하겠습니다. 1. i18n(다중언어처리)를 위한 gem 을 설치합니다 루트 폴더 부분의 Gemlfile을 열어 한 줄을 추가해줍니다 # locale gem 'rails-i18n' gem을 설치했으므로 터미널에서 bundle i 를 실행해줍니다 2. app/controllers/application_controller.rb 파일에 언어 세팅을 합니다 def set_locale I18n.locale = params[:locale] || ..

rails 언어처리 방법에 대해서 한번 포스팅을 해보려 합니다.

학생때야 하나의 언어로 처리를 하였겠지만, 본격적으로 실무를 하게 될 때면, 여러 가지의 언어를 동시에 사용해야 하는 경우가 생깁니다. 과연 rails 에서는 이 부분을 어떻게 처리하는지 코드와 함께 알아보도록 하겠습니다.

 

1. i18n(다중언어처리)를 위한 gem 을 설치합니다

 

루트 폴더 부분의 Gemlfile을 열어 한 줄을 추가해줍니다

# locale
gem 'rails-i18n'

 

 

gem을 설치했으므로 터미널에서 bundle i 를 실행해줍니다

 

 

 

 

2. app/controllers/application_controller.rb 파일에 언어 세팅을 합니다

def set_locale
    I18n.locale = params[:locale] || session[:locale] || I18n.default_locale
    session[:locale] = I18n.locale
end

1) parameter 전달로 언어를 보내는 경우, 전달받은 언어로 언어를 세팅하기
2) rails session에 저장이 되어있는 경우, 저장된 언어로 세팅하기

3) 둘 다 아니라면 기본 언어세팅으로 설정하기

 

 

 

4. config/application.rb의 module 부분에 내가 사용할 언어들을 선언해둡니다

config.i18n.available_locales = [:en, :kr]
config.i18n.default_locale = :en

저는 영어와 한국어 두 언어를 사용하기 위해 두 가지 언어만 선언을 해 두었습니다. 더 많으시다면 그대로 변경을 하시면 됩니다

 

 

 

 

5. 선언한 언어별 파일을 만들어 줍니다

config/locales 폴더에는 en.yml 이 기본적으로 있을 것입니다. (없다면 생성해주시면 됩니다) 해당 파일이 영어 처리를 위한 파일입니다.

저는 한국어를 추가해주기위해 config/locales 폴더에 kr.yml 파일을 추가했습니다

config/locales/en.yml

en:
  home:
    index:
      hello: "Hello world"
      welcome: "Welcome!"

config/locales/kr.yml

kr:
  home:
    index:
      hello: "안녕하세요"
      welcome: "환영합니다!"

해당 파일의 구조에 대해 설명드릴게요.

해당 구조는 hello 란 것을 여러 곳에서 사용할 수 있기에 여러 폴더 구조로 만든 것입니다. 기본적으로 rails의 html 구조는 views/home/index.html.erb 와 같은 구조를 가지게 됩니다. 이를 위해 저는 파일별로 만들어 둔 것입니다.

 

 

 

6. 해당 변환 언어 확인 방법

<h1>
	<%= t 'home.index.welcome'%>
</h1>
<li><%=link_to 'English', root_path(locale: :en)%> </li>
<li><%=link_to 'Korean', root_path(locale: :kr)%> </li>

t 를 앞에 붙이는 작업으로 i18n 을 사용하실 수 있습니다.

아래는 각각 영어, 한국어로 변환을 할 수 있는 a 태그를 두었습니다.

 

 

 

결과물

해당 링크를 클릭하게 되면, url 마지막에는 /?locale=kr 과 같이 링크가 붙게 됩니다 ~! (모든 라우팅에 보낼 필요는 없습니다)

마지막 수정: 2022. 12. 8.