2013-11-11 6 views
1

Мне нужно разделить текст на основе числа. поэтому у меня есть файл перевода,i18n Pluralization rails

en: 
    people: 
     one: %{count} People 
     other: %{count} Peoples 

Проблема в том, что мне нужно выделить жирным шрифтом номер. Поэтому на мой взгляд, у меня есть это,

raw t(.people, count: content_tag(:strong, 4)) 

Поскольку я в том числе content_tag ли это сделать «подсчет» строку с <strong> 4 </strong> и передать его на перевод и возвращения «Peoples» всегда?

или есть лучший способ сделать это.

Благодаря

ответ

1

Одним из вариантов является использование необработанного вывода i18n и поставить HTML в i18n:

en: 
people: 
    one: <strong>%{count}</strong> People 
    other: <strong>%{count}</strong> Peoples 

Затем в использовании перевод:

<%= raw t(:people, count: 4) %>

Это не идеальный но ваш вариант использования может быть достаточно простым, если это лучшее решение.

Другим было бы использование двух разных переводов и их гнездо, одно для всего числа, обертывающее его в сильном теге, а другое для плюрализации слова, проходящего в сильном HTML, подобно тому, как вы делаете ссылки:

text_with_anchor: This is a link. %{href} to click it! 

t(:text_with_anchor, href: link_to(t(:another_translation), some_path)) 
+1

Я буду использовать второй метод, потому что я не считаю его хорошим вариантом включить html-элементы в переводе. – rajkumarts