0

Я новичок в rails, и я работаю на сайте rtl! Я пытаюсь установить pluralization в comment.count и get_upvotes.size для замены другими языковыми словами. Я слышал, что я могу это сделать с интернационализацией Rails (I18n), но я не мог найти четкого ответа на мой вопрос.Как удалить или отредактировать плюрализацию комментариев и комментариев в rails

Вот мой код на странице show.html.erb:

#post_show 
    %h1= @post.title 
    %p.username 
     before 
     = time_ago_in_words(@post.created_at) 
    .clearfix 
     .post_image_description 
      = image_tag @post.image.url(:medium) 
      .description= simple_format(@post.description) 
     .post_data 
      = link_to "Project link", @post.link, class: "btn btn-warning btn-block" 
      = link_to like_post_path(@post), method: :get, class: "data" do 
       %i.fa.fa-check 
       = pluralize(@post.get_upvotes.size, "Like") 
      %p.data 
       %i.fa.fa-comments.o 
       = pluralize(@post.comments.count, "Comment") 
      - if @post.user == current_user 
       = link_to "Edit", edit_post_path(@post), class: "data" 
       = link_to "Delete", post_path(@post), method: :delete, data: { confirm: "Sure?" },class: "data" 

Теперь все, что мне нужно, чтобы отменить плюрализацию поэтому, когда 2 комментария или больше появляется не множественном числе и изменения в комментарии. Вместо этого он остается таким же, как комментарий

Я был бы признателен за помощь. Сообщите мне, нужна ли дополнительная информация! Спасибо

+0

Не используйте метод плюрализации. '=" #{@post.comments.count} Комментарий "' – Swards

+0

Что заменить? – hekmat

ответ

1

Если я правильно понял, вы хотите перевести Like и Comment используя I18n, а также сохраняя плюрализацию?

В ваших взглядах, вам нужно изменить:

pluralize(@post.get_upvotes.size, t('models.posts.votes')) pluralize(@post.comments.count, t('models.posts.comments'))

Тогда в config/locales/en.yml

en: 
    models: 
    posts: 
     votes: Like 
     comments: Comment 

Тогда в config/locales/ro.yml

ro: 
    models: 
    posts: 
     votes: Aprecieri 
     comments: Comentarii 

Рельсы ш плохой, автоматически возьмите соответствующий пакет «pack» на основе любой переменной, которую вы установили.

Так, например, если вы хотите передать язык в URL-адресе следующим образом: www.myapp.com?lang=en Rails будет использовать локали en.yml. В то время как www.myapp.com?lang=ro будет использовать ro.yml.

Это зависит от вас, как вы выбираете язык.

+0

Звучит здорово! Тем не менее, langauge, который я использую, является арабским. Когда есть 0 или 2 и более комментариев, по-прежнему существует S для плюрализации в конце слова. Например. Я не хочу, чтобы S появлялся с арабским словом. – hekmat

+0

Я не думаю, что это возможно из коробки. Скорее всего, вам нужно создать помощника, который не будет плюрализовать вашу строку, если язык арабский. – Vlad

+0

Хорошо. Как насчет того, если я использую строку без плюрализатора '{post.comments.count} Comment'? – hekmat

 Смежные вопросы

  • Нет связанных вопросов^_^