레일즈 앱 I18n에서 복수 표현 사용하기

Pluralizing I18n Translations in Your Rails Application

Posted by npmachine on March 24, 2017

Jessie Young의 Pluralizing I18n Translations in Your Rails Application를 번역한 글입니다.


사용자에게 얼마나 많은 알람이 있는지를 알려주는 I18n 문장이 몇개 있다고 해보자. 다음처럼 단수, 복수를 표현할 수 있다.

# config/locales/en.yml

en:
  single_notification: You have 1 notification
  other_notification_count: You have %{count} notifications
<%# app/views/notifications/index.html.erb %>

<% if current_user.notifications.count == 1 %>
  <%= t("single_notification") %>
<% else %>
  <%= t("other_notification_count", count: current_user.notifications.count) %>
<% end %>

썩 좋아보이지 않는다. 다행히도, 레일즈는 번역을 할 때 복수를 다루는 간단한 방법을 제공한다. 다음을 시도해 보자.

# config/locales/en.yml

en:
  notification:
    one: You have 1 notification
    other: You have %{count} notifications
<%# app/views/notifications/index.html.erb %>

<%= t("notification", count: current_user.notifications.count) %>

같은 결과이면서 뷰에 조건문을 안 쓸 수 있다. 최고!


npmachine

a mediocre engineer