2015-03-25 3 views
0

У меня есть строка месяца диапазона, и хочет множественное число это таким образом:Пользовательская плюрализация в Ruby On Rails

I18n.t :range, min: min_date, max: max_date

Если min_date и max_date равны, то следует перевести в %{min_date} to %{max_date}, но если они разные Я хочу показать только %{min_date}.

Как я могу это сделать, только что это в моем файле локали:

range: one: "%{min_date}" other: "%{min_date} to %{max_date}"

ответ

1

Это на самом деле не работа для i18n интерполяции. Вероятно, вам гораздо лучше просто использовать метод (например, в вспомогательном модуле). Таким образом, вы четко заявляете о том, чего хотите достичь, и вам не нужно злоупотреблять несвязанными механизмами.

def render_range(min_date, max_date) 
    if min_date == max_date 
    min_date.to_s 
    else 
    I18n.t :range, min: min_date.to_s, max: max_date.to_s 
    end 
end 

Затем в вашем найти файл, вы можете указать ключ диапазона, как это:

range: "%{min} to %{max}"