0

私はレールが初めてです。私はrtlのウェブサイトで作業しています!私はcomment.countとget_upvotes.sizeの複数形を他の言語の単語に置き換えて修正しようとしています。私はRailsの国際化(I18n)でそれを行うことができると聞いてきましたが、私の質問に対する明確な答えが見つかりませんでした。コメントやお気に入りの複数形を削除または編集するには

ここ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

pluralizeメソッドを使用しないでください。 '=" #{@post.comments.count} Comment "' – Swards

+0

で置き換えるには? – hekmat

答えて

1

私が正しく理解していれば、複数化を保ちながらLikeCommentをI18nを使って翻訳したいですか? config/locales/ro.yml

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

Railsの中

config/locales/en.yml

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

で次に

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

その後ワット:あなたの意見で

、あなたが変更する必要がありますあなたが設定した変数に基づいて適切な言語の 'pack'を自動的に取得します。

たとえば、URLに次のように渡すことを希望する場合:www.myapp.com?lang=en Railsはen.ymlロケールを使用します。 www.myapp.com?lang=roro.ymlロケールを使用します。

言語の選択方法はあなた次第です。

+0

これは素晴らしいですね!しかし、私が使用している言語はアラビア語です。 0または2以上のコメントがある場合、単語の最後には複数形のSがあります。たとえば。私はSがアラビア語で表示されることを望んでいません。 – hekmat

+0

私はそれが箱から出ているとは思わない。言語がアラビア語の場合は、文字列を複数形にしないヘルパーを作成する必要があります。 – Vlad

+0

'{post.comments.count} Comment'の複数形を使わずに文字列を使うのはどうでしょうか? – hekmat

関連する問題